Daiki Ueno [Mon, 22 Feb 2016 07:43:16 +0000 (16:43 +0900)]
xgettext: Add new check bullet-unicode
* 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
Daiki Ueno [Wed, 10 Feb 2016 06:50:39 +0000 (15:50 +0900)]
doc: Mention the behavior stripping *.in
* 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.
Daiki Ueno [Mon, 8 Feb 2016 03:30:03 +0000 (12:30 +0900)]
javascript: Support '%m$' in format strings
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.
KO Myung-Hun [Tue, 12 Jan 2016 02:35:50 +0000 (11:35 +0900)]
gettext-tools: Use a short name for DLLs on OS/2
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.
Bruno Haible [Wed, 13 Jan 2016 08:31:48 +0000 (09:31 +0100)]
Change msgfmt to produce little-endian .mo files by default.
* 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.
Daiki Ueno [Wed, 13 Jan 2016 09:42:22 +0000 (18:42 +0900)]
maint: Revert copyright year changes in test data
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.
Daiki Ueno [Sat, 2 Jan 2016 09:35:51 +0000 (18:35 +0900)]
maint: Use maintainer-makefile from gnulib
* autogen.sh: Pull GNUmakefile, maint.mk, and dependency scripts in
build-aux.
* cfg.mk (update-copyright-env): Adjust for gettext.
* .x-update-copyright: New file.
* .gitignore: Ignore files brought in by gnulib-tool.
Daiki Ueno [Mon, 28 Dec 2015 07:22:41 +0000 (16:22 +0900)]
maint: Update release-steps to current practice
* Admin/release-steps: Split document into two sections ('Making a
snapshot release' and 'Making an official release'), reorder some steps,
and remove mention of manual generation of PO/POT files.
Daiki Ueno [Sun, 27 Dec 2015 20:06:00 +0000 (05:06 +0900)]
Update translations
* 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>.
Daiki Ueno [Wed, 23 Dec 2015 07:10:15 +0000 (16:10 +0900)]
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.
Daiki Ueno [Thu, 10 Dec 2015 07:47:36 +0000 (16:47 +0900)]
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".
Daiki Ueno [Thu, 10 Dec 2015 07:34:52 +0000 (16:34 +0900)]
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.
KO Myung-Hun [Sun, 8 Nov 2015 05:58:00 +0000 (14:58 +0900)]
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.
KO Myung-Hun [Sun, 8 Nov 2015 05:57:59 +0000 (14:57 +0900)]
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.
Daiki Ueno [Wed, 9 Dec 2015 08:35:34 +0000 (17:35 +0900)]
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.
Daiki Ueno [Tue, 8 Dec 2015 10:18:10 +0000 (19:18 +0900)]
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.
Daiki Ueno [Mon, 5 Oct 2015 08:18:41 +0000 (17:18 +0900)]
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.
Daiki Ueno [Fri, 2 Oct 2015 03:44:04 +0000 (12:44 +0900)]
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
Daiki Ueno [Fri, 2 Oct 2015 03:38:14 +0000 (12:38 +0900)]
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.
Daiki Ueno [Fri, 2 Oct 2015 02:38:29 +0000 (11:38 +0900)]
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.
Daiki Ueno [Thu, 15 Oct 2015 01:18:03 +0000 (10:18 +0900)]
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.
Mike Frysinger [Mon, 12 Oct 2015 21:57:27 +0000 (17:57 -0400)]
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.
Mike Frysinger [Mon, 12 Oct 2015 22:00:43 +0000 (18:00 -0400)]
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.
Daiki Ueno [Wed, 14 Oct 2015 01:20:34 +0000 (10:20 +0900)]
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.
Daiki Ueno [Tue, 6 Oct 2015 07:27:40 +0000 (16:27 +0900)]
doc: Don't expose generated version
* gettext-tools/doc/Makefile.am ($(srcdir)/stamp-vti): Set
ARCHIVE-VERSION, derived from $(ARCHIVE_VERSION) in version.texi.
* gettext-tools/doc/gettext.texi (Files under Version Control): Refer to
ARCHIVE-VERSION, instead of VERSION.
* gettext-tools/doc/autopoint.texi: Refer to ARCHIVE-VERSION, instead of VERSION.
Daiki Ueno [Tue, 6 Oct 2015 03:35:15 +0000 (12:35 +0900)]
msgfmt: More refactoring on --desktop
* msgfmt.c (msgfmt_desktop_bulk): Distinguish the number of errors
and the exit status.
* write-desktop.c (msgdomain_write_desktop_bulk): Don't
immediately exit when fwriteerror() returns error.
Daiki Ueno [Mon, 5 Oct 2015 07:33:31 +0000 (16:33 +0900)]
msgfmt: Refactor --desktop handling
* gettext-tools/src/msgfmt.c (get_languages): Avoid redundant memory
allocation.
(msgfmt_operand_list_init): New function.
(msgfmt_operand_list_destroy): New function.
(msgfmt_operand_list_append): New function.
(msgfmt_operand_list_add_directory): New function.
(msgfmt_desktop_bulk): Rewrite using msgfmt_operand_list_ty.
* gettext-tools/src/msgfmt.h (msgfmt_operand_ty,
msgfmt_operand_list_ty): New type.
* gettext-tools/src/write-desktop.c (msgdomain_write_desktop_bulk):
Simplify using msgfmt_operand_list_ty.
(msgdomain_write_desktop): Simplify using msgfmt_operand_list_ty.
* gettext-tools/src/write-desktop.h (msgdomain_write_desktop_bulk):
Take OPERANDS as the first argument, instead of LANGUAGES and MESSAGES.
Daiki Ueno [Tue, 6 Oct 2015 00:59:32 +0000 (09:59 +0900)]
sentence: Avoid compiler warnings
* gettext-tools/src/sentence.c (sentence_end): Assign initial values to
local variables to suppress compiler warnings with
-Wmaybe-uninitialized. This shouldn't address any real bug.
"csharpdoc" is a bit too long to accommodate long file names with
the version returned from git-version-gen:
tar: gettext-0.19.6.4-1e74e4/.../csharpdoc/...: file name is too
long (max 99); not dumped
* gettext-runtime/intl-csharp/doc: Rename from csharpdoc.
* gettext-runtime/intl-cshap/Makefile.am (doc, DOC_FILES): Adjust to the
directory name change.
Daiki Ueno [Fri, 21 Aug 2015 05:43:30 +0000 (14:43 +0900)]
xgettext: Allow multiple --copyright-holder
Feature requested by Francesco Poli in:
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=682580>.
* xgettext.c (default_copyright_holder): New constant, renamed
from copyright_holder.
(copyright_holder): Define as a variable.
(main): Allow multiple --copyright-holder options.
(construct_header): Support multiple --copyright-holder options.
Daiki Ueno [Fri, 21 Aug 2015 01:22:01 +0000 (10:22 +0900)]
intl: Pacify compilation with pre-C99 compilers
* loadmsgcat.c (_nl_load_domain): Move the call to
__libc_lock_define_initialized_recursive to the end of local
variable declarations to avoid extra ';' being expanded to an
empty statement.
Reported by pan7 in:
<http://savannah.gnu.org/support/?108864>.
* gettext-tools/configure.ac (ARCHIVE_VERSION): New substituted
variable.
* gettext-tools/misc/gettextize.in (archive_version): New variable, set
to ARCHIVE_VERSION. Use it as the argument of AM_GNU_GETTEXT_VERSION.
* gettext-tools/tests/init-env.in (ARCHIVE_VERSION): New substituted
variable.
* gettext-tools/tests/autopoint-2: Use ARCHIVE_VERSION, instead of the
hard-coded version string.
* gettext-tools/tests/autopoint-3: Likewise.
Reported by Max Lin in:
<https://lists.gnu.org/archive/html/bug-gettext/2015-07/msg00024.html>.
* gettextize.in: Replace AM_GNU_GETTEXT_VERSION invocation with
"$gettext_version" rather than "$version". This makes it easier
to maintain a minor release without being affected by the actual
version number generated by git-version-gen.
(gettext_version): New variable.
Compilation of the cldr-plurals tool was broken in the relocatable case
because of missing CPPFLAGS/LDFLAGS. Add the same flags used by other
tools to the makefile.
* gettext-tools/src/Makefile.am (cldr_plurals_CPPFLAGS)
(cldr_plurals_LDFLAGS): Adjust for --enable-relocatable
compilation.