summaryrefslogtreecommitdiff
path: root/external/liblangtag
diff options
context:
space:
mode:
authorKhaled Hosny <khaledhosny@eglug.org>2013-10-18 19:58:14 +0200
committerDavid Tardon <dtardon@redhat.com>2013-10-19 07:34:56 +0000
commitfc26490252a63b851560be0af97e14b784a20350 (patch)
tree43d01fdd4283e8f25589b3fe777c3d7cbecaba51 /external/liblangtag
parent36b554e96541f39ecc80b8ede3e260e3426a1936 (diff)
fdo#70393: move liblangtag to a subdir of external
Change-Id: I18cded289591bdf872c7a818326a35ac00d38482 Reviewed-on: https://gerrit.libreoffice.org/6330 Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'external/liblangtag')
-rw-r--r--external/liblangtag/ExternalPackage_langtag_data.mk28
-rw-r--r--external/liblangtag/ExternalPackage_liblangtag_data.mk36
-rw-r--r--external/liblangtag/ExternalProject_langtag.mk40
-rw-r--r--external/liblangtag/Makefile7
-rw-r--r--external/liblangtag/Module_liblangtag.mk19
-rw-r--r--external/liblangtag/README1
-rw-r--r--external/liblangtag/UnpackedTarball_langtag.mk34
-rw-r--r--external/liblangtag/liblangtag-0.5.1-mingw.patch64
-rw-r--r--external/liblangtag/liblangtag-0.5.1-msvc-snprintf.patch25
-rw-r--r--external/liblangtag/liblangtag-0.5.1-msvc-ssize_t.patch12
-rw-r--r--external/liblangtag/liblangtag-0.5.1-msvc-strtoull.patch15
-rw-r--r--external/liblangtag/liblangtag-0.5.1-msvc-warning.patch21
-rw-r--r--external/liblangtag/liblangtag-0.5.1-redefinition-of-typedef.patch31
-rw-r--r--external/liblangtag/liblangtag-0.5.1-scope-declaration.patch13
-rw-r--r--external/liblangtag/liblangtag-0.5.1-undefined-have-sys-param-h.patch14
-rw-r--r--external/liblangtag/liblangtag-0.5.1-unistd.patch12
-rw-r--r--external/liblangtag/liblangtag-0.5.1-vsnprintf.patch18
-rw-r--r--external/liblangtag/liblangtag-0.5.1-windows-do-not-prepend-dir-separator.patch16
18 files changed, 406 insertions, 0 deletions
diff --git a/external/liblangtag/ExternalPackage_langtag_data.mk b/external/liblangtag/ExternalPackage_langtag_data.mk
new file mode 100644
index 000000000000..3435e7080e1c
--- /dev/null
+++ b/external/liblangtag/ExternalPackage_langtag_data.mk
@@ -0,0 +1,28 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_ExternalPackage_ExternalPackage,langtag_data,langtag))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,langtag_data,unittest/install/$(LIBO_SHARE_FOLDER)/liblangtag,data/language-subtag-registry.xml))
+$(eval $(call gb_ExternalPackage_add_unpacked_files,langtag_data,unittest/install/$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47,\
+ data/common/bcp47/calendar.xml \
+ data/common/bcp47/collation.xml \
+ data/common/bcp47/currency.xml \
+ data/common/bcp47/number.xml \
+ data/common/bcp47/timezone.xml \
+ data/common/bcp47/transform.xml \
+ data/common/bcp47/transform_ime.xml \
+ data/common/bcp47/transform_keyboard.xml \
+ data/common/bcp47/transform_mt.xml \
+ data/common/bcp47/transform_private_use.xml \
+ data/common/bcp47/variant.xml \
+))
+$(eval $(call gb_ExternalPackage_add_unpacked_files,langtag_data,unittest/install/$(LIBO_SHARE_FOLDER)/liblangtag/common/supplemental,data/common/supplemental/likelySubtags.xml))
+
+# vim: set shiftwidth=4 tabstop=4 noexpandtab:
diff --git a/external/liblangtag/ExternalPackage_liblangtag_data.mk b/external/liblangtag/ExternalPackage_liblangtag_data.mk
new file mode 100644
index 000000000000..0991d9621ea2
--- /dev/null
+++ b/external/liblangtag/ExternalPackage_liblangtag_data.mk
@@ -0,0 +1,36 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_ExternalPackage_ExternalPackage,liblangtag_data,langtag))
+
+$(eval $(call gb_ExternalPackage_set_outdir,liblangtag_data,$(INSTROOT)))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,liblangtag_data,$(LIBO_SHARE_FOLDER)/liblangtag,\
+ data/language-subtag-registry.xml \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,liblangtag_data,$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47,\
+ data/common/bcp47/calendar.xml \
+ data/common/bcp47/collation.xml \
+ data/common/bcp47/currency.xml \
+ data/common/bcp47/number.xml \
+ data/common/bcp47/timezone.xml \
+ data/common/bcp47/transform.xml \
+ data/common/bcp47/transform_ime.xml \
+ data/common/bcp47/transform_keyboard.xml \
+ data/common/bcp47/transform_mt.xml \
+ data/common/bcp47/transform_private_use.xml \
+ data/common/bcp47/variant.xml \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,liblangtag_data,$(LIBO_SHARE_FOLDER)/liblangtag/common/supplemental,\
+ data/common/supplemental/likelySubtags.xml \
+))
+
+# vim: set shiftwidth=4 tabstop=4 noexpandtab:
diff --git a/external/liblangtag/ExternalProject_langtag.mk b/external/liblangtag/ExternalProject_langtag.mk
new file mode 100644
index 000000000000..23619ed3b2de
--- /dev/null
+++ b/external/liblangtag/ExternalProject_langtag.mk
@@ -0,0 +1,40 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_ExternalProject_ExternalProject,langtag))
+
+$(eval $(call gb_ExternalProject_use_external,langtag,libxml2))
+
+$(eval $(call gb_ExternalProject_use_autoconf,langtag,build))
+
+$(eval $(call gb_ExternalProject_register_targets,langtag,\
+ build \
+))
+
+# disable ccache on windows, as it doesn't cope with the quoted defines
+# liblangtag uses (-DBUILDDIR="\"$(abs_top_builddir)\"" and similar).
+# Results in "cl : Command line error D8003 : missing source filename"
+$(call gb_ExternalProject_get_state_target,langtag,build):
+ $(call gb_ExternalProject_run,build,\
+ ./configure --disable-modules --disable-test --disable-introspection --disable-shared --enable-static --with-pic \
+ $(if $(filter WNTMSC,$(OS)$(COM)),--disable-rebuild-data) \
+ $(if $(filter TRUE,$(HAVE_GCC_BUILTIN_ATOMIC)),"lt_cv_has_atomic=yes","lt_cv_has_atomic=no") \
+ $(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) "ac_cv_va_copy=no") \
+ $(if $(filter NO,$(SYSTEM_LIBXML)),LIBXML2_CFLAGS="-I$(call gb_UnpackedTarball_get_dir,xml2)/include" \
+ LIBXML2_LIBS=$(if $(filter WNTMSC,$(OS)$(COM)),"-L$(OUTDIR)/lib -llibxml2","-L$(gb_Helper_OUTDIRLIBDIR) -lxml2"),\
+ $(if $(filter MACOSX,$(OS)),LIBXML2_CFLAGS="$(LIBXML_CFLAGS)" LIBXML2_LIBS="$(LIBXML_LIBS)")) \
+ $(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
+ $(if $(filter-out LINUX FREEBSD,$(OS)),,LDFLAGS="-Wl$(COMMA)-z$(COMMA)origin -Wl$(COMMA)-rpath,\\"\$$\$$ORIGIN:'\'\$$\$$ORIGIN/../ure-link/lib) \
+ $(if $(filter-out SOLARIS,$(OS)),,LDFLAGS="-Wl$(COMMA)-z$(COMMA)origin -Wl$(COMMA)-R$(COMMA)\\"\$$\$$ORIGIN:'\'\$$\$$ORIGIN/../ure-link/lib) \
+ $(if $(filter-out WNTGCC,$(OS)$(COM)),,LDFLAGS="-Wl$(COMMA)--enable-runtime-pseudo-reloc-v2") \
+ && $(if $(filter WNTMSC,$(OS)$(COM)),REAL_CC="$(shell cygpath -w $(lastword $(CC)))") \
+ $(if $(VERBOSE)$(verbose),V=1) \
+ $(MAKE) \
+ )
+# vim: set noet sw=4 ts=4:
diff --git a/external/liblangtag/Makefile b/external/liblangtag/Makefile
new file mode 100644
index 000000000000..e4968cf85fb6
--- /dev/null
+++ b/external/liblangtag/Makefile
@@ -0,0 +1,7 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+
+module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
+
+include $(module_directory)/../../solenv/gbuild/partial_build.mk
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/liblangtag/Module_liblangtag.mk b/external/liblangtag/Module_liblangtag.mk
new file mode 100644
index 000000000000..54827d2e9330
--- /dev/null
+++ b/external/liblangtag/Module_liblangtag.mk
@@ -0,0 +1,19 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Module_Module,liblangtag))
+
+$(eval $(call gb_Module_add_targets,liblangtag,\
+ UnpackedTarball_langtag \
+ ExternalPackage_langtag_data \
+ ExternalProject_langtag \
+ ExternalPackage_liblangtag_data \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/liblangtag/README b/external/liblangtag/README
new file mode 100644
index 000000000000..694daee093e6
--- /dev/null
+++ b/external/liblangtag/README
@@ -0,0 +1 @@
+From [http://tagoh.bitbucket.org/liblangtag/]. An interface for BCP47 language tags.
diff --git a/external/liblangtag/UnpackedTarball_langtag.mk b/external/liblangtag/UnpackedTarball_langtag.mk
new file mode 100644
index 000000000000..88f7f167b437
--- /dev/null
+++ b/external/liblangtag/UnpackedTarball_langtag.mk
@@ -0,0 +1,34 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,langtag))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,langtag,$(LIBLANGTAG_TARBALL),,liblangtag))
+
+$(eval $(call gb_UnpackedTarball_add_patches,langtag,\
+ external/liblangtag/liblangtag-0.5.1-msvc-warning.patch \
+ external/liblangtag/liblangtag-0.5.1-vsnprintf.patch \
+ external/liblangtag/liblangtag-0.5.1-msvc-ssize_t.patch \
+ external/liblangtag/liblangtag-0.5.1-msvc-snprintf.patch \
+ external/liblangtag/liblangtag-0.5.1-msvc-strtoull.patch \
+ external/liblangtag/liblangtag-0.5.1-scope-declaration.patch \
+ external/liblangtag/liblangtag-0.5.1-redefinition-of-typedef.patch \
+ external/liblangtag/liblangtag-0.5.1-undefined-have-sys-param-h.patch \
+ external/liblangtag/liblangtag-0.5.1-windows-do-not-prepend-dir-separator.patch \
+ external/liblangtag/liblangtag-0.5.1-unistd.patch \
+))
+
+ifeq ($(OS),WNT)
+ifeq ($(COM),GCC)
+$(eval $(call gb_UnpackedTarball_add_patches,langtag,\
+ external/liblangtag/liblangtag-0.5.1-mingw.patch \
+))
+endif
+endif
+# vim: set noet sw=4 ts=4:
diff --git a/external/liblangtag/liblangtag-0.5.1-mingw.patch b/external/liblangtag/liblangtag-0.5.1-mingw.patch
new file mode 100644
index 000000000000..54790e99a0c7
--- /dev/null
+++ b/external/liblangtag/liblangtag-0.5.1-mingw.patch
@@ -0,0 +1,64 @@
+--- misc/liblangtag-0.4.0/liblangtag/lt-ext-module.c 2013-06-14 15:06:13.629182430 +0100
++++ misc/liblangtag-0.4.0/liblangtag/lt-ext-module.c 2013-06-14 15:06:43.537534204 +0100
+@@ -608,8 +608,8 @@
+ size_t len;
+
+ while (1) {
+- if (readdir_r(dir, &dent, &dresult) || dresult == NULL)
+- break;
++/* if (readdir_r(dir, &dent, &dresult) || dresult == NULL)
++ break;*/ abort(); /* we do not use liblangtag-gobject anyway */
+
+ len = strlen(dent.d_name);
+ if (len > suffix_len &&
+--- misc/liblangtag-0.4.0/liblangtag/Makefile.am 2013-06-14 15:06:13.636182512 +0100
++++ misc/liblangtag-0.4.0/liblangtag/Makefile.am 2013-06-14 15:08:53.556063464 +0100
+@@ -211,6 +211,7 @@
+ liblangtag_la_LDFLAGS = \
+ $(LDFLAGS) \
+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
++ -no-undefined \
+ $(NULL)
+
+ -include $(top_srcdir)/git.mk
+--- misc/liblangtag-0.4.0/liblangtag/Makefile.in 2013-06-14 15:06:13.636182512 +0100
++++ misc/liblangtag-0.4.0/liblangtag/Makefile.in 2013-06-14 15:09:07.204223994 +0100
+@@ -576,6 +576,7 @@
+ liblangtag_la_LDFLAGS = \
+ $(LDFLAGS) \
+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
++ -no-undefined \
+ $(NULL)
+
+ all: $(BUILT_SOURCES)
+--- misc/liblangtag-0.4.0/liblangtag-gobject/Makefile.am 2013-06-14 15:06:13.648182653 +0100
++++ misc/liblangtag-0.4.0/liblangtag-gobject/Makefile.am 2013-06-14 15:09:27.122458271 +0100
+@@ -149,6 +149,7 @@
+ liblangtag_gobject_la_LDFLAGS = \
+ $(LDFLAGS) \
+ -version-info $(LT_G_CURRENT):$(LT_G_REVISION):$(LT_G_AGE) \
++ -no-undefined \
+ $(NULL)
+ #
+ if HAVE_INTROSPECTION
+--- misc/liblangtag-0.4.0/liblangtag-gobject/Makefile.in 2013-06-14 15:06:13.648182653 +0100
++++ misc/liblangtag-0.4.0/liblangtag-gobject/Makefile.in 2013-06-14 15:09:33.099528574 +0100
+@@ -476,6 +476,7 @@
+ liblangtag_gobject_la_LDFLAGS = \
+ $(LDFLAGS) \
+ -version-info $(LT_G_CURRENT):$(LT_G_REVISION):$(LT_G_AGE) \
++ -no-undefined \
+ $(NULL)
+
+ #
+--- misc/liblangtag-0.4.0/Makefile.am 2013-06-14 15:06:13.652182700 +0100
++++ misc/liblangtag-0.4.0/Makefile.am 2013-06-14 15:06:43.539534228 +0100
+@@ -6,7 +6,7 @@
+ SUBDIRS += liblangtag-gobject
+ endif
+ #SUBDIRS += docs tests
+-SUBDIRS += tests
++#SUBDIRS += tests
+
+ ACLOCAL_AMFLAGS = -I m4macros
+
diff --git a/external/liblangtag/liblangtag-0.5.1-msvc-snprintf.patch b/external/liblangtag/liblangtag-0.5.1-msvc-snprintf.patch
new file mode 100644
index 000000000000..61067e21b407
--- /dev/null
+++ b/external/liblangtag/liblangtag-0.5.1-msvc-snprintf.patch
@@ -0,0 +1,25 @@
+diff -ru langtag.orig/liblangtag/lt-messages.c langtag/liblangtag/lt-messages.c
+--- UnpackedTarball/langtag.orig/liblangtag/lt-messages.c 2013-04-22 10:06:57.000000000 +0200
++++ UnpackedTarball/langtag/liblangtag/lt-messages.c 2013-04-30 11:38:04.116532065 +0200
+@@ -85,13 +85,21 @@
+ clen = strlen(cs);
+ if (clen > 0) {
+ catstring = malloc(sizeof (char) * (clen + 6));
++#ifdef _WIN32
++ _snprintf(catstring, clen + 6, "[%s]: ", cs);
++#else
+ snprintf(catstring, clen + 6, "[%s]: ", cs);
++#endif
+ clen = strlen(catstring);
+ }
+ len = tlen + clen + 1;
+ retval = malloc(sizeof (char) * len);
+ if (retval) {
++#ifdef _WIN32
++ _snprintf(retval, len, "%s%s ", ts, catstring ? catstring : "");
++#else
+ snprintf(retval, len, "%s%s ", ts, catstring ? catstring : "");
++#endif
+ }
+ if (catstring)
+ free(catstring);
diff --git a/external/liblangtag/liblangtag-0.5.1-msvc-ssize_t.patch b/external/liblangtag/liblangtag-0.5.1-msvc-ssize_t.patch
new file mode 100644
index 000000000000..84774c18d657
--- /dev/null
+++ b/external/liblangtag/liblangtag-0.5.1-msvc-ssize_t.patch
@@ -0,0 +1,12 @@
+diff -ru UnpackedTarball/langtag.orig/liblangtag/lt-macros.h UnpackedTarball/langtag/liblangtag/lt-macros.h
+--- UnpackedTarball/langtag.orig/liblangtag/lt-macros.h 2013-04-22 10:06:57.000000000 +0200
++++ UnpackedTarball/langtag/liblangtag/lt-macros.h 2013-04-30 16:07:00.619638050 +0200
+@@ -261,7 +261,7 @@
+
+ LT_BEGIN_DECLS
+
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) && !defined(ssize_t)
+ # ifdef _M_AMD64
+ typedef signed long long ssize_t;
+ # else
diff --git a/external/liblangtag/liblangtag-0.5.1-msvc-strtoull.patch b/external/liblangtag/liblangtag-0.5.1-msvc-strtoull.patch
new file mode 100644
index 000000000000..e50dddb76c0a
--- /dev/null
+++ b/external/liblangtag/liblangtag-0.5.1-msvc-strtoull.patch
@@ -0,0 +1,15 @@
+diff -ru langtag.orig/extensions/lt-ext-ldml-u.c langtag/extensions/lt-ext-ldml-u.c
+--- UnpackedTarball/langtag.orig/extensions/lt-ext-ldml-u.c 2013-04-22 10:06:56.000000000 +0200
++++ UnpackedTarball/langtag/extensions/lt-ext-ldml-u.c 2013-04-30 12:56:19.557490167 +0200
+@@ -137,7 +137,11 @@
+ if (!strchr(hexdigit, subtag[j]))
+ goto bail2;
+ }
++#ifdef _WIN32
++ x = _strtoui64(subtag, &p, 16);
++#else
+ x = strtoull(subtag, &p, 16);
++#endif
+ if (p && p[0] == 0 && x <= 0x10ffff) {
+ retval = TRUE;
+ xmlFree(name);
diff --git a/external/liblangtag/liblangtag-0.5.1-msvc-warning.patch b/external/liblangtag/liblangtag-0.5.1-msvc-warning.patch
new file mode 100644
index 000000000000..2d34fe8f0941
--- /dev/null
+++ b/external/liblangtag/liblangtag-0.5.1-msvc-warning.patch
@@ -0,0 +1,21 @@
+--- misc/liblangtag-0.4.0/liblangtag/lt-ext-module.h 2012-02-02 06:02:45.000000000 +0100
++++ misc/build/liblangtag-0.4.0/liblangtag/lt-ext-module.h 2012-08-08 08:46:57.810860044 +0200
+@@ -143,12 +143,12 @@
+ * and #lt_ext_module_t and extend features.
+ */
+ struct _lt_ext_module_funcs_t {
+- const lt_ext_module_singleton_func_t get_singleton;
+- const lt_ext_module_data_new_func_t create_data;
+- const lt_ext_module_precheck_func_t precheck_tag;
+- const lt_ext_module_parse_func_t parse_tag;
+- const lt_ext_module_get_tag_func_t get_tag;
+- const lt_ext_module_validate_func_t validate_tag;
++ lt_ext_module_singleton_func_t get_singleton;
++ lt_ext_module_data_new_func_t create_data;
++ lt_ext_module_precheck_func_t precheck_tag;
++ lt_ext_module_parse_func_t parse_tag;
++ lt_ext_module_get_tag_func_t get_tag;
++ lt_ext_module_validate_func_t validate_tag;
+ };
+
+
diff --git a/external/liblangtag/liblangtag-0.5.1-redefinition-of-typedef.patch b/external/liblangtag/liblangtag-0.5.1-redefinition-of-typedef.patch
new file mode 100644
index 000000000000..1c9ac14077dd
--- /dev/null
+++ b/external/liblangtag/liblangtag-0.5.1-redefinition-of-typedef.patch
@@ -0,0 +1,31 @@
+diff -ru langtag.orig/liblangtag/lt-trie.c langtag/liblangtag/lt-trie.c
+--- UnpackedTarball/langtag.orig/liblangtag/lt-trie.c 2013-04-30 04:37:30.000000000 +0200
++++ UnpackedTarball/langtag/liblangtag/lt-trie.c 2013-04-30 14:57:50.777932196 +0200
+@@ -33,11 +33,6 @@
+ lt_iter_tmpl_t parent;
+ lt_trie_node_t *root;
+ };
+-typedef struct _lt_trie_iter_t {
+- lt_iter_t parent;
+- lt_list_t *stack;
+- lt_string_t *pos_str;
+-} lt_trie_iter_t;
+
+ /*< private >*/
+ static lt_trie_node_t *
+diff -ru langtag.orig/liblangtag/lt-trie.h langtag/liblangtag/lt-trie.h
+--- UnpackedTarball/langtag.orig/liblangtag/lt-trie.h 2013-04-30 04:44:36.000000000 +0200
++++ UnpackedTarball/langtag/liblangtag/lt-trie.h 2013-04-30 14:57:57.746969291 +0200
+@@ -21,7 +21,11 @@
+ LT_BEGIN_DECLS
+
+ typedef struct _lt_trie_t lt_trie_t;
+-typedef struct _lt_trie_iter_t lt_trie_iter_t;
++typedef struct _lt_trie_iter_t {
++ lt_iter_t parent;
++ lt_list_t *stack;
++ lt_string_t *pos_str;
++} lt_trie_iter_t;
+
+ lt_trie_t *lt_trie_new (void);
+ lt_trie_t *lt_trie_ref (lt_trie_t *trie);
diff --git a/external/liblangtag/liblangtag-0.5.1-scope-declaration.patch b/external/liblangtag/liblangtag-0.5.1-scope-declaration.patch
new file mode 100644
index 000000000000..69bc434b46da
--- /dev/null
+++ b/external/liblangtag/liblangtag-0.5.1-scope-declaration.patch
@@ -0,0 +1,13 @@
+diff -ru langtag.orig/tests/variant-db.c langtag/tests/variant-db.c
+--- UnpackedTarball/langtag.orig/tests/variant-db.c 2013-04-22 10:06:57.000000000 +0200
++++ UnpackedTarball/langtag/tests/variant-db.c 2013-04-30 14:12:18.399306545 +0200
+@@ -53,8 +53,8 @@
+ }
+ lt_iter_finish(iter);
+ } else if (lt_strcmp0(argv[1], "lookup") == 0) {
+- variant = lt_variant_db_lookup(variantdb, argv[2]);
+ const lt_list_t *prefix, *l;
++ variant = lt_variant_db_lookup(variantdb, argv[2]);
+
+ if (variant) {
+ printf("desc: %s\n", lt_variant_get_name(variant));
diff --git a/external/liblangtag/liblangtag-0.5.1-undefined-have-sys-param-h.patch b/external/liblangtag/liblangtag-0.5.1-undefined-have-sys-param-h.patch
new file mode 100644
index 000000000000..3cee1458ab7e
--- /dev/null
+++ b/external/liblangtag/liblangtag-0.5.1-undefined-have-sys-param-h.patch
@@ -0,0 +1,14 @@
+# liblangtag/lt-macros.h:17:5: error: "HAVE_SYS_PARAM_H" is not defined [-Werror=undef]
+
+diff -ru UnpackedTarball/langtag.orig/liblangtag/lt-macros.h UnpackedTarball/langtag/liblangtag/lt-macros.h
+--- UnpackedTarball/langtag.orig/liblangtag/lt-macros.h 2013-04-30 16:09:19.362392416 +0200
++++ UnpackedTarball/langtag/liblangtag/lt-macros.h 2013-04-30 18:01:13.275188759 +0200
+@@ -14,7 +14,7 @@
+ #error "Only <liblangtag/langtag.h> can be included directly."
+ #endif
+
+-#if HAVE_SYS_PARAM_H
++#if defined(HAVE_SYS_PARAM_H) && HAVE_SYS_PARAM_H
+ #include <sys/param.h>
+ #endif
+
diff --git a/external/liblangtag/liblangtag-0.5.1-unistd.patch b/external/liblangtag/liblangtag-0.5.1-unistd.patch
new file mode 100644
index 000000000000..0aebe0b09cda
--- /dev/null
+++ b/external/liblangtag/liblangtag-0.5.1-unistd.patch
@@ -0,0 +1,12 @@
+--- UnpackedTarball/langtag/liblangtag/lt-utils.c 2013-05-10 14:36:54.445200000 +0200
++++ UnpackedTarball/langtag/liblangtag/lt-utils.c 2013-05-10 14:38:31.446000000 +0200
+@@ -23,7 +23,9 @@
+ #if HAVE_STRING_H
+ #include <string.h>
+ #endif
++#if HAVE_UNISTD_H
+ #include <unistd.h>
++#endif
+ #include <sys/types.h>
+ #include "lt-messages.h"
+ #include "lt-utils.h"
diff --git a/external/liblangtag/liblangtag-0.5.1-vsnprintf.patch b/external/liblangtag/liblangtag-0.5.1-vsnprintf.patch
new file mode 100644
index 000000000000..599c47f9ae52
--- /dev/null
+++ b/external/liblangtag/liblangtag-0.5.1-vsnprintf.patch
@@ -0,0 +1,18 @@
+diff -ru UnpackedTarball/orig.langtag/liblangtag/lt-utils.c UnpackedTarball/langtag/liblangtag/lt-utils.c
+--- UnpackedTarball/orig.langtag/liblangtag/lt-utils.c 2013-07-19 16:47:20.310734230 +0200
++++ UnpackedTarball/langtag/liblangtag/lt-utils.c 2013-07-19 16:53:10.839914271 +0200
+@@ -173,9 +173,11 @@
+
+ va_end(ap);
+
+- retval = malloc(sizeof (char) * size);
+- if (retval) {
+- vsprintf(retval, format, args);
++ if (size > 0) {
++ retval = malloc(sizeof (char) * size);
++ if (retval) {
++ vsprintf(retval, format, args);
++ }
+ }
+ } LT_STMT_END;
+ #elif HAVE_VSNPRINTF
diff --git a/external/liblangtag/liblangtag-0.5.1-windows-do-not-prepend-dir-separator.patch b/external/liblangtag/liblangtag-0.5.1-windows-do-not-prepend-dir-separator.patch
new file mode 100644
index 000000000000..cc0e4abaed59
--- /dev/null
+++ b/external/liblangtag/liblangtag-0.5.1-windows-do-not-prepend-dir-separator.patch
@@ -0,0 +1,16 @@
+diff -ru UnpackedTarball/langtag.orig/liblangtag/lt-string.c UnpackedTarball/langtag/liblangtag/lt-string.c
+--- UnpackedTarball/langtag.orig/liblangtag/lt-string.c 2013-04-22 10:35:07.000000000 +0200
++++ UnpackedTarball/langtag/liblangtag/lt-string.c 2013-04-30 18:34:14.422037274 +0200
+@@ -308,8 +308,12 @@
+ lt_return_val_if_fail (string != NULL, NULL);
+ lt_return_val_if_fail (path != NULL, string);
+
++#ifdef _WIN32
++ /* This simply does not work on Windows with "D:\..." */
++#else
+ if (lt_string_length(string) == 0 && path[0] != LT_DIR_SEPARATOR)
+ lt_string_append(string, LT_DIR_SEPARATOR_S);
++#endif
+
+ va_start(ap, path);
+ p = path;