Hello community, here is the log from the commit of package liblangtag for openSUSE:Factory checked in at 2014-05-13 20:45:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/liblangtag (Old) and /work/SRC/openSUSE:Factory/.liblangtag.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "liblangtag" Changes: -------- --- /work/SRC/openSUSE:Factory/liblangtag/liblangtag.changes 2013-09-26 07:08:43.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.liblangtag.new/liblangtag.changes 2014-05-13 20:45:54.000000000 +0200 @@ -1,0 +2,6 @@ +Mon May 12 13:01:53 UTC 2014 - [email protected] + +- Version bump to 0.5.3: + * Various small fixes detailed in NEWS file + +------------------------------------------------------------------- Old: ---- liblangtag-0.5.2.tar.bz2 New: ---- liblangtag-0.5.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ liblangtag.spec ++++++ --- /var/tmp/diff_new_pack.JEcT6B/_old 2014-05-13 20:45:54.000000000 +0200 +++ /var/tmp/diff_new_pack.JEcT6B/_new 2014-05-13 20:45:54.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package liblangtag # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %define libname liblangtag1 Name: liblangtag -Version: 0.5.2 +Version: 0.5.3 Release: 0 Summary: An interface library to access tags for identifying languages License: LGPL-3.0+ or MPL-2.0 ++++++ liblangtag-0.5.2.tar.bz2 -> liblangtag-0.5.3.tar.bz2 ++++++ ++++ 2163 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/NEWS new/liblangtag-0.5.3/NEWS --- old/liblangtag-0.5.2/NEWS 2013-08-28 11:36:54.000000000 +0200 +++ new/liblangtag-0.5.3/NEWS 2014-04-09 10:59:21.000000000 +0200 @@ -1,3 +1,18 @@ +0.5.2 -> 0.5.3 +================= +Akira TAGOH (7): + add a script to prepare a release + Fix non-literal format string issues (fixed issue#5) + Fix typo + Update autotools macro + Merged in erAck/liblangtag/0.5.x (pull request #7) + Fix autoconf warning, warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS + separately canonicalize into the canonical form and the extlang form + +Eike Rathke (2): + Merged tagoh/liblangtag/0.5.x into 0.5.x + resolves #6, include last record in language-subtag-registry.xml + 0.5.1 -> 0.5.2 ================= Akira TAGOH (6): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/configure.ac new/liblangtag-0.5.3/configure.ac --- old/liblangtag-0.5.2/configure.ac 2013-08-28 11:36:54.000000000 +0200 +++ new/liblangtag-0.5.3/configure.ac 2014-04-09 11:05:39.000000000 +0200 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.62) -AC_INIT([liblangtag], 0.5.2, [http://github.com/tagoh/liblangtag/issues]) +AC_INIT([liblangtag], 0.5.3, [http://github.com/tagoh/liblangtag/issues]) . `dirname $0`/requires @@ -20,7 +20,6 @@ AC_USE_SYSTEM_EXTENSIONS AC_PROG_CC AM_PROG_AR -AC_PROG_LIBTOOL GNOME_COMPILE_WARNINGS @@ -28,6 +27,9 @@ GNOME_DEBUG_CHECK GNOME_MAINTAINER_MODE_DEFINES +LT_PREREQ([2.2]) +LT_INIT([disable-static win32-dll]) + dnl ====================================================================== dnl Libraries versioning dnl ====================================================================== @@ -49,9 +51,9 @@ dnl dnl for liblangtag.la -LT_CURRENT=3 +LT_CURRENT=4 LT_REVISION=0 -LT_AGE=2 +LT_AGE=3 AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/data/language-subtag-registry.xml new/liblangtag-0.5.3/data/language-subtag-registry.xml --- old/liblangtag-0.5.2/data/language-subtag-registry.xml 2013-08-28 11:37:42.000000000 +0200 +++ new/liblangtag-0.5.3/data/language-subtag-registry.xml 2014-04-09 11:05:54.000000000 +0200 @@ -49485,4 +49485,11 @@ <deprecated>2009-07-29</deprecated> <preferred-value>wuu</preferred-value> </redundant> + <redundant> + <tag>zh-yue</tag> + <description>Cantonese</description> + <added>1999-12-18</added> + <deprecated>2009-07-29</deprecated> + <preferred-value>yue</preferred-value> + </redundant> </registry> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/data/reg2xml.c new/liblangtag-0.5.3/data/reg2xml.c --- old/liblangtag-0.5.2/data/reg2xml.c 2013-05-10 04:51:40.000000000 +0200 +++ new/liblangtag-0.5.3/data/reg2xml.c 2014-04-07 08:34:42.000000000 +0200 @@ -48,6 +48,7 @@ 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 @@ } 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 @@ ent = NULL; range = NULL; } - in_entry = TRUE; + in_entry = !file_end; } else { if (!in_entry) { /* ignore it */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/docs/html/annotation-glossary.html new/liblangtag-0.5.3/docs/html/annotation-glossary.html --- old/liblangtag-0.5.2/docs/html/annotation-glossary.html 2013-08-28 11:37:42.000000000 +0200 +++ new/liblangtag-0.5.3/docs/html/annotation-glossary.html 2014-04-09 11:09:09.000000000 +0200 @@ -20,9 +20,7 @@ <td> </td> </tr> <tr><td colspan="5" class="shortcuts"> -<a class="shortcut" href="#glsS">S</a> - | - <a class="shortcut" href="#glsA">A</a> +<a class="shortcut" href="#glsA">A</a> | <a class="shortcut" href="#glsS">S</a> | @@ -32,13 +30,12 @@ <div class="glossary"> <div class="titlepage"><div><div><h1 class="title"> <a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div> -<a name="glsS"></a><h3 class="title">S</h3> -<dt><span class="glossterm"><a name="annotation-glossterm-scope%20async"></a>scope async</span></dt> -<dd class="glossdef"><p>The callback is valid until first called.</p></dd> <a name="glsA"></a><h3 class="title">A</h3> <dt><span class="glossterm"><a name="annotation-glossterm-allow-none"></a>allow-none</span></dt> <dd class="glossdef"><p>NULL is ok, both for passing and for returning.</p></dd> <a name="glsS"></a><h3 class="title">S</h3> +<dt><span class="glossterm"><a name="annotation-glossterm-scope%20async"></a>scope async</span></dt> +<dd class="glossdef"><p>The callback is valid until first called.</p></dd> <dt><span class="glossterm"><a name="annotation-glossterm-scope%20call"></a>scope call</span></dt> <dd class="glossdef"><p>The callback is valid only during the call to the method.</p></dd> <a name="glsT"></a><h3 class="title">T</h3> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/docs/html/api-index-full.html new/liblangtag-0.5.3/docs/html/api-index-full.html --- old/liblangtag-0.5.2/docs/html/api-index-full.html 2013-08-28 11:37:42.000000000 +0200 +++ new/liblangtag-0.5.3/docs/html/api-index-full.html 2014-04-09 11:09:09.000000000 +0200 @@ -433,11 +433,11 @@ </dt> <dd></dd> <dt> -<a class="link" href="liblangtag-Iterator.html#lt-iter-init" title="lt_iter_init ()">lt_iter_init</a>, function in <a class="link" href="liblangtag-Iterator.html" title="Iterator">Iterator</a> +<a class="link" href="liblangtag-Iterator.html#LT-ITER-INIT:CAPS" title="LT_ITER_INIT()">LT_ITER_INIT</a>, macro in <a class="link" href="liblangtag-Iterator.html" title="Iterator">Iterator</a> </dt> <dd></dd> <dt> -<a class="link" href="liblangtag-Iterator.html#LT-ITER-INIT:CAPS" title="LT_ITER_INIT()">LT_ITER_INIT</a>, macro in <a class="link" href="liblangtag-Iterator.html" title="Iterator">Iterator</a> +<a class="link" href="liblangtag-Iterator.html#lt-iter-init" title="lt_iter_init ()">lt_iter_init</a>, function in <a class="link" href="liblangtag-Iterator.html" title="Iterator">Iterator</a> </dt> <dd></dd> <dt> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/docs/html/index.html new/liblangtag-0.5.3/docs/html/index.html --- old/liblangtag-0.5.2/docs/html/index.html 2013-08-28 11:37:42.000000000 +0200 +++ new/liblangtag-0.5.3/docs/html/index.html 2014-04-09 11:09:09.000000000 +0200 @@ -15,7 +15,7 @@ <div> <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">liblangtag Documentation</p></th></tr></table></div> <div><p class="releaseinfo"> - for liblangtag 0.4.0 + for liblangtag 0.5.3 . </p></div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/docs/html/index.sgml new/liblangtag-0.5.3/docs/html/index.sgml --- old/liblangtag-0.5.2/docs/html/index.sgml 2013-08-28 11:37:42.000000000 +0200 +++ new/liblangtag-0.5.3/docs/html/index.sgml 2014-04-09 11:09:09.000000000 +0200 @@ -353,8 +353,8 @@ <ANCHOR id="lt-string-truncate" href="liblangtag/liblangtag-Strings.html#lt-string-truncate"> <ANCHOR id="lt-string-unref" href="liblangtag/liblangtag-Strings.html#lt-string-unref"> <ANCHOR id="lt-string-value" href="liblangtag/liblangtag-Strings.html#lt-string-value"> -<ANCHOR id="annotation-glossterm-scope async" href="liblangtag/annotation-glossary.html#annotation-glossterm-scope async"> <ANCHOR id="annotation-glossterm-allow-none" href="liblangtag/annotation-glossary.html#annotation-glossterm-allow-none"> +<ANCHOR id="annotation-glossterm-scope async" href="liblangtag/annotation-glossary.html#annotation-glossterm-scope async"> <ANCHOR id="annotation-glossterm-scope call" href="liblangtag/annotation-glossary.html#annotation-glossterm-scope call"> <ANCHOR id="annotation-glossterm-transfer full" href="liblangtag/annotation-glossary.html#annotation-glossterm-transfer full"> <ANCHOR id="annotation-glossterm-transfer none" href="liblangtag/annotation-glossary.html#annotation-glossterm-transfer none"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/docs/html/liblangtag-Container---Tag.html new/liblangtag-0.5.3/docs/html/liblangtag-Container---Tag.html --- old/liblangtag-0.5.2/docs/html/liblangtag-Container---Tag.html 2013-08-28 11:37:42.000000000 +0200 +++ new/liblangtag-0.5.3/docs/html/liblangtag-Container---Tag.html 2014-04-09 11:09:09.000000000 +0200 @@ -73,7 +73,7 @@ <em class="parameter"><code><a class="link" href="liblangtag-Error.html#lt-error-t" title="lt_error_t"><span class="type">lt_error_t</span></a> **error</code></em>); <a class="link" href="liblangtag-Container---Tag.html#lt-tag-t" title="lt_tag_t"><span class="returnvalue">lt_tag_t</span></a> * <a class="link" href="liblangtag-Container---Tag.html#lt-tag-ref" title="lt_tag_ref ()">lt_tag_ref</a> (<em class="parameter"><code><a class="link" href="liblangtag-Container---Tag.html#lt-tag-t" title="lt_tag_t"><span class="type">lt_tag_t</span></a> *tag</code></em>); <a class="link" href="liblangtag-Container---Tag.html#lt-tag-t" title="lt_tag_t">lt_tag_t</a>; -<a class="link" href="liblangtag-Container---Tag.html#lt-tag-t" title="lt_tag_t"><span class="returnvalue">lt_tag_t</span></a> * <a class="link" href="liblangtag-Container---Tag.html#lt-tag-transform" title="lt_tag_transform ()">lt_tag_transform</a> (<em class="parameter"><code><a class="link" href="liblangtag-Container---Tag.html#lt-tag-t" title="lt_tag_t"><span class="type">lt_tag_t</span></a> *tag</code></em>, +<span class="returnvalue">char</span> * <a class="link" href="liblangtag-Container---Tag.html#lt-tag-transform" title="lt_tag_transform ()">lt_tag_transform</a> (<em class="parameter"><code><a class="link" href="liblangtag-Container---Tag.html#lt-tag-t" title="lt_tag_t"><span class="type">lt_tag_t</span></a> *tag</code></em>, <em class="parameter"><code><a class="link" href="liblangtag-Error.html#lt-error-t" title="lt_error_t"><span class="type">lt_error_t</span></a> **error</code></em>); <a class="link" href="liblangtag-Miscellaneous-Macros.html#lt-bool-t" title="lt_bool_t"><span class="returnvalue">lt_bool_t</span></a> <a class="link" href="liblangtag-Container---Tag.html#lt-tag-truncate" title="lt_tag_truncate ()">lt_tag_truncate</a> (<em class="parameter"><code><a class="link" href="liblangtag-Container---Tag.html#lt-tag-t" title="lt_tag_t"><span class="type">lt_tag_t</span></a> *tag</code></em>, <em class="parameter"><code><a class="link" href="liblangtag-Error.html#lt-error-t" title="lt_error_t"><span class="type">lt_error_t</span></a> **error</code></em>); @@ -489,8 +489,7 @@ </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td>a language tag string. the returned value is owned by the library. -it must not be freed.</td> +<td>a language tag string.</td> </tr> </tbody> </table></div> @@ -723,7 +722,7 @@ <hr> <div class="refsect2"> <a name="lt-tag-transform"></a><h3>lt_tag_transform ()</h3> -<pre class="programlisting"><a class="link" href="liblangtag-Container---Tag.html#lt-tag-t" title="lt_tag_t"><span class="returnvalue">lt_tag_t</span></a> * lt_tag_transform (<em class="parameter"><code><a class="link" href="liblangtag-Container---Tag.html#lt-tag-t" title="lt_tag_t"><span class="type">lt_tag_t</span></a> *tag</code></em>, +<pre class="programlisting"><span class="returnvalue">char</span> * lt_tag_transform (<em class="parameter"><code><a class="link" href="liblangtag-Container---Tag.html#lt-tag-t" title="lt_tag_t"><span class="type">lt_tag_t</span></a> *tag</code></em>, <em class="parameter"><code><a class="link" href="liblangtag-Error.html#lt-error-t" title="lt_error_t"><span class="type">lt_error_t</span></a> **error</code></em>);</pre> <p> Transform <em class="parameter"><code>tag</code></em> according to the likelySubtags database provided by CLDR. @@ -745,8 +744,7 @@ </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td>a <a class="link" href="liblangtag-Container---Tag.html#lt-tag-t" title="lt_tag_t"><span class="type">lt_tag_t</span></a> which contains transformed language tag. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span> -</td> +<td>a string.</td> </tr> </tbody> </table></div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/docs/version.xml new/liblangtag-0.5.3/docs/version.xml --- old/liblangtag-0.5.2/docs/version.xml 2013-08-28 11:37:41.000000000 +0200 +++ new/liblangtag-0.5.3/docs/version.xml 2014-04-09 11:05:49.000000000 +0200 @@ -1 +1 @@ -0.5.2 +0.5.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/liblangtag/lt-messages.h new/liblangtag-0.5.3/liblangtag/lt-messages.h --- old/liblangtag-0.5.2/liblangtag/lt-messages.h 2013-04-22 10:06:57.000000000 +0200 +++ new/liblangtag-0.5.3/liblangtag/lt-messages.h 2014-01-16 07:23:17.000000000 +0100 @@ -73,7 +73,7 @@ lt_message_flags_t flags, lt_message_category_t category, const char *format, - va_list args); + va_list args) LT_GNUC_PRINTF(4, 0); void lt_return_if_fail_warning (const char *pretty_function, const char *expression); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/liblangtag/lt-stdint.h new/liblangtag-0.5.3/liblangtag/lt-stdint.h --- old/liblangtag-0.5.2/liblangtag/lt-stdint.h 2013-08-28 11:37:41.000000000 +0200 +++ new/liblangtag-0.5.3/liblangtag/lt-stdint.h 2014-04-09 11:00:23.000000000 +0200 @@ -1,8 +1,8 @@ #ifndef _LIBLANGTAG_LIBLANGTAG_LT_STDINT_H #define _LIBLANGTAG_LIBLANGTAG_LT_STDINT_H 1 #ifndef _GENERATED_STDINT_H -#define _GENERATED_STDINT_H "liblangtag 0.5.2" -/* generated using gnu compiler gcc (GCC) 4.8.1 20130603 (Red Hat 4.8.1-1) */ +#define _GENERATED_STDINT_H "liblangtag 0.5.3" +/* generated using gnu compiler gcc (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7) */ #define _STDINT_HAVE_STDINT_H 1 #include <stdint.h> #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/liblangtag/lt-tag.c new/liblangtag-0.5.3/liblangtag/lt-tag.c --- old/liblangtag-0.5.2/liblangtag/lt-tag.c 2013-08-27 12:56:13.000000000 +0200 +++ new/liblangtag-0.5.3/liblangtag/lt-tag.c 2014-04-07 10:31:55.000000000 +0200 @@ -1226,6 +1226,158 @@ return tag; } +static char * +_lt_tag_canonicalize(lt_tag_t *tag, + lt_bool_t extlang_form, + lt_error_t **error) +{ + char *retval = NULL; + lt_string_t *string = NULL; + lt_error_t *err = NULL; + lt_list_t *l; + lt_redundant_db_t *rdb = NULL; + lt_redundant_t *r = NULL; + lt_tag_t *ctag = NULL; + + lt_return_val_if_fail (tag != NULL, NULL); + + string = lt_string_new(NULL); + if (tag->grandfathered) { + lt_string_append(string, lt_grandfathered_get_better_tag(tag->grandfathered)); + goto bail1; + } + + ctag = lt_tag_copy(tag); + rdb = lt_db_get_redundant(); + while (1) { + const char *tag_string = lt_tag_get_string(ctag); + + if (tag_string == NULL || tag_string[0] == 0) + break; + r = lt_redundant_db_lookup(rdb, tag_string); + if (r) { + const char *preferred = lt_redundant_get_preferred_tag(r); + + if (preferred) { + lt_tag_t *rtag = lt_tag_new(); + lt_tag_t *ntag = lt_tag_new(); + + if (!lt_tag_parse(rtag, lt_redundant_get_tag(r), &err)) { + lt_tag_unref(rtag); + lt_tag_unref(ntag); + goto bail1; + } + if (!lt_tag_parse(ntag, preferred, &err)) { + lt_tag_unref(rtag); + lt_tag_unref(ntag); + goto bail1; + } + _lt_tag_subtract(tag, rtag); + _lt_tag_replace(tag, ntag); + lt_tag_unref(rtag); + lt_tag_unref(ntag); + } + break; + } else { + if (!lt_tag_truncate(ctag, &err)) + goto bail1; + } + } + + if (tag->language) { + size_t len; + lt_extlang_db_t *edb = lt_db_get_extlang(); + lt_extlang_t *e; + + if (extlang_form) { + /* If the language tag starts with a primary language subtag + * that is also an extlang subtag, then the language tag is + * prepended with the extlang's 'Prefix'. + */ + e = lt_extlang_db_lookup(edb, lt_lang_get_better_tag(tag->language)); + if (e) { + const char *prefix = lt_extlang_get_prefix(e); + + if (prefix) + lt_string_append_printf(string, "%s-", prefix); + lt_extlang_unref(e); + } + lt_extlang_db_unref(edb); + } + + lt_string_append(string, lt_lang_get_better_tag(tag->language)); + if (tag->extlang) { + const char *preferred = lt_extlang_get_preferred_tag(tag->extlang); + + if (preferred) { + lt_string_clear(string); + lt_string_append(string, preferred); + } else { + lt_string_append_printf(string, "-%s", + lt_extlang_get_tag(tag->extlang)); + } + } + if (tag->script) { + const char *script = lt_script_get_tag(tag->script); + const char *suppress = lt_lang_get_suppress_script(tag->language); + + if (!suppress || + lt_strcasecmp(suppress, script)) + lt_string_append_printf(string, "-%s", script); + } + if (tag->region) { + lt_string_append_printf(string, "-%s", lt_region_get_better_tag(tag->region)); + } + len = lt_string_length(string); + for (l = tag->variants; l != NULL; l = lt_list_next(l)) { + lt_variant_t *variant = lt_list_value(l); + const char *better = lt_variant_get_better_tag(variant); + const char *s = lt_variant_get_tag(variant); + + if (better && lt_strcasecmp(s, better) != 0) { + /* ignore all of variants prior to this one */ + lt_string_truncate(string, len); + } + lt_string_append_printf(string, "-%s", better ? better : s); + } + if (tag->extension) { + char *s = lt_extension_get_canonicalized_tag(tag->extension); + + lt_string_append_printf(string, "-%s", s); + free(s); + } + } + if (tag->privateuse && lt_string_length(tag->privateuse) > 0) { + lt_string_append_printf(string, "%s%s", + lt_string_length(string) > 0 ? "-" : "", + lt_string_value(tag->privateuse)); + } + if (lt_string_length(string) == 0) { + lt_error_set(&err, LT_ERR_NO_TAG, + "No tag to convert."); + } + bail1: + if (ctag) + lt_tag_unref(ctag); + if (rdb) + lt_redundant_db_unref(rdb); + if (r) + lt_redundant_unref(r); + retval = lt_string_free(string, FALSE); + if (lt_error_is_set(err, LT_ERR_ANY)) { + if (error) + *error = lt_error_ref(err); + else + lt_error_print(err, LT_ERR_ANY); + lt_error_unref(err); + if (retval) + free(retval); + retval = NULL; + } + + return retval; +} + /*< protected >*/ lt_tag_state_t lt_tag_parse_wildcard(lt_tag_t *tag, @@ -1576,149 +1728,24 @@ lt_tag_canonicalize(lt_tag_t *tag, lt_error_t **error) { - char *retval = NULL; - lt_string_t *string = NULL; - lt_error_t *err = NULL; - lt_list_t *l; - lt_redundant_db_t *rdb = NULL; - lt_redundant_t *r = NULL; - lt_tag_t *ctag = NULL; - - lt_return_val_if_fail (tag != NULL, NULL); - - string = lt_string_new(NULL); - if (tag->grandfathered) { - lt_string_append(string, lt_grandfathered_get_better_tag(tag->grandfathered)); - goto bail1; - } - - ctag = lt_tag_copy(tag); - rdb = lt_db_get_redundant(); - while (1) { - const char *tag_string = lt_tag_get_string(ctag); - - if (tag_string == NULL || tag_string[0] == 0) - break; - r = lt_redundant_db_lookup(rdb, tag_string); - if (r) { - const char *preferred = lt_redundant_get_preferred_tag(r); - - if (preferred) { - lt_tag_t *rtag = lt_tag_new(); - lt_tag_t *ntag = lt_tag_new(); - - if (!lt_tag_parse(rtag, lt_redundant_get_tag(r), &err)) { - lt_tag_unref(rtag); - lt_tag_unref(ntag); - goto bail1; - } - if (!lt_tag_parse(ntag, preferred, &err)) { - lt_tag_unref(rtag); - lt_tag_unref(ntag); - goto bail1; - } - _lt_tag_subtract(tag, rtag); - _lt_tag_replace(tag, ntag); - lt_tag_unref(rtag); - lt_tag_unref(ntag); - } - break; - } else { - if (!lt_tag_truncate(ctag, &err)) - goto bail1; - } - } - - if (tag->language) { - size_t len; - lt_extlang_db_t *edb = lt_db_get_extlang(); - lt_extlang_t *e; - - /* If the language tag starts with a primary language subtag - * that is also an extlang subtag, then the language tag is - * prepended with the extlang's 'Prefix'. - */ - e = lt_extlang_db_lookup(edb, lt_lang_get_better_tag(tag->language)); - if (e) { - const char *prefix = lt_extlang_get_prefix(e); - - if (prefix) - lt_string_append_printf(string, "%s-", prefix); - lt_extlang_unref(e); - } - lt_extlang_db_unref(edb); - - lt_string_append(string, lt_lang_get_better_tag(tag->language)); - if (tag->extlang) { - const char *preferred = lt_extlang_get_preferred_tag(tag->extlang); - - if (preferred) { - lt_string_clear(string); - lt_string_append(string, preferred); - } else { - lt_string_append_printf(string, "-%s", - lt_extlang_get_tag(tag->extlang)); - } - } - if (tag->script) { - const char *script = lt_script_get_tag(tag->script); - const char *suppress = lt_lang_get_suppress_script(tag->language); - - if (!suppress || - lt_strcasecmp(suppress, script)) - lt_string_append_printf(string, "-%s", script); - } - if (tag->region) { - lt_string_append_printf(string, "-%s", lt_region_get_better_tag(tag->region)); - } - len = lt_string_length(string); - for (l = tag->variants; l != NULL; l = lt_list_next(l)) { - lt_variant_t *variant = lt_list_value(l); - const char *better = lt_variant_get_better_tag(variant); - const char *s = lt_variant_get_tag(variant); - - if (better && lt_strcasecmp(s, better) != 0) { - /* ignore all of variants prior to this one */ - lt_string_truncate(string, len); - } - lt_string_append_printf(string, "-%s", better ? better : s); - } - if (tag->extension) { - char *s = lt_extension_get_canonicalized_tag(tag->extension); - - lt_string_append_printf(string, "-%s", s); - free(s); - } - } - if (tag->privateuse && lt_string_length(tag->privateuse) > 0) { - lt_string_append_printf(string, "%s%s", - lt_string_length(string) > 0 ? "-" : "", - lt_string_value(tag->privateuse)); - } - if (lt_string_length(string) == 0) { - lt_error_set(&err, LT_ERR_NO_TAG, - "No tag to convert."); - } - bail1: - if (ctag) - lt_tag_unref(ctag); - if (rdb) - lt_redundant_db_unref(rdb); - if (r) - lt_redundant_unref(r); - retval = lt_string_free(string, FALSE); - if (lt_error_is_set(err, LT_ERR_ANY)) { - if (error) - *error = lt_error_ref(err); - else - lt_error_print(err, LT_ERR_ANY); - lt_error_unref(err); - if (retval) - free(retval); - retval = NULL; - } + return _lt_tag_canonicalize(tag, FALSE, error); +} - return retval; +/** + * lt_tag_canonicalize_in_extlang_form: + * @tag: a #lt_tag_t. + * @error: (allow-none): a #lt_error_t or %NULL. + * + * Canonicalize the language tag in the extlang form + * according to various information of subtags. + * + * Returns: a language tag string. + */ +char * +lt_tag_canonicalize_in_extlang_form(lt_tag_t *tag, + lt_error_t **error) +{ + return _lt_tag_canonicalize(tag, TRUE, error); } /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/liblangtag/lt-tag.h new/liblangtag-0.5.3/liblangtag/lt-tag.h --- old/liblangtag-0.5.2/liblangtag/lt-tag.h 2013-08-27 12:56:13.000000000 +0200 +++ new/liblangtag-0.5.3/liblangtag/lt-tag.h 2014-04-07 10:32:33.000000000 +0200 @@ -38,46 +38,48 @@ typedef struct _lt_tag_t lt_tag_t; -lt_tag_t *lt_tag_new (void); -lt_tag_t *lt_tag_ref (lt_tag_t *tag); -void lt_tag_unref (lt_tag_t *tag); -lt_bool_t lt_tag_parse (lt_tag_t *tag, - const char *tag_string, - lt_error_t **error); -lt_bool_t lt_tag_parse_with_extra_token (lt_tag_t *tag, - const char *tag_string, - lt_error_t **error); -void lt_tag_clear (lt_tag_t *tag); -lt_tag_t *lt_tag_copy (const lt_tag_t *tag); -lt_bool_t lt_tag_truncate (lt_tag_t *tag, - lt_error_t **error); -const char *lt_tag_get_string (lt_tag_t *tag); -char *lt_tag_canonicalize (lt_tag_t *tag, - lt_error_t **error); -char *lt_tag_convert_to_locale (lt_tag_t *tag, - lt_error_t **error); -lt_tag_t *lt_tag_convert_from_locale (lt_error_t **error); -lt_tag_t *lt_tag_convert_from_locale_string(const char *locale, - lt_error_t **error); -void lt_tag_dump (const lt_tag_t *tag); -lt_bool_t lt_tag_compare (const lt_tag_t *v1, - const lt_tag_t *v2); -lt_bool_t lt_tag_match (const lt_tag_t *v1, - const char *v2, - lt_error_t **error); -char *lt_tag_lookup (const lt_tag_t *tag, - const char *pattern, - lt_error_t **error); -char *lt_tag_transform (lt_tag_t *tag, - lt_error_t **error); -const lt_lang_t *lt_tag_get_language (const lt_tag_t *tag); -const lt_extlang_t *lt_tag_get_extlang (const lt_tag_t *tag); -const lt_script_t *lt_tag_get_script (const lt_tag_t *tag); -const lt_region_t *lt_tag_get_region (const lt_tag_t *tag); -const lt_list_t *lt_tag_get_variants (const lt_tag_t *tag); -const lt_extension_t *lt_tag_get_extension (const lt_tag_t *tag); -const lt_string_t *lt_tag_get_privateuse (const lt_tag_t *tag); -const lt_grandfathered_t *lt_tag_get_grandfathered (const lt_tag_t *tag); +lt_tag_t *lt_tag_new (void); +lt_tag_t *lt_tag_ref (lt_tag_t *tag); +void lt_tag_unref (lt_tag_t *tag); +lt_bool_t lt_tag_parse (lt_tag_t *tag, + const char *tag_string, + lt_error_t **error); +lt_bool_t lt_tag_parse_with_extra_token (lt_tag_t *tag, + const char *tag_string, + lt_error_t **error); +void lt_tag_clear (lt_tag_t *tag); +lt_tag_t *lt_tag_copy (const lt_tag_t *tag); +lt_bool_t lt_tag_truncate (lt_tag_t *tag, + lt_error_t **error); +const char *lt_tag_get_string (lt_tag_t *tag); +char *lt_tag_canonicalize (lt_tag_t *tag, + lt_error_t **error); +char *lt_tag_canonicalize_in_extlang_form(lt_tag_t *tag, + lt_error_t **error); +char *lt_tag_convert_to_locale (lt_tag_t *tag, + lt_error_t **error); +lt_tag_t *lt_tag_convert_from_locale (lt_error_t **error); +lt_tag_t *lt_tag_convert_from_locale_string (const char *locale, + lt_error_t **error); +void lt_tag_dump (const lt_tag_t *tag); +lt_bool_t lt_tag_compare (const lt_tag_t *v1, + const lt_tag_t *v2); +lt_bool_t lt_tag_match (const lt_tag_t *v1, + const char *v2, + lt_error_t **error); +char *lt_tag_lookup (const lt_tag_t *tag, + const char *pattern, + lt_error_t **error); +char *lt_tag_transform (lt_tag_t *tag, + lt_error_t **error); +const lt_lang_t *lt_tag_get_language (const lt_tag_t *tag); +const lt_extlang_t *lt_tag_get_extlang (const lt_tag_t *tag); +const lt_script_t *lt_tag_get_script (const lt_tag_t *tag); +const lt_region_t *lt_tag_get_region (const lt_tag_t *tag); +const lt_list_t *lt_tag_get_variants (const lt_tag_t *tag); +const lt_extension_t *lt_tag_get_extension (const lt_tag_t *tag); +const lt_string_t *lt_tag_get_privateuse (const lt_tag_t *tag); +const lt_grandfathered_t *lt_tag_get_grandfathered (const lt_tag_t *tag); LT_END_DECLS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/liblangtag/lt-utils.h new/liblangtag-0.5.3/liblangtag/lt-utils.h --- old/liblangtag-0.5.2/liblangtag/lt-utils.h 2013-04-22 10:06:57.000000000 +0200 +++ new/liblangtag-0.5.3/liblangtag/lt-utils.h 2014-01-16 07:23:17.000000000 +0100 @@ -36,7 +36,7 @@ char *lt_strdup_printf (const char *format, ...) LT_GNUC_PRINTF (1, 2); char *lt_strdup_vprintf(const char *format, - va_list args); + va_list args) LT_GNUC_PRINTF (1, 0); char *lt_strndup (const char *s, size_t n); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/liblangtag/lt-xml.c new/liblangtag-0.5.3/liblangtag/lt-xml.c --- old/liblangtag-0.5.2/liblangtag/lt-xml.c 2013-05-10 04:49:06.000000000 +0200 +++ new/liblangtag-0.5.3/liblangtag/lt-xml.c 2014-01-16 07:23:17.000000000 +0100 @@ -197,7 +197,7 @@ lt_string_append_filename(regfile, BUILDDIR, "data", "common", "supplemental", filename, NULL); - lt_info(lt_string_value(regfile)); + lt_info("%s", lt_string_value(regfile)); if (stat(lt_string_value(regfile), &st) == -1) { lt_string_clear(regfile); lt_string_append_filename(regfile, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/liblangtag-gobject/lt-tag.gir.h new/liblangtag-0.5.3/liblangtag-gobject/lt-tag.gir.h --- old/liblangtag-0.5.2/liblangtag-gobject/lt-tag.gir.h 2013-08-28 11:37:49.000000000 +0200 +++ new/liblangtag-0.5.3/liblangtag-gobject/lt-tag.gir.h 2014-04-09 11:06:06.000000000 +0200 @@ -39,46 +39,48 @@ typedef struct _LtTag LtTag; -LtTag *lt_tag_new (void); -LtTag *lt_tag_ref (LtTag *tag); -void lt_tag_unref (LtTag *tag); -LtBool lt_tag_parse (LtTag *tag, - const char *tag_string, - LtError **error); -LtBool lt_tag_parse_with_extra_token (LtTag *tag, - const char *tag_string, - LtError **error); -void lt_tag_clear (LtTag *tag); -LtTag *lt_tag_copy (const LtTag *tag); -LtBool lt_tag_truncate (LtTag *tag, - LtError **error); -const char *lt_tag_get_string (LtTag *tag); -char *lt_tag_canonicalize (LtTag *tag, - LtError **error); -char *lt_tag_convert_to_locale (LtTag *tag, - LtError **error); -LtTag *lt_tag_convert_from_locale (LtError **error); -LtTag *lt_tag_convert_from_locale_string(const char *locale, - LtError **error); -void lt_tag_dump (const LtTag *tag); -LtBool lt_tag_compare (const LtTag *v1, - const LtTag *v2); -LtBool lt_tag_match (const LtTag *v1, - const char *v2, - LtError **error); -char *lt_tag_lookup (const LtTag *tag, - const char *pattern, - LtError **error); -char *lt_tag_transform (LtTag *tag, - LtError **error); -const LtLang *lt_tag_get_language (const LtTag *tag); -const LtExtlang *lt_tag_get_extlang (const LtTag *tag); -const LtScript *lt_tag_get_script (const LtTag *tag); -const LtRegion *lt_tag_get_region (const LtTag *tag); -const LtList *lt_tag_get_variants (const LtTag *tag); -const LtExtension *lt_tag_get_extension (const LtTag *tag); -const LtString *lt_tag_get_privateuse (const LtTag *tag); -const LtGrandfathered *lt_tag_get_grandfathered (const LtTag *tag); +LtTag *lt_tag_new (void); +LtTag *lt_tag_ref (LtTag *tag); +void lt_tag_unref (LtTag *tag); +LtBool lt_tag_parse (LtTag *tag, + const char *tag_string, + LtError **error); +LtBool lt_tag_parse_with_extra_token (LtTag *tag, + const char *tag_string, + LtError **error); +void lt_tag_clear (LtTag *tag); +LtTag *lt_tag_copy (const LtTag *tag); +LtBool lt_tag_truncate (LtTag *tag, + LtError **error); +const char *lt_tag_get_string (LtTag *tag); +char *lt_tag_canonicalize (LtTag *tag, + LtError **error); +char *lt_tag_canonicalize_in_extlang_form(LtTag *tag, + LtError **error); +char *lt_tag_convert_to_locale (LtTag *tag, + LtError **error); +LtTag *lt_tag_convert_from_locale (LtError **error); +LtTag *lt_tag_convert_from_locale_string (const char *locale, + LtError **error); +void lt_tag_dump (const LtTag *tag); +LtBool lt_tag_compare (const LtTag *v1, + const LtTag *v2); +LtBool lt_tag_match (const LtTag *v1, + const char *v2, + LtError **error); +char *lt_tag_lookup (const LtTag *tag, + const char *pattern, + LtError **error); +char *lt_tag_transform (LtTag *tag, + LtError **error); +const LtLang *lt_tag_get_language (const LtTag *tag); +const LtExtlang *lt_tag_get_extlang (const LtTag *tag); +const LtScript *lt_tag_get_script (const LtTag *tag); +const LtRegion *lt_tag_get_region (const LtTag *tag); +const LtList *lt_tag_get_variants (const LtTag *tag); +const LtExtension *lt_tag_get_extension (const LtTag *tag); +const LtString *lt_tag_get_privateuse (const LtTag *tag); +const LtGrandfathered *lt_tag_get_grandfathered (const LtTag *tag); LT_END_DECLS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/liblangtag-gobject-uninstalled.pc new/liblangtag-0.5.3/liblangtag-gobject-uninstalled.pc --- old/liblangtag-0.5.2/liblangtag-gobject-uninstalled.pc 2013-08-28 11:37:41.000000000 +0200 +++ new/liblangtag-0.5.3/liblangtag-gobject-uninstalled.pc 2014-04-09 11:05:50.000000000 +0200 @@ -1,6 +1,6 @@ Name: liblangtag-gobject Uninstalled Description: GObject based interface to access tags for identifying languages -Version: 0.5.2 +Version: 0.5.3 Requires: gobject-2.0 liblangtag Libs: ${pcfiledir}/liblangtag-gobject/liblangtag-gobject.la Cflags: -I${pcfiledir} -I${pcfiledir}/.. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/liblangtag-gobject.pc new/liblangtag-0.5.3/liblangtag-gobject.pc --- old/liblangtag-0.5.2/liblangtag-gobject.pc 2013-08-28 11:37:41.000000000 +0200 +++ new/liblangtag-0.5.3/liblangtag-gobject.pc 2014-04-09 11:05:50.000000000 +0200 @@ -1,10 +1,10 @@ prefix=/usr exec_prefix=${prefix} -libdir=${exec_prefix}/lib +libdir=${exec_prefix}/lib64 includedir=${prefix}/include Name: liblangtag-gobject Description: GObject based interface to access tags for identifying languages -Version: 0.5.2 +Version: 0.5.3 Requires: gobject-2.0 liblangtag Libs: -L${libdir} -llangtag-gobject diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/liblangtag-uninstalled.pc new/liblangtag-0.5.3/liblangtag-uninstalled.pc --- old/liblangtag-0.5.2/liblangtag-uninstalled.pc 2013-08-28 11:37:41.000000000 +0200 +++ new/liblangtag-0.5.3/liblangtag-uninstalled.pc 2014-04-09 11:05:50.000000000 +0200 @@ -1,6 +1,6 @@ Name: liblangtag Uninstalled Description: Interface to access tags for identifying languages -Version: 0.5.2 +Version: 0.5.3 Requires: glib-2.0 Libs: ${pcfiledir}/liblangtag/liblangtag.la Cflags: -I${pcfiledir} -I${pcfiledir}/.. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/liblangtag.pc new/liblangtag-0.5.3/liblangtag.pc --- old/liblangtag-0.5.2/liblangtag.pc 2013-08-28 11:37:41.000000000 +0200 +++ new/liblangtag-0.5.3/liblangtag.pc 2014-04-09 11:05:50.000000000 +0200 @@ -1,10 +1,10 @@ prefix=/usr exec_prefix=${prefix} -libdir=${exec_prefix}/lib +libdir=${exec_prefix}/lib64 includedir=${prefix}/include Name: liblangtag Description: Interface to access tags for identifying languages -Version: 0.5.2 +Version: 0.5.3 Requires: glib-2.0 Libs: -L${libdir} -llangtag diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/tests/check-tag.c new/liblangtag-0.5.3/tests/check-tag.c --- old/liblangtag-0.5.2/tests/check-tag.c 2013-08-27 12:56:13.000000000 +0200 +++ new/liblangtag-0.5.3/tests/check-tag.c 2014-04-07 10:31:55.000000000 +0200 @@ -109,13 +109,11 @@ t1 = lt_tag_new(); fail_unless(t1 != NULL, "OOM"); -#if 0 /* which one is correct behavior? gan? or zh-gan? */ fail_unless(lt_tag_parse(t1, "zh-gan", NULL), "should be valid langtag."); s = lt_tag_canonicalize(t1, NULL); fail_unless(s != NULL, "Unable to be canonicalize."); fail_unless(lt_strcmp0(s, "gan") == 0, "Unexpected result to be canonicalized."); free(s); -#endif fail_unless(lt_tag_parse(t1, "zh-yue", NULL), "should be valid langtag."); s = lt_tag_canonicalize(t1, NULL); fail_unless(s != NULL, "Unable to be canonicalize."); @@ -126,13 +124,11 @@ fail_unless(s != NULL, "Unable to be canonicalize."); fail_unless(lt_strcmp0(s, "yue-Hant-HK") == 0, "Unexpected result to be canonicalized."); free(s); -#if 0 /* which one is correct behavior? cmn? zh-cmn? */ fail_unless(lt_tag_parse(t1, "zh-cmn", NULL), "should be valid langtag."); s = lt_tag_canonicalize(t1, NULL); fail_unless(s != NULL, "Unable to be canonicalize."); fail_unless(lt_strcmp0(s, "cmn") == 0, "Unexpected result to be canonicalized."); free(s); -#endif fail_unless(lt_tag_parse(t1, "en-Latn-US", NULL), "should be valid langtag."); s = lt_tag_canonicalize(t1, NULL); fail_unless(s != NULL, "Unable to be canonicalize."); @@ -176,7 +172,7 @@ fail_unless(lt_tag_parse(t1, "hak-CN", NULL), "should be valid langtag."); s = lt_tag_canonicalize(t1, NULL); fail_unless(s != NULL, "Unable to be canonicalize."); - fail_unless(lt_strcmp0(s, "zh-hak-CN") == 0, "Unexpected result to be canonicalized."); + fail_unless(lt_strcmp0(s, "hak-CN") == 0, "Unexpected result to be canonicalized."); free(s); fail_unless(lt_tag_parse(t1, "en-BU", NULL), "should be valid langtag."); s = lt_tag_canonicalize(t1, NULL); @@ -186,12 +182,40 @@ fail_unless(lt_tag_parse(t1, "sgn-BR", NULL), "should be valid langtag."); s = lt_tag_canonicalize(t1, NULL); fail_unless(s != NULL, "Unable to be canonicalize."); - fail_unless(lt_strcmp0(s, "sgn-bzs") == 0, "Unexpected result to be canonicalized."); + fail_unless(lt_strcmp0(s, "bzs") == 0, "Unexpected result to be canonicalized."); free(s); lt_tag_unref(t1); } TEND +TDEF (lt_tag_canonicalize_in_extlang_form) { + lt_tag_t *t1; + char *s; + + t1 = lt_tag_new(); + fail_unless(t1 != NULL, "OOM"); + fail_unless(lt_tag_parse(t1, "gan", NULL), "should be valid langtag."); + s = lt_tag_canonicalize_in_extlang_form(t1, NULL); + fail_unless(s != NULL, "Unable to be canonicalize."); + fail_unless(lt_strcmp0(s, "zh-gan") == 0, "Unexpected result to be canonicalized."); + free(s); + fail_unless(lt_tag_parse(t1, "cmn", NULL), "should be valid langtag."); + s = lt_tag_canonicalize_in_extlang_form(t1, NULL); + fail_unless(s != NULL, "Unable to be canonicalize."); + fail_unless(lt_strcmp0(s, "zh-cmn") == 0, "Unexpected result to be canonicalized."); + free(s); + fail_unless(lt_tag_parse(t1, "hak-CN", NULL), "should be valid langtag."); + s = lt_tag_canonicalize_in_extlang_form(t1, NULL); + fail_unless(s != NULL, "Unable to be canonicalize."); + fail_unless(lt_strcmp0(s, "zh-hak-CN") == 0, "Unexpected result to be canonicalized."); + free(s); + fail_unless(lt_tag_parse(t1, "sgn-BR", NULL), "should be valid langtag."); + s = lt_tag_canonicalize_in_extlang_form(t1, NULL); + fail_unless(s != NULL, "Unable to be canonicalize."); + fail_unless(lt_strcmp0(s, "sgn-bzs") == 0, "Unexpected result to be canonicalized."); + free(s); +} TEND + TDEF (lt_tag_match) { lt_tag_t *t1; @@ -309,6 +333,7 @@ T (lt_tag_parse); T (lt_tag_parse_with_extra_token); T (lt_tag_canonicalize); + T (lt_tag_canonicalize_in_extlang_form); T (lt_tag_match); T (lt_tag_transform); T (lt_tag_convert_from_locale_string); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/tests/main.c new/liblangtag-0.5.3/tests/main.c --- old/liblangtag-0.5.2/tests/main.c 2013-04-22 10:06:57.000000000 +0200 +++ new/liblangtag-0.5.3/tests/main.c 2014-01-16 07:23:21.000000000 +0100 @@ -37,7 +37,7 @@ const char *message, lt_pointer_t user_data) { - lt_error_set(&error, type, "%s", message); + lt_error_set(&error, LT_ERR_INVALID, "%s", message); } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/liblangtag-0.5.2/tests/tag.c new/liblangtag-0.5.3/tests/tag.c --- old/liblangtag-0.5.2/tests/tag.c 2013-08-27 12:56:13.000000000 +0200 +++ new/liblangtag-0.5.3/tests/tag.c 2014-04-07 10:31:55.000000000 +0200 @@ -34,7 +34,7 @@ if (lt_strcmp0(argv[1], "help") == 0) { help: printf("Usage: %s <command> ...\n" - "commands: canonicalize, dump, from_locale, lookup, match, to_locale, transform\n", + "commands: canonicalize, ecanonicalize, dump, from_locale, lookup, match, to_locale, transform\n", argv[0]); } else if (lt_strcmp0(argv[1], "canonicalize") == 0) { char *s; @@ -44,6 +44,14 @@ printf("%s -> %s\n", argv[2], s); free(s); } + } else if (lt_strcmp0(argv[1], "ecanonicalize") == 0) { + char *s; + + if (lt_tag_parse(tag, argv[2], NULL)) { + s = lt_tag_canonicalize_in_extlang_form(tag, NULL); + printf("%s -> %s\n", argv[2], s); + free(s); + } } else if (lt_strcmp0(argv[1], "dump") == 0) { if (lt_tag_parse(tag, argv[2], NULL)) lt_tag_dump(tag); -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
