Daiki Ueno [Tue, 28 Oct 2014 06:51:01 +0000 (15:51 +0900)]
xgettext: Fix double-free in singular/plural argument extraction
After commit 6aa7b7ed in 2009, xgettext assumed that ARGNUM1 and
ARGNUM2 of -k are different. That could cause an double-free in
exceptional cases.
Reported by Johan Liljegren in:
<https://lists.gnu.org/archive/html/bug-gettext/2014-10/msg00028.html>.
* xgettext.c (arglist_parser_remember_literal): Don't assume that
ARGNUM1 and ARGNUM2 are different.
Daiki Ueno [Wed, 15 Oct 2014 03:37:45 +0000 (12:37 +0900)]
tests: Support newer ncurses with italic caps in xterm terminfo
* tests/test-term-ostream-xterm-basic-italic.out: New file.
* tests/test-term-ostream-xterm: Use it as possible test result.
* Makefile.am (EXTRA_DIST): Add new files.
Needed for ncurses >= 5.9-20140906 that defines sitm/ritm in the
xterm-basic terminfo definition.
Daiki Ueno [Sun, 12 Oct 2014 00:26:21 +0000 (09:26 +0900)]
tests: Avoid sed error on Mac OS X when dealing with binary input
Reported by Ramsey Dow in:
<http://lists.gnu.org/archive/html/bug-gettext/2014-07/msg00002.html>.
* msgmerge-compendium-6: Run sed with LC_ALL=C, to avoid 'illegal
byte sequence' error on Mac OS X.
* format-sh-1: Likewise.
Daiki Ueno [Wed, 8 Oct 2014 07:12:35 +0000 (16:12 +0900)]
msgunfmt: Error on incomplete multibyte sequence at EOF
* write-po.c (wrap): Report error on incomplete multibyte sequence
at the end of input bytes.
Reported by Jakub Wilk at:
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763820>.
Daiki Ueno [Wed, 8 Oct 2014 06:17:08 +0000 (15:17 +0900)]
po: Make it possible to pass custom options to msginit
* Makevars (MSGINIT_OPTIONS): New variable.
* Rules-quot: Use it when invoking msginit.
If one wants to use '--no-wrap' in MSGMERGE_OPTIONS and
XGETTEXT_OPTIONS, there should be a way to pass the option to
msginit. Reported by Ludovic Courtès in:
<https://lists.gnu.org/archive/html/bug-gettext/2014-08/msg00004.html>.
Daiki Ueno [Thu, 2 Oct 2014 08:44:41 +0000 (17:44 +0900)]
Fix C++ compiler check to auto-disable building libasprintf
* gettext-runtime/configure.ac: To automatically disable building
libasprintf when no C++ is found, check if CXX is "no", not ":". This
seems to be a left over of commit 09963c23. Reported by Assaf Gordon in:
<https://lists.gnu.org/archive/html/bug-gettext/2014-10/msg00003.html>.
Daiki Ueno [Wed, 1 Oct 2014 05:40:08 +0000 (14:40 +0900)]
tests: Adjust textdomain directory for Solaris 11
Solaris 11 doesn't strip the CODESET part from the locale name,
when looking for a message catalog. Create a directory link with
CODESET, to work around this.
This was introduced by commit 3533f6cc when we didn't use separate
test directory for each test. Now that we switched to init.sh, we
don't need to worry about filename conflicts.
Paul Eggert [Tue, 30 Sep 2014 09:24:06 +0000 (18:24 +0900)]
Fix gettext-runtime compilation error on Solaris 10
* gettext-runtime/configure.ac: Invoke AM_PROG_CC_C_O so that the
system stdbool.h will be used on Solaris. Suggested by Paul Eggert in:
<https://lists.gnu.org/archive/html/bug-gnulib/2013-11/msg00053.html>.
* gettext-tools/src/x-c.c (literalstring_parse): Fix octal character
escape handling.
Reported by Kjartan Maraas at:
<https://bugzilla.redhat.com/show_bug.cgi?id=1147535>.
intl: Consolidate fallback _GL_* macro definitions into intl.m4
We had defined _GL_* macros used by libintl itself in the corresponding
C files. However, it will increase divergence between Gnulib and gettext.
This patch moves the fallback macro definitions into M4 and emit them only
when the project is not using Gnulib.
* gettext-runtime/m4/intl.m4 (gt_GL_ATTRIBUTE): New macro.
(AM_INTL_SUBDIR): Require gt_GL_ATTRIBUTE.
* gettext-runtime/intl/localename.c: Update from Gnulib.
2014-07-10 Assaf Gordon <assafgordon@gmail.com>
localename: avoid -Wsuggest-attribute={const,pure} warnings
* lib/localename.c (string_hash): Tag internal function as pure.
* gettext-runtime/intl/xsize.c (XSIZE_INLINE): Remove _GL_UNUSED definition.
It will be set through intl.m4.
* Makefile.am (distcheck-hook): Add back localename.c check.
build: Work around undefined _GL_ATTRIBUTE_PURE in libintl
* Makefile.am (distcheck-hook): Ignore the difference between our
localename.c and the latest Gnulib's, which utilizes
_GL_ATTRIBUTE_PURE not available from libintl. This is a
temporary fix for the 0.19.2 release and should be reverted once
it is fixed either in gettext or Gnulib.
There was an implicit dependency between the prerequisites of
install-exec-local, which may have caused error with make -jN.
Use install-exec-hook to remove the dependency.
Reported by Christian Weisgerber in:
<https://lists.gnu.org/archive/html/bug-gettext/2014-07/msg00008.html>.
* Makefile.am (install-exec-local): Remove.
(install-exec-hook): New rule, depend on install-exec-clean.
autopoint: Select macro tracing method by Autoconf version
Reported and analyzed by Pádraig Brady in:
<http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00071.html>.
* autopoint.in (func_trace_autoconf): Rename from func_trace.
($func_trace): Set to func_trace_autoconf if Autoconf >= 2.69 is
availabl, otherwise to func_trace_sed.
* gettextize.in: Likewise.
Problem reported by Bernhard Voelker in:
<http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00059.html>.
* x-c.c (phase5_get): Add missing memory allocation for empty
string literal.
* loadmsgcat.c: Include assert.h.
(_nl_load_domain): Add semicolon to end of line.
(_nl_load_domain)[HAVE_MMAP]: Use MAP_FAILED and assert that
it is (void *) -1.
(_nl_load_domain)[_LIBC]: Call __libc_rwlock_init instead of
gl_rwlock_init.
(_nl_unload_domain): Cast convd->encoding to non-const.
Daiki Ueno [Mon, 16 Jun 2014 08:42:25 +0000 (17:42 +0900)]
tests: Test "make dist" in autopoint test
* autopoint-3: Run "make dist" after "make"; add a workaround for
a bug in 0.19 and 0.19.1, where intl/ChangeLog is required but
missing in the archive.
Daiki Ueno [Mon, 16 Jun 2014 07:48:33 +0000 (16:48 +0900)]
intl: Stop installing ChangeLog.inst
After the git-version-gen migration (commit fbf4e276), the
creation of gettext-tools/intl/ChangeLog.inst in configure.ac was
removed because we lost access to $RELEASE_DATE. Given that
intl/VERSION provides enough information, simply drop the
ChangeLog file.
Problem reported by Bruce Korb in
<https://lists.gnu.org/archive/html/bug-gettext/2014-06/msg00022.html>.
* Makefile.in (install-data): Don't install ChangeLog.inst.
(distclean): Don't remove ChangeLog.inst.
(uninstall): Don't remove ChangeLog under $(gettextsrcdir)/intl.
(dist): Don't include ChangeLog in the distribution.
Daiki Ueno [Thu, 12 Jun 2014 08:56:23 +0000 (17:56 +0900)]
doc: Update licenses from GNU
* gpl.texi, lgpl.texi, fdl.texi: Update from GNU.
* gettext.texi (GNU GPL, GNU LGPL, GNU LGPL): Define nodes here,
instead of in those license documents.
Daiki Ueno [Tue, 10 Jun 2014 01:57:05 +0000 (10:57 +0900)]
Temporarily add Language: field to all PO file headers
Due to a bug in 0.19, the Language: field is considered mandatory.
This was fixed in commit 31744906, but better avoid error when
building with 0.19 at the moment. This should be overwritten with the
next translations update.
Daiki Ueno [Mon, 9 Jun 2014 04:36:18 +0000 (13:36 +0900)]
msgmerge: Disable --color option in --update mode
Suggested by 林V字龍 at:
<https://lists.gnu.org/archive/html/bug-gettext/2014-06/msg00017.html>.
* msgmerge.c (main): Error out when --color and --update are
specified at the same time.
Daiki Ueno [Sat, 7 Jun 2014 01:35:14 +0000 (10:35 +0900)]
xgettext: Fix misrecognition of character literals in C and Vala
Problem reported by Paul Eggert at
<http://lists.gnu.org/archive/html/bug-gettext/2014-06/msg00015.html>.
* x-c.c (phase5_get): Make sure to skip contents of character constant.
* x-vala.c (phase3_get): Likewise.
Daiki Ueno [Tue, 3 Jun 2014 02:05:50 +0000 (11:05 +0900)]
desktop: Read LINGUAS file even if LINGUAS envvar is set
* msgfmt.c (get_languages): If the LINGUAS envvar is set, use it
to restrict the languages list read from the LINGUAS file, not to
extend the list.
(add_languages): Take an optional DESIRED_LANGUAGES argument.
Daiki Ueno [Mon, 2 Jun 2014 09:04:41 +0000 (18:04 +0900)]
msgl-check: Treat missing header errors as warnings
Problem reported by Richard Hughes at
<https://lists.fedoraproject.org/pipermail/devel/2014-June/199539.html>.
After <https://savannah.gnu.org/bugs/?40262>, "msgfmt -c" reports
error on missing PO headers. However, it turned out to be too strict
for the projects using Launchpad Translations. Let's relax the check
for the moment and wait for one or two release cycles.
* gettext-tools/src/msgl-check.c (check_header_entry): Report missing
required headers as warning, instead of error.
Daiki Ueno [Sun, 1 Jun 2014 23:05:19 +0000 (08:05 +0900)]
build: Handle 'environ' global variable differently on cygwin x86_64
Problem reported by Vasyl Khalak in:
<https://cygwin.com/ml/cygwin/2013-06/msg00228.html>.
* lib/execute.c.diff: New file.
* lib/spawn-pipe.c.diff: Likewise.
* Makefile.am (EXTRA_DIST): Add new patches.
Daiki Ueno [Sat, 31 May 2014 06:44:17 +0000 (15:44 +0900)]
msgexec: Pass previous msgid to the child process
Suggested by Pavel Kharitonov in:
<http://lists.gnu.org/archive/html/bug-gettext/2014-05/msg00022.html>.
* msgexec.c (process_string): Set MSGEXEC_PREV_* envvar.
Daiki Ueno [Sat, 31 May 2014 02:28:39 +0000 (11:28 +0900)]
msgfilter: Pass previous msgid to the child process
Suggested by Pavel Kharitonov in:
<http://lists.gnu.org/archive/html/bug-gettext/2014-05/msg00022.html>.
* msgfilter.c (process_message): Set MSGFILTER_PREV_* envvar.