Kaydet (Commit) 67bded9f authored tarafından Eike Rathke's avatar Eike Rathke

update to liblangtag-0.5.7

Change-Id: I46bf74efb52435313eb17e0db8b1cf103a329004
Reviewed-on: https://gerrit.libreoffice.org/17078Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarEike Rathke <erack@redhat.com>
üst b70acbc1
......@@ -12047,8 +12047,6 @@ if test "$enable_liblangtag" = "yes" -o \( "$enable_liblangtag" = "" -a $_os !=
SYSTEM_LIBLANGTAG=
AC_MSG_RESULT([no])
BUILD_TYPE="$BUILD_TYPE LIBLANGTAG"
dnl TODO: remove when liblangtag is updated to 0.5.5
AC_DEFINE([LIBLANGTAG_INLINE_FIX])
if test "$COM" = "MSC"; then
LIBLANGTAG_LIBS="${WORKDIR}/UnpackedTarball/langtag/liblangtag/.libs/liblangtag.lib"
else
......
......@@ -95,7 +95,7 @@ export LIBEOT_TARBALL := libeot-0.01.tar.bz2
export LIBEXTTEXTCAT_TARBALL := 10d61fbaa6a06348823651b1bd7940fe-libexttextcat-3.4.4.tar.bz2
export LIBGLTF_MD5SUM := d63a9f47ab048f5009d90693d6aa6424
export LIBGLTF_TARBALL := libgltf-0.0.2.tar.bz2
export LIBLANGTAG_TARBALL := 36271d3fa0d9dec1632029b6d7aac925-liblangtag-0.5.1.tar.bz2
export LIBLANGTAG_TARBALL := 80d063d6db4c010e18c606af8aed6231-liblangtag-0.5.7.tar.bz2
export LIBXMLSEC_TARBALL := 1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
export LIBXML_TARBALL := 9c0cfef285d5c4a5c80d00904ddab380-libxml2-2.9.1.tar.gz
export LIBXSLT_TARBALL := 9667bf6f9310b957254fdcf6596600b7-libxslt-1.1.28.tar.gz
......
......@@ -15,22 +15,10 @@ $(eval $(call gb_UnpackedTarball_set_pre_action,langtag,\
$(GNUTAR) -x -j -f $(gb_UnpackedTarget_TARFILE_LOCATION)/$(LANGTAGREG_TARBALL) \
))
# external/liblangtag/liblangtag-leak.patch.0 upstream:
# <https://bitbucket.org/tagoh/liblangtag/pull-request/8/fix-memory-leak/diff>
$(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 \
external/liblangtag/liblangtag-0.5.1-include-last-record-in-language-subtag-registry.patch \
external/liblangtag/liblangtag-leak.patch.0 \
))
# Currently no patches applied, if there were it would be:
#$(eval $(call gb_UnpackedTarball_add_patches,langtag,\
# external/liblangtag/your-modification.patch \
#))
ifeq ($(OS),WNT)
ifeq ($(COM),GCC)
......
Upstream 6564b87c2f6dac2482e530bc43b038a3e93a0e07
resolves #6, include last record in language-subtag-registry.xml
The '%%' in language-subtag-registry is a record delimiter, not record
end marker, it is not present on the last record at file end.
(cherry picked from commit 4fff73a834f94a7ca256c086d99ea0a654a6c287)
diff --git a/data/reg2xml.c b/data/reg2xml.c
--- UnpackedTarball/langtag.orig/data/reg2xml.c
+++ UnpackedTarball/langtag/data/reg2xml.c
@@ -48,6 +48,7 @@ _parse(const char *filename,
FILE *fp;
char buffer[1024], *range = NULL, *begin = NULL, *end = NULL;
lt_bool_t in_entry = FALSE;
+ lt_bool_t file_end = FALSE;
xmlNodePtr ent = NULL;
if ((fp = fopen(filename, "rb")) == NULL) {
@@ -56,10 +57,13 @@ _parse(const char *filename,
}
while (1) {
fgets(buffer, 1024, fp);
- if (feof(fp))
- break;
+ if (feof(fp)) {
+ if (!in_entry)
+ break;
+ file_end = TRUE;
+ }
_drop_crlf(buffer);
- if (lt_strcmp0(buffer, "%%") == 0) {
+ if (lt_strcmp0(buffer, "%%") == 0 || file_end) {
if (in_entry) {
if (ent) {
if (range) {
@@ -102,7 +106,7 @@ _parse(const char *filename,
ent = NULL;
range = NULL;
}
- in_entry = TRUE;
+ in_entry = !file_end;
} else {
if (!in_entry) {
/* ignore it */
--------------erAck-patch-parts--
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 -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 -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);
--- 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 -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));
# 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
--- 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 -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 -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;
--- liblangtag/lt-tag.c
+++ liblangtag/lt-tag.c
@@ -1408,6 +1408,7 @@
lt_variant_ref(lt_list_value(l)),
(lt_destroy_func_t)lt_variant_unref);
}
+ lt_mem_add_ref(&retval->parent, retval->variants, lt_list_free);
}
if (tag->extension) {
lt_tag_set_extension(retval, lt_extension_copy(tag->extension));
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment