summaryrefslogtreecommitdiffstats
path: root/gettext-tools
Commit message (Collapse)AuthorAgeFilesLines
* desktop: Fix invalid memory accessDavid Shea2016-05-241-6/+8
| | | | | | * gettext-tools/src/read-desktop.c (desktop_lex): Don't access memory deallocated with realloc(). Reported in: http://savannah.gnu.org/bugs/?47991
* tests: Add more tests for JavaScript format stringDaiki Ueno2016-05-232-4/+6
| | | | | | | * gettext-tools/tests/format-javascript-1: Add test for multiple uses of same argument. * gettext-tools/tests/format-javascript-2: Use proper flag to activate javascript format checker.
* javascript: Fix format type compatibility checkDaiki Ueno2016-05-231-3/+4
| | | | | * gettext-tools/src/format-javascript.c (format_check): Check if the two argument types are the same.
* tests: Add test for ITS search pathDaiki Ueno2016-05-202-1/+63
| | | | | * gettext-tools/tests/Makefile.am (TESTS): Add new test. * gettext-tools/tests/xgettext-its-2: New file.
* search-path: Fix XDG_DATA_DIRS traversalDaiki Ueno2016-05-201-9/+23
| | | | | * gettext-tools/src/search-path.c (foreach_elements): Append "gettext" suffix to each element from XDG_DATA_DIRS.
* search-path: Don't relocate dirs given as envvarDaiki Ueno2016-05-204-95/+91
| | | | | | | | | | | | * gettext-tools/src/search-path.c (foreach_function_ty): New typedef. (path_array_ty): New struct. (foreach_components, increment, fill): New functions. (get_search_path): Rewrite using those functions. Relocate GETTEXTDATADIR here. * gettext-tools/src/search-path.h (get_search_path): Update documentation. * gettext-tools/src/msgfmt.c (main): Don't relocate directories in ITS search path. * gettext-tools/src/xgettext.c (main): Likewise.
* Update gnulibDaiki Ueno2016-05-193-0/+6
| | | | | | | | | | | * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Explicitly pull 'gettext', as the module is now marked as obsolete. * gnulib-local/Makefile.am (EXTRA_DIST): Remove m4/hard-locale.m4.diff. * gnulib-local/m4/hard-locale.m4.diff: Remove, as it is no longer needed. * gettext-tools/gnulib-lib/.gitignore: Ignore files brought by gnulib-tool. * gettext-tools/gnulib-tests/.gitignore: Likewise. * gettext-tools/libgettextpo/.gitignore: Likewise.
* msgfmt, xgettext: Respect XDG_DATA_DIRSDaiki Ueno2016-05-167-53/+218
| | | | | | | | | | | | | | | Suggested in https://savannah.gnu.org/bugs/?47123 * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add 'xmemdup0'. * gettext-tools/gnulib-lib/.gitignore: Ignore files brought by gnulib-tool. * gettext-tools/gnulib-tests/.gitignore: Likewise. * gettext-tools/src/search-path.c: New file. * gettext-tools/src/search-path.h: New file. * gettext-tools/src/Makefile.am (noinst_HEADERS): Add search-path.h. (libgettextsrc_la_SOURCES): Add search-path.c. * gettext-tools/src/msgfmt.c: Include "search-path.h". (main): Use get_search_path to locate ITS directories. * gettext-tools/src/xgettext.c: Include "search-path.h". (main): Use get_search_path to locate ITS directories.
* javascript: Avoid uninitialized variableDaiki Ueno2016-05-161-1/+1
| | | | | * gettext-tools/src/format-javascript.c (format_check): Fix loop initialization. Spotted by clang-analyzer.
* lua: Avoid heap buffer overflowHanno Boeck2016-03-261-0/+6
| | | | | | | * gettext-tools/src/x-lua.c (string_end): Allocate a room for terminating NUL. Reported in: http://savannah.gnu.org/bugs/?4753 Copyright-paperwork-exempt: yes
* format-python-brace: Support chained expressionDaiki Ueno2016-03-232-30/+39
| | | | | | | | | * gettext-tools/src/format-python-brace.c (parse_directive): Recognize chained getattr/getitem expressions. * gettext-tools/tests/format-python-brace-1: Add test for the case where both getattr and getitem are used. Reported by Paul Franklin in: https://lists.gnu.org/archive/html/bug-gettext/2016-03/msg00017.html
* doc: Fix ngettext usage exampleDaiki Ueno2016-03-231-2/+2
| | | | | | * gettext-tools/doc/gettext.texi (Plural forms): Fix positional argument syntax in the C example. Reported by Jonathan Leffler in: http://lists.gnu.org/archive/html/bug-gettext/2016-03/msg00002.html
* javascript: Fix invalid memory accessDaiki Ueno2016-03-221-1/+1
| | | | | | | * gettext-tools/src/format-javascript.c (format_parse): Fix numbered_arg allocation for the unnumbered case. Reported by Roger Mc Murtrie in: <http://savannah.gnu.org/bugs/?47492>.
* maint: Clean up .gitignoreDaiki Ueno2016-03-221-13/+13
| | | | * gettext-tools/gnulib-lib/.gitignore: Sort lines.
* xgettext: Put --its help in the right sectionDaiki Ueno2016-03-021-2/+4
| | | | | * gettext-tools/src/xgettext.c (usage): Move --its=FILE option under "Language specific options" from "Output details".
* xgettext: Add new check bullet-unicodeDaiki Ueno2016-02-226-11/+158
| | | | | | | | | | | | | | | | | * gettext-tools/src/xgettext.c (main): Generalize --check option handling. * gettext-tools/src/message.h (enum syntax_check_type): New enum value sc_bullet_unicode. (NSYNTAXCHECKS): Increment. * gettext-tools/src/message.c (syntax_check_name): Add name for sc_bullet_unicode. * gettext-tools/src/msgl-check.c (struct bullet_ty, struct bullet_stack_ty): New struct. (bullet_stack): New variable. (syntax_check_bullet_unicode): New function. (sc_funcs): Register syntax_check_bullet_unicode as a check function for sc_bullet_unicode. * gettext-tools/tests/xgettext-14: Add tests for --check=bullet-unicode
* doc: Mention the behavior stripping *.inDaiki Ueno2016-02-101-1/+6
| | | | | | * gettext-tools/doc/gettext.texi (Preparing ITS Rules): Add footnote explaining the matching behavior if the input file name has the .in suffix. Suggested by Jan Synacek.
* javascript: Support '%m$' in format stringsDaiki Ueno2016-02-083-43/+225
| | | | | | | | | | | | | | | | | | Gjs has had support for numbered arguments in format strings since 1.40. Recognize it as well in format-javascript, so msgfmt -c doesn't fail when numbered arguments are in msgstr. Reported by Sean Burke in: https://lists.gnu.org/archive/html/bug-gettext/2015-10/msg00002.html * gettext-tools/src/format-javascript.c (struct numbered_arg): New struct. (struct spec): Rename format_args_count to numbered_arg_count. Add NUMBERED field in place of FORMAT_ARGS. All callers changed. (numbered_arg_compare): New function. (format_parse): Handle numbered arguments. Based on format-awk.c. (format_check): Add check for numbered arguments. * gettext-tools/tests/format-javascript-1: Add tests for numbered arguments. * gettext-tools/tests/lang-javascript: Use numbered argument in format strings. Add check for Gjs version >= 1.40.
* gettext-tools: Use a short name for DLLs on OS/2KO Myung-Hun2016-01-204-3/+20
| | | | | | | | | | | | OS/2 does not support a DLL name longer than 8 characters. * gettext-tools/configure.ac (OS2): Define on OS/2. * gettext-tools/gnulib-lib/Makefile.am (libgettextlib_la_LDFLAGS): Set a DLL name to gtlib on OS/2. * gettext-tools/libgettextpo/Makefile.am (libgettextpo_la_LDFLAGS): Set a DLL name to gtpo on OS/2. * gettext-tools/src/Makefile.am (libgettextsrc_la_LDFLAGS): Set a DLL name to gtsrc on OS/2.
* Change msgfmt to produce little-endian .mo files by default.Bruno Haible2016-01-153-5/+5
| | | | | | | * gettext-tools/src/msgfmt.c (main): Initialize 'byteswap' so as to produce little-endian .mo files by default. * gettext-tools/doc/gettext.texi: Update documentation. * gettext-tools/doc/msgfmt.texi (--endianness): Likewise.
* maint: Revert copyright year changes in test dataDaiki Ueno2016-01-1310-10/+10
| | | | | | | | | | | | | | | | | | Some test programs started failing after mass update of copyright notice for year 2016 (commit 7fa0c277), because of embedded test data with fixed copyright dates. Revert the commit for those files. Reported by Bruno Haible. * .x-update-copyright: Exclude test programs embedding copyright date. * gettext-tools/tests/msgcomm-22: Revert the last change. * gettext-tools/tests/msgfilter-sr-latin-1: Likewise. * gettext-tools/tests/msggrep-1: Likewise. * gettext-tools/tests/msggrep-2: Likewise. * gettext-tools/tests/msggrep-3: Likewise. * gettext-tools/tests/msggrep-4: Likewise. * gettext-tools/tests/msggrep-5: Likewise. * gettext-tools/tests/msggrep-9: Likewise. * gettext-tools/tests/msggrep-11: Likewise. * gettext-tools/tests/msgmerge-14: Likewise.
* its: Recognize *.glade as a GtkBuilder file tooDaiki Ueno2016-01-071-0/+1
|
* maint: Update copyright yearDaiki Ueno2016-01-02306-349/+318
|
* Update translationsDaiki Ueno2015-12-2816-7831/+11644
| | | | | | | | | | | | | | | | | | | | | | | | * gettext-runtime/po/fr.po: Update from Stéphane Aulery <lkppo@free.fr>. * gettext-runtime/po/nb.po: Update from Johnny A. Solbu <johnny@solbu.net>. * gettext-runtime/po/pt_BR.po: Update from Rafael Ferreira <rffontenelle@gmail.com>. * gettext-runtime/po/sr.po: Update from Мирослав Николић <miroslavnikolic@rocketmail.com>. * gettext-runtime/po/zh_TW.po: Update from Wei-Lun Chao <bluebat@member.fsf.org>. * gettext-tools/examples/po/fr.po: Update from Stéphane Aulery <lkppo@free.fr>. * gettext-tools/examples/po/nb.po: Update from Johnny A. Solbu <johnny@solbu.net>. * gettext-tools/examples/po/pt_BR.po: Update from Rafael Ferreira <rffontenelle@gmail.com>. * gettext-tools/examples/po/sr.po: Update from Мирослав Николић <miroslavnikolic@rocketmail.com>. * gettext-tools/examples/po/zh_TW.po: Update from Wei-Lun Chao <bluebat@member.fsf.org>. * gettext-tools/po/bg.po: Update from Roumen Petrov <transl@roumenpetrov.info>. * gettext-tools/po/es.po: Update from Antonio Ceballos <aceballos@gmail.com>. * gettext-tools/po/fr.po: Update from Stéphane Aulery <lkppo@free.fr>. * gettext-tools/po/ja.po: Update from Masahito Yamaga <ma@yama-ga.com>. * gettext-tools/po/nl.po: Update from Benno Schulenberg <benno@vertaalt.nl>. * gettext-tools/po/pt_BR.po: Update from Rafael Fontenelle <rffontenelle@gmail.com>. * gettext-tools/po/sk.po: Update from Marcel Telka <marcel@telka.sk>. * gettext-tools/po/sl.po: Update from Primoz PETERLIN <primozz.peterlin@gmail.com>. * gettext-tools/po/sr.po: Update from Мирослав Николић <miroslavnikolic@rocketmail.com>. * gettext-tools/po/uk.po: Update from Yuri Chornoivan <yurchor@ukr.net>. * gettext-tools/po/vi.po: Update from Trần Ngọc Quân <vnwildman@gmail.com>.
* Prepare for 0.19.7Daiki Ueno2015-12-283-3/+3
|
* Ignore file brought by gnulib-toolDaiki Ueno2015-12-281-0/+1
| | | | | * gettext-tools/gnulib-tests/.gitignore: Ignore file brought by gnulib-tool.
* cldr-plurals: Fix errors from clang-analyzerDaiki Ueno2015-12-211-8/+10
| | | | | | * 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.
* its: Allow CDATA and comments in translatable nodeDaiki Ueno2015-12-171-0/+2
| | | | | * gettext-tools/src/its.c (its_rule_list_is_translatable): Don't return false on CDATA and comments.
* its: Fix typo in GSettings ruleDaiki Ueno2015-12-171-1/+1
| | | | * gettext-tools/its/gsettings.its: Fix typo in escape rule.
* gnulib-local: Pull more functions for libxmlDaiki Ueno2015-12-152-0/+7
| | | | | | | | * 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 GnulibDaiki Ueno2015-12-152-22/+51
| | | | | | | | | | | * 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'.
* gettext-tools: Update POTFILES.inDaiki Ueno2015-12-101-4/+12
| | | | * gettext-tools/po/POTFILES.in: Add newly added files.
* its: Mark some attributes as escape="no"Daiki Ueno2015-12-103-0/+8
| | | | | | | | | * 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 attributesDaiki Ueno2015-12-102-1/+25
| | | | | | * 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.
* build: Do not include os2compat.[ch]KO Myung-Hun2015-12-101-1/+1
| | | | | | | | | | | 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. Copyright-paperwork-exempt: yes
* kde: Fix KUIT error handling when libxml2 is usedDaiki Ueno2015-12-101-0/+3
| | | | | * gettext-tools/src/format-kde-kuit.c (format_parse): Return NULL if xmlReadMemory returns NULL.
* xgettext: Add --its option for ease of testingDaiki Ueno2015-12-102-0/+29
| | | | | | | * 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 usedDaiki Ueno2015-12-101-2/+5
| | | | | * 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: Remove expat dependencyDaiki Ueno2015-12-099-581/+174
| | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* build: Fix texi2html failure with perl 5.22Daiki Ueno2015-12-081-2/+2
| | | | | | * gettext-runtime/libasprintf/texi2html (update_sec_num): Don't use "defined" against an array ref. * gettext-tools/doc/texi2html (update_sec_num): Likewise.
* Update gnulibDaiki Ueno2015-12-081-0/+2
|
* xgettext: Ignore --from-code when XML modeDaiki Ueno2015-12-081-3/+5
| | | | | * gettext-tools/src/xgettext.c (extract_from_xml_file): Forcibly set current source encoding to UTF-8, on XML mode.
* build: Suppress compiler warningDaiki Ueno2015-12-081-3/+1
| | | | | * gettext-tools/src/its.c (its_rule_list_extract_text): Remove unused local variable "message".
* msgfmt: Support XML file mergingDaiki Ueno2015-12-0411-15/+916
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 ITSDaiki Ueno2015-12-049-633/+79
| | | | | | | | | | | | | | * 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 ITSDaiki Ueno2015-12-046-398/+27
| | | | | | | | | | | * 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 ITSDaiki Ueno2015-12-047-383/+30
| | | | | | | | | | | * 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 filesDaiki Ueno2015-12-0414-34/+3009
| | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* cldr-plurals: Add sanity checks for inputDaiki Ueno2015-11-181-10/+17
| | | | | * gettext-tools/src/cldr-plurals.c (extract_rules): Add null checks and element type checks.
* cldr-plurals: Rewrite XML handling using libxml2Daiki Ueno2015-11-172-259/+127
| | | | | | | | | | | | * src/cldr-plurals.c: Include <libxml/tree.h> and <libxml/parser.h>, 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).