2015-12-28 Daiki Ueno Update translations * gettext-runtime/po/fr.po: Update from Stéphane Aulery . * gettext-runtime/po/nb.po: Update from Johnny A. Solbu . * gettext-runtime/po/pt_BR.po: Update from Rafael Ferreira . * gettext-runtime/po/sr.po: Update from Мирослав Николић . * gettext-runtime/po/zh_TW.po: Update from Wei-Lun Chao . * gettext-tools/examples/po/fr.po: Update from Stéphane Aulery . * gettext-tools/examples/po/nb.po: Update from Johnny A. Solbu . * gettext-tools/examples/po/pt_BR.po: Update from Rafael Ferreira . * gettext-tools/examples/po/sr.po: Update from Мирослав Николић . * gettext-tools/examples/po/zh_TW.po: Update from Wei-Lun Chao . * gettext-tools/po/bg.po: Update from Roumen Petrov . * gettext-tools/po/es.po: Update from Antonio Ceballos . * gettext-tools/po/fr.po: Update from Stéphane Aulery . * gettext-tools/po/ja.po: Update from Masahito Yamaga . * gettext-tools/po/nl.po: Update from Benno Schulenberg . * gettext-tools/po/pt_BR.po: Update from Rafael Fontenelle . * gettext-tools/po/sk.po: Update from Marcel Telka . * gettext-tools/po/sl.po: Update from Primoz PETERLIN . * gettext-tools/po/sr.po: Update from Мирослав Николић . * gettext-tools/po/uk.po: Update from Yuri Chornoivan . * gettext-tools/po/vi.po: Update from Trần Ngọc Quân . Prepare for 0.19.7 doc: Regenerate translation matrix * gettext-runtime/ABOUT-NLS: Regenerate for 0.19.7. * gettext-runtime/doc/matrix.texi: Regenerate for 0.19.7. NEWS: Add 0.19.7 changes Update gnulib Ignore file brought by gnulib-tool * gettext-tools/gnulib-tests/.gitignore: Ignore file brought by gnulib-tool. 2015-12-23 Daiki Ueno term-ostream-tests: Add test data for FreeBSD 10.1 * gnulib-local/modules/term-ostream-tests: Add test-term-ostream-xterm-freebsd101.out. * gnulib-local/tests/test-term-ostream-xterm: Use new test data. * gnulib-local/tests/test-term-ostream-xterm-freebsd101.out: New file. 2015-12-21 Daiki Ueno cldr-plurals: Fix errors from clang-analyzer * gettext-tools/src/cldr-plurals.c (extract_rules): Add extra null checks for NODE and BUFFER. Don't add NUL byte to the end of buffer manually. 2015-12-17 Daiki Ueno po: Prefer to use host tools when cross compiling * gettext-runtime/po/Makefile.in.in (CROSS_COMPILING): New substitute variable. (.nop.po-update): Don't prepend ../src to $PATH when cross compiling. * gettext-runtime/po/Rules-quot (.insert-header.po-update-en): Likewise. its: Allow CDATA and comments in translatable node * gettext-tools/src/its.c (its_rule_list_is_translatable): Don't return false on CDATA and comments. its: Fix typo in GSettings rule * gettext-tools/its/gsettings.its: Fix typo in escape rule. 2015-12-15 Daiki Ueno gnulib-local: Fix link error due to symbol dupes * gnulib-local/lib/libxml/trionan.c (minus_zerod): Mark as static. gnulib-local: Pull more functions for libxml * gettext-tools/gnulib-lib/.gitignore: Ignore files brought by gnulib-tool. * gettext-tools/gnulib-tests/.gitignore: Likewise. * gnulib-local/modules/libxml (Depends-on): Add 'pow', 'log10', and 'fabs'. gnulib-local: Replace libxml2 trio with Gnulib * gettext-tools/gnulib-lib/.gitignore: Ignore files brought by gnulib-tool. * gettext-tools/gnulib-tests/.gitignore: Likewise. * gnulib-local/lib/libxml/triodef.h: Remove. * gnulib-local/lib/libxml/trionan.c: Replace it with Gnulib functions. * gnulib-local/lib/libxml/trionan.h: Remove. * gnulib-local/modules/libxml (Depends-on): Add 'isinf', 'isnan', and 'signbit'. 2015-12-14 Daiki Ueno gnulib-local: Update included libxml2 to 2.9.3 * gnulib-local/lib/libxml/*: Update from libxml2 2.9.3. Add buf.[ch], enc.h, save.h, triodef.h, trionan.[ch]. Enable XPath and XPointer support. * gnulib-local/modules/libxml (Files): Add new files from libxml2 2.9.3. 2015-12-10 Daiki Ueno gettext-tools: Update POTFILES.in * gettext-tools/po/POTFILES.in: Add newly added files. gnulib-local: Make markup.c translator friendly * gnulib-local/lib/markup.c: Reuse strings. its: Mark some attributes as escape="no" * gettext-tools/its/glade2.its: Mark "comments" attribute as escape="no". * gettext-tools/its/gsettings.its: Mark "context" attribute as escape="no". * gettext-tools/its/gtkbuilder.its: Mark "comments" attribute as escape="no". xgettext: Respect ITS escape rule for attributes * gettext-tools/src/its.c (its_rule_list_extract_text): Check for "escape" value for an attribute node. * gettext-tools/tests/xgettext-its-1: Add tests for gt:escapeRule. 2015-12-10 KO Myung-Hun (tiny change) intl: Fix name resolution failures on kLIBC kLIBC already has _nl_default_dirname and _nl_msg_cat_cntr in its own gettext implmenetation. * gettext-runtime/intl/dcigettext.c: Do not declare _nl_default_dirname on kLIBC. * gettext-runtime/intl/gettextP.h: Define _nl_msg_cat_cntr to libintl_nl_msg_cat_cntr on kLIBC. build: Do not include os2compat.[ch] kLIBC does not need os2compat.[ch] * gettext-runtime/configure.ac (AH_BOTTOM): Do not include intl/os2compat.h on kLIBC. * gettext-runtime/intl/osdep.c: Do not include os2compat.c on kLIBC. * gettext-tools/configure.ac (AH_BOTTOM): Do not include intl/os2compat.h on kLIBC. test-lock: Do not include sched.h on kLIBC * gettext-runtime/tests/test-lock.c: Do not include sched.h on kLIBC, since kLIBC does not have sched.h. 2015-12-10 Daiki Ueno kde: Fix KUIT error handling when libxml2 is used * gettext-tools/src/format-kde-kuit.c (format_parse): Return NULL if xmlReadMemory returns NULL. xgettext: Add --its option for ease of testing * gettext-tools/doc/xgettext.texi (Output details): Mention --its option. * gettext-tools/src/xgettext.c (long_options): Add --its option. (main): Handle --its option. Suggested by Sébastien Wilmet. xgettext: Improve error reporting when ITS is used * gettext-tools/src/xgettext.c (main): Print error when an ITS file is designated through a locating rule, but the file does not exist. build: Update DEPENDENCIES * DEPENDENCIES: Remove duplicate entry for libxml2. 2015-12-09 Daiki Ueno build: Remove expat dependency * DEPENDENCIES: Suggest libxml2 instead of expat. * gnulib-local/lib/markup.c: New file. * gnulib-local/lib/markup.h: New file. * gnulib-local/modules/markup: New file. * autogen.sh (GNULIB_MODULES_LIBGETTEXTPO): Add markup module. * gettext-tools/configure.ac: Remove checks for expat. * gettext-tools/gnulib-lib/.gitignore: Ignore modules pulled by gnulib-tool due to the markup module usage. * gettext-tools/gnulib-tests/.gitignore: Likewise. * gettext-tools/libgettextpo/.gitignore: Likewise. * gettext-tools/libgettextpo/Makefile.am (libgettextpo_la_AUXSOURCES): Remove ../src/libexpat-compat.c. (libgettextpo_la_LDFLAGS): Remove @LTLIBEXPAT@. * gettext-tools/src/Makefile.am (noinst_HEADERS): Remove libexpat-compat.h. (libgettextsrc_la_SOURCES): Remove libexpat-compat.c. (libgettextsrc_la_LDFLAGS): Remove @LTLIBEXPAT@. * gettext-tools/src/format-kde-kuit.c: Use functions from markup.h, when the file is being compiled as part of libgettextpo. Otherwise use libxml2. * gettext-tools/src/libexpat-compat.c: Remove. * gettext-tools/src/libexpat-compat.h: Remove. 2015-12-08 Daiki Ueno build: Fix texi2html failure with perl 5.22 * gettext-runtime/libasprintf/texi2html (update_sec_num): Don't use "defined" against an array ref. * gettext-tools/doc/texi2html (update_sec_num): Likewise. Update gnulib xgettext: Ignore --from-code when XML mode * gettext-tools/src/xgettext.c (extract_from_xml_file): Forcibly set current source encoding to UTF-8, on XML mode. build: Suppress compiler warning * gettext-tools/src/its.c (its_rule_list_extract_text): Remove unused local variable "message". 2015-12-04 Daiki Ueno msgfmt: Support XML file merging * gettext-tools/src/Makefile.am (noinst_HEADERS): Add write-xml.h. (msgfmt_SOURCES): Add write-xml.c. * gettext-tools/src/its.c (its_merge_context_merge_node): New function. (its_merge_context_merge): New function. (its_merge_context_alloc): New function. (its_merge_context_write): New function. (its_merge_context_free): New function. * gettext-tools/src/its.h (its_merge_context_ty): New type. * gettext-tools/src/msgfmt.c: Include "its.h", "locating-rule.h", and "write-xml.h". (SIZEOF): New macro. (xml_mode, xml_locale_name, xml_template_name, xml_base_directory, xml_language, xml_its_rules): New variable. (long_options): Add --language and --xml. (main): Handle new options. (usage): Document new options. (msgfmt_xml_bulk): New function. * gettext-tools/src/write-xml.c: New file. * gettext-tools/src/write-xml.h: New file. * gettext-tools/doc/gettext.texi: Mention XML file merging use-case. * gettext-tools/doc/msgfmt.texi: Mention --xml option. * gettext-tools/tests/msgfmt-xml-1: New file. * gettext-tools/tests/msgfmt-xml-2: New file. * gettext-tools/tests/Makefile.am (TESTS): Add new tests. xgettext: Rewrite Glade scanner in ITS * gettext-tools/its/glade.loc: New file. * gettext-tools/its/glade1.its: New file. * gettext-tools/its/glade2.its: New file. * gettext-tools/its/gtkbuilder.its: New file. * gettext-tools/its/Makefile.am (dist_its_DATA): Add new files. * gettext-tools/src/Makefile.am (xgettext_SOURCES): Remove x-glade.c. * gettext-tools/src/x-glade.c: Remove. * gettext-tools/src/x-glade.h (EXTENSIONS_GLADE): Set language field to NULL. (SCANNERS_GLADE): Set func field to NULL. * gettext-tools/po/POTFILES.in: Remove x-glade.c xgettext: Rewrite GSettings scanner in ITS * gettext-tools/its/gsettings.its: New file. * gettext-tools/its/gsettings.loc: New file. * gettext-tools/its/Makefile.am (dist_its_DATA): Add new files. * gettext-tools/src/Makefile.am (xgettext_SOURCES): Remove x-gsettings.c. * gettext-tools/src/x-gsettings.c: Remove. * gettext-tools/src/x-gsettings.h (EXTENSIONS_GSETTINGS): Set language field to NULL. (SCANNER_GSETTINGS): Set func field to NULL. xgettext: Rewrite AppData scanner in ITS * gettext-tools/its/appdata.loc: New file. * gettext-tools/its/appdata.its: New file. * gettext-tools/its/Makefile.am (dist_its_DATA): Add new files. * gettext-tools/src/Makefile.am (xgettext_SOURCES): Remove x-appdata.c. * gettext-tools/src/x-appdata.c: Remove. * gettext-tools/src/x-appdata.h (EXTENSIONS_APPDATA): Set language field to NULL. (SCANNERS_APPDATA): Set func field to NULL. xgettext: Add support for generic XML files * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add trim module. * gettext-tools/src/locating-rule.h: New file. * gettext-tools/src/locating-rule.c: New file. * gettext-tools/src/its.h: New file. * gettext-tools/src/its.c: New file. * gettext-tools/src/xgettext.c: Include "locating-rule.h" and "its.h". (its_locators): New variable. (long_options): Add --itstool option. (extract_from_xml_file): New function. (main): Handle --itstool option. (usage): Document --itstool option. * gettext-tools/src/Makefile.am (noinst_HEADERS): Add locating-rule.h and its.h. (libgettextsrc_la_CPPFLAGS): Add $(INCXML). (libgettextsrc_la_SOURCES): Add locating-rule.c and its.c. * gettext-tools/Makefile.am (SUBDIRS): Add its directory. * gettext-tools/configure.ac: Output its/Makefile. * gettext-tools/doc/gettext.texi (Preparing ITS Rules): New section. * gettext-tools/doc/xgettext.texi: Mention --itstool option. * gettext-tools/tests/Makefile.am (TESTS): Add new tests. * gettext-tools/tests/xgettext-its-1: New file * gettext-tools/tests/init-env.in: Set GETTEXTDATADIR for ITS tests. 2015-11-18 Daiki Ueno cldr-plurals: Add sanity checks for input * gettext-tools/src/cldr-plurals.c (extract_rules): Add null checks and element type checks. 2015-11-17 Daiki Ueno cldr-plurals: Rewrite XML handling using libxml2 * src/cldr-plurals.c: Include and , instead of "libexpat-compat.h". (extract_locale, extracted_rules, parser, logical_file_name) (struct element_state, stack, stack_size, stack_depth) (ensure_stack_size, start_element_handler, end_element_handler) (character_data_handler): Remove. (extract_rules): Rename from extract_rule and rewrite using DOM. (main): Use extract_rules. * src/Makefile.am (cldr_plurals_CFLAGS): Add $(INCXML). cldr-plurals: Fix a trivial leak * src/cldr-plural.y (sample_range): Free unused operand value. 2015-11-17 Phil Davis (tiny change) doc: Fix typo in gettext_noop example * doc/gettext.texi (Special cases): Add missing ')' to a gettext_noop call. 2015-10-29 Daiki Ueno maint: Ignore more generated ChangeLogs * .gitignore: Add gettext-runtime/intl/ChangeLog, gettext-runtime/po/ChangeLog, and gettext-tools/po/ChangeLog. m4: Fix typo in usage comment * gettext-runtime/m4/gettext.m4: Remove duplicate words. * gettext-runtime/m4/intl.m4: Likewise. * gettext-runtime/m4/intldir.m4: Likewise. * gettext-runtime/m4/intlmacosx.m4: Likewise. * gettext-runtime/m4/lcmessage.m4: Likewise. * gettext-runtime/m4/nls.m4: Likewise. * gettext-runtime/m4/po.m4: Likewise. * gettext-runtime/m4/progtest.m4: Likewise. Reported by Jakub Wilk in: https://lists.gnu.org/archive/html/bug-gettext/2015-10/msg00026.html. doc: Fix typo in msgfmt invocation * gettext-tools/doc/msgfmt.texi: Fix the documentation of -d option, used in the Desktop Entry mode. 2015-10-15 Daiki Ueno build: Generate ChangeLogs for intl and po * autogen.sh: Create empty ChangeLog files under intl and po. * Makefile.am (gen-ChangeLogs): Rename from gen-ChangeLog. Generate ChangeLog files for */intl and */po as well as top-level. * gettext-runtime/intl/ChangeLog.0: Rename from ChangeLog. * gettext-runtime/po/ChangeLog.0: Rename from ChangeLog. * gettext-tools/po/ChangeLog.1: Rename from ChangeLog. build: Distribute old ChangeLogs in tarball * Makefile.am (changelog_etc): Remove non-existent ChangeLog files under intl and po. (EXTRA_DIST): Add $(changelog_etc). 2015-10-14 Mike Frysinger tests: use check_PROGRAMS The noinst_xxx targets will be compiled all the time. For test programs, the check_xxx targets make more sense as they'll only be built when the user runs `make check`. * gettext-runtime/tests/Makefile.am (noinst_PROGRAMS): Rename to ... (check_PROGRAMS): ... this. 2015-10-14 Mike Frysinger intl/localename: control langinfo.h inclusion This header is only used to work around buggy behavior in old versions of glibc, so do not include it all the time. Otherwise we get build failures on systems that do not provide langinfo.h. * gettext-runtime/intl/localename.c: Wrap langinfo.h include with same ifdefs used in the source later on. 2015-10-14 Daiki Ueno build: Remove ChangeLogs Generate ChangeLog files at "make dist" time, using gitlog-to-changelog. We still keep ChangeLog files under "po" and "intl" directories, since those files are copied as part of gettext infrastructure and it is still meaningful to have them there. * .gitignore: Add ChangeLog files. * Admin/release-steps: Remove mention of running update-changelog script. * Admin/update-changelog: Remove. * Makefile.am (gen-ChangeLog): New rule. * autogen.sh: Copy gitlog-to-changelog from gnulib. Create empty ChangeLog files to suppress Automake errors. * gettext-tools/doc/Makefile.am (EXTRA_DIST): Remove ChangeLog.0. * gettext-tools/man/Makefile.am (EXTRA_DIST): Remove ChangeLog.0. * gettext-tools/src/Makefile.am (EXTRA_DIST): Remove ChangeLog.0. * gettext-tools/tests/Makefile.am (EXTRA_DIST): Remove ChangeLog.0. * gnulib-local/Makefile.am (EXTRA_DIST): Remove ChangeLog files. * */ChangeLog: Rename to ChangeLog.0 or ChangeLog.1. * HACKING: Add brief guideline to submit patches.