Imported Upstream version 0.20.2
[platform/upstream/gettext.git] / ChangeLog
1 2020-04-14  Bruno Haible  <bruno@clisp.org>
2
3         Update translations (from the TP).
4         * gettext-runtime/po/*.po: Update.
5         * gettext-tools/po/*.po: Update.
6         * gettext-tools/examples/po/*.po: Update.
7         * gettext-tools/examples/po/LINGUAS: Add 'sq'.
8         * gettext-tools/examples/hello-*/po/LINGUAS: Likewise.
9         * gettext-tools/examples/Makefile.am (EXAMPLESPOFILES): Add sq.po.
10
11         examples: Use infrastructure from gettext version 0.20.2.
12         * gettext-tools/examples/hello-*/configure.ac: Use AM_GNU_GETTEXT_VERSION with
13         version 0.20.2.
14         * gettext-tools/examples/hello-c++-kde/configure.in.in: Likewise.
15
16         Prepare for 0.20.2 release.
17         * gettext-runtime/doc/matrix.texi: Update from TP.
18         * gettext-runtime/doc/nls.texi (STATUS): Update.
19         * gettext-runtime/intl/Makefile.am (LTV_*): Bump to 9:7:1.
20         * gettext-runtime/intl/libgnuintl.in.h (LIBINTL_VERSION): Bump.
21         * gettext-tools/configure.ac (ARCHIVE_VERSION): Bump to 0.20.2.
22         * gettext-tools/libgettextpo/Makefile.am (LTV_*): Bump to 5:6:5.
23         * gettext-tools/libgettextpo/gettext-po.in.h (LIBGETTEXTPO_VERSION): Bump.
24         * gettext-runtime/src/envsubst.c: Update copyright years in --version output.
25         * gettext-runtime/src/gettext.c: Likewise.
26         * gettext-runtime/src/gettext.sh.in: Likewise.
27         * gettext-runtime/src/ngettext.c: Likewise.
28         * gettext-tools/src/cldr-plurals.c: Likewise.
29         * gettext-tools/src/hostname.c: Likewise.
30         * gettext-tools/src/msgattrib.c: Likewise.
31         * gettext-tools/src/msgcat.c: Likewise.
32         * gettext-tools/src/msgcmp.c: Likewise.
33         * gettext-tools/src/msgcomm.c: Likewise.
34         * gettext-tools/src/msgconv.c: Likewise.
35         * gettext-tools/src/msgen.c: Likewise.
36         * gettext-tools/src/msgexec.c: Likewise.
37         * gettext-tools/src/msgfilter.c: Likewise.
38         * gettext-tools/src/msgfmt.c: Likewise.
39         * gettext-tools/src/msggrep.c: Likewise.
40         * gettext-tools/src/msginit.c: Likewise.
41         * gettext-tools/src/msgmerge.c: Likewise.
42         * gettext-tools/src/msgunfmt.c: Likewise.
43         * gettext-tools/src/msguniq.c: Likewise.
44         * gettext-tools/src/recode-sr-latin.c: Likewise.
45         * gettext-tools/src/urlget.c: Likewise.
46         * gettext-tools/src/xgettext.c: Likewise.
47         * gettext-tools/misc/convert-archive.in: Likewise.
48         * gettext-tools/misc/gettextize.in: Likewise.
49         * gettext-tools/misc/autopoint.in: Likewise. Handle version 0.20.2.
50         * libtextstyle/lib/Makefile.am (LTV_*): Bump to 0:1:0.
51         * libtextstyle/version.sh: Update VERSION_NUMBER and RELEASE_DATE.
52
53         maint: Update download location of jdom-1.0.jar.
54
55         build: Fix the generation of hello-c-gnome3.pot (regression from 2019-10-04).
56         * gettext-tools/examples/po/Makefile.am (USE_BUILT_PROGS): Set also
57         GETTEXTDATADIR.
58
59 2020-04-13  Bruno Haible  <bruno@clisp.org>
60
61         Fix a compilation error (regression from 2019-12-24).
62         * gettext-tools/src/write-desktop.c: Include <stdint.h>.
63
64 2020-04-13  Bruno Haible  <bruno@clisp.org>
65
66         xgettext: Fix a report by an undefined-behaviour sanitizer.
67         Reported by Jeffrey Walton <noloader@gmail.com> in
68         <https://lists.gnu.org/archive/html/bug-gettext/2020-01/msg00029.html>.
69
70         * gettext-tools/src/read-properties.c (read_escaped_string): Don't call memcpy
71         with a NULL argument.
72
73 2020-04-13  Bruno Haible  <bruno@clisp.org>
74
75         po, examples: In the .po -> .gmo rules, really consider the newest changes to the POT file.
76         Reported by Petr Ovtchenkov <ptr@void-ptr.info> in
77         <https://lists.gnu.org/archive/html/bug-gnulib/2020-04/msg00000.html>.
78         Helped by Paul Smith.
79
80         * gettext-runtime/po/Makefile.in.in (.po.gmo): Write dependency on the POT file
81         as a target rule, since inference rules don't support prerequisites.
82         * gettext-tools/examples/hello-*/po/Makefile.am: Likewise, also for the .po.qm
83         rule.
84         * NEWS: Mention the fix.
85
86 2020-04-13  Bruno Haible  <bruno@clisp.org>
87
88         The next release will be 0.20.2, not 0.21.
89         * gettext-runtime/m4/gettext.m4: Update header comment.
90         * gettext-runtime/m4/intdiv0.m4: Likewise.
91         * gettext-tools/m4/exported.m4: Likewise.
92
93 2020-04-13  Bruno Haible  <bruno@clisp.org>
94
95         doc: Don't recommend to use the reserved identifier '_' in Java.
96         Reported by Akim Demaille <akim.demaille@gmail.com>.
97
98         * gettext-tools/doc/gettext.texi (Java): Use i18n instead _ as magic identifier.
99
100 2020-04-13  Bruno Haible  <bruno@clisp.org>
101
102         build: Fix link error on MSVC with --disable-shared.
103         * gettext-tools/tests/setlocale.c (setlocale): Define to fake_setlocale on
104         native Windows.
105         * gettext-tools/tests/format-c-3-prg.c (setlocale): Likewise.
106         * gettext-tools/tests/format-c-4-prg.c (setlocale): Likewise.
107         * gettext-tools/tests/plural-1-prg.c (setlocale): Likewise.
108         * gettext-tools/tests/tstgettext.c (setlocale): Likewise.
109         * gettext-tools/tests/tstngettext.c (setlocale): Likewise.
110
111         build: Fix build error on MSVC with --disable-shared.
112         * gettext-tools/configure.ac (AH_BOTTOM): On MSVC with --disable-shared, even
113         when compiling with option -MD, define DLL_VARIABLE to empty.
114
115 2020-04-13  Dmitry V. Levin  <ldv@altlinux.org>
116
117         libtextstyle: Enable large files and, on Linux, 64-bit inodes support.
118         * libtextstyle/autogen.sh (GNULIB_MODULES): Add 'largefile' to enable
119         large files support on systems where this is not the default and 64-bit
120         inodes in 32-bit applications on Linux.
121
122 2020-04-13  Bruno Haible  <bruno@clisp.org>
123
124         Fix a test failure of msgfmt-desktop-2 on HP-UX with cc.
125         * gettext-tools/src/write-desktop.c (msgfmt_desktop_handle_pair): Don't cast
126         directly from 'void *' to 'bool'.
127
128         Fix test failures on Haiku.
129         * gettext-tools/tests/init.cfg (func_filter_POT_Creation_Date): New function.
130         * gettext-tools/tests/xgettext-*: Use it.
131
132         build: Fix build failures on HP-UX 11.31/hppa with cc.
133         * gnulib-local/lib/libxml/parser.c (struct _xmlDefAttrs): Don't use ISO C 99
134         syntax with this compiler.
135         * gettext-runtime/intl/plural-exp.h (HAVE_STRUCT_INITIALIZER): Set to 0 with
136         this compiler.
137
138         libtextstyle: Update .gitignore after 2019-12-24 change.
139
140         libtextstyle: Don't erase the .sym.in file if 'sed' is not GNU sed.
141         * libtextstyle/lib/Makefile.am (libtextstyle.sym.in): Test the exit status of
142         the declared.sh command. Preserve the existing libtextstyle.sym if it failed.
143
144 2020-04-13  Bruno Haible  <bruno@clisp.org>
145
146         libcroco: Improve copyright headers.
147         The copyright headers should be unambiguous even if a single file is copied from
148         the GNU gettext package and used elsewhere. Reported by John Darrington.
149
150         * libtextstyle/gnulib-local/lib/libcroco/*: Inline the COPYRIGHT file where
151         applicable. Add copyright header.
152         * libtextstyle/gnulib-local/lib/libcroco/libcroco-config.h: Add copyright header.
153
154 2020-04-13  Bruno Haible  <bruno@clisp.org>
155
156         libxml: Improve copyright headers.
157         The copyright headers should be unambiguous even if a single file is copied from
158         the GNU gettext package and used elsewhere. Reported by John Darrington.
159
160         * gnulib-local/lib/libxml/*: Inline this directory's COPYING file where
161         applicable. Add FSF copyright header.
162         * gnulib-local/lib/libxml/trionan.c: Add copyright header.
163
164 2020-04-13  Bruno Haible  <bruno@clisp.org>
165
166         glib: Improve copyright headers.
167         The copyright headers should be unambiguous even if a single file is copied from
168         the GNU gettext package and used elsewhere. Reported by John Darrington.
169
170         * libtextstyle/gnulib-local/lib/glib*: Add FSF copyright header.
171
172 2020-04-13  Bruno Haible  <bruno@clisp.org>
173
174         libtextstyle: Clarify memory_stream_contents function.
175         * libtextstyle/gnulib-local/lib/memory-ostream.oo.h (memory_stream::contents):
176         Clarify extent of return values.
177         * libtextstyle/doc/libtextstyle.texi (The memory_ostream class): Likewise.
178
179         build: Fix typo in comment.
180         * gettext-tools/gnulib-tests/Makefile.am: Fix typo.
181         * libtextstyle/adhoc-tests/Makefile.am: Likewise.
182         * libtextstyle/tests/Makefile.am: Likewise.
183
184         build: Fix failure to build the doc in a VPATH build.
185         * gettext-tools/doc/Makefile.am ($(srcdir)/stamp-vti): Create version.texi in
186         the source directory.
187
188         Correct indentation.
189         * gettext-tools/src/x-scheme.c (read_object): Correct indentation.
190
191         doc: Mention packages needed for Javascript support.
192         * HACKING: Mention the gir1.2-gtk-3.0 package alongside with gjs.
193
194         doc: Don't need an ar_SA locale.
195         * HACKING: Remove command that creates an ar_SA locale.
196
197         doc: Update list of external dependencies.
198         * DEPENDENCIES: Don't list glib2 and libcroco (not needed any more since
199         2019-02-15).
200
201 2020-04-13  Bruno Haible  <bruno@clisp.org>
202
203         build: Fix the build error in gettext-tools/examples/po.
204         Reported by Nick Alcock <nix@esperi.org.uk>
205         at <https://savannah.gnu.org/bugs/?56529>.
206
207         * gettext-tools/examples/po/Makefile.am (USE_BUILT_PROGS): New variable.
208         (hello-*.pot): Use it.
209         ($(srcdir)/../hello-*/po/$(LL).po): Likewise.
210         * HACKING: Remove the workaround.
211
212 2020-04-13  Bruno Haible  <bruno@clisp.org>
213
214         Make it easier to build the code when the documentation tools don't work.
215         * libtextstyle/Makefile.am (SUBDIRS): Move 'doc' to the end.
216
217         build: Don't fetch gnulib a second time in libtextstyle.
218         * autogen.sh: Set GNULIB_SRCDIR when invoking libtextstyle/autogen.sh.
219         * libtextstyle/autogen.sh: Remove all git operations. Look at the GNULIB_SRCDIR
220         environment variable. Ignore the GNULIB_TOOL environment variable.
221
222         libtextstyle: Fix failure to download texinfo.tex.
223         * libtextstyle/autogen.sh: Create build-aux directory.
224
225 2020-04-13  Bruno Haible  <bruno@clisp.org>
226
227         libxml: Fix buffer overrun.
228         Reported by GCC 8 -Wformat-truncation warning.
229
230         * gnulib-local/lib/libxml/parser.c (xmlParseReference): Increase size of buffer
231         'out' to 12 bytes.
232
233 2020-04-13  Bruno Haible  <bruno@clisp.org>
234
235         xgettext: Fix parsing of XML tags.
236         * gettext-tools/src/x-javascript.c (phase5_get): Fix lexical_context after
237         decrementing xml_element_depth.
238
239 2020-04-13  Bruno Haible  <bruno@clisp.org>
240
241         xgettext: Fix parsing of XML tags that end in /> and have attributes.
242         Reported by Matej Marusak <marusak.matej@gmail.com>
243         in <https://savannah.gnu.org/bugs/?56848>.
244
245         * gettext-tools/src/x-javascript.c (phase5_get): After reading a string, reset
246         the lexical_context to the previous one, not to lc_outside. When reading /> at
247         the end of an XML element, decrement xml_element_depth.
248         * gettext-tools/tests/xgettext-javascript-6: Add a test.
249
250 2020-04-13  Bruno Haible  <bruno@clisp.org>
251
252         xgettext: Verify parsing of JavaScript template literals inside objects.
253         Reported by Andy Holmes <andrew.g.r.holmes@gmail.com>
254         in <https://savannah.gnu.org/bugs/?50920>.
255
256         * gettext-tools/tests/xgettext-javascript-7: Test template literals inside an
257         object.
258
259 2020-04-13  Bruno Haible  <bruno@clisp.org>
260
261         Document improvement done on 2019-05-20.
262         * gettext-runtime/NEWS: Document improvement.
263         * NEWS: Likewise.
264
265 2020-04-13  Bruno Haible  <bruno@clisp.org>
266
267         build: Install gettext.h with the LGPL license header, not with the GPL header.
268         Reported by Joachim Metz <joachim.metz@gmail.com>
269         in <https://lists.gnu.org/archive/html/bug-gettext/2012-09/msg00000.html>.
270
271         * gettext-tools/gnulib-lib/Makefile.am (gettextsrcdir, gettextsrc_DATA): Remove
272         variables.
273         * gnulib-local/Makefile.am (gettextsrcdir, gettextsrc_DATA): Define them here.
274
275 2020-04-13  Bruno Haible  <bruno@clisp.org>
276
277         Clarify license of gettext.m4.
278         * gettext-runtime/m4/gettext.m4: Update comments: libintl is under LGPLv2.1+.
279
280 2020-04-13  Bruno Haible  <bruno@clisp.org>
281
282         build: Avoid failing a configure test due to CFLAGS="-Werror".
283         Reported by Florian Weimer <fweimer@redhat.com>.
284
285         * gettext-runtime/m4/intdiv0.m4 (gt_INTDIV0): In the test program, include
286         <unistd.h>, for the declaration of _exit().
287
288 2020-04-13  Bruno Haible  <bruno@clisp.org>
289
290         build: Add support for shallow-cloning of subdirectories.
291         * gitsub.sh (func_usage): Document allowed git options with 'git pull'.
292         (func_pull): Accept GIT_OPTIONS argument.
293         (pull): Parse git options before complaining about too many arguments.
294         Pass the git options to func_pull.
295
296 2020-04-13  Bruno Haible  <bruno@clisp.org>
297
298         xgettext: Assume that Python source files are in UTF-8 by default.
299         Reported by ilias iliadis <apiuano-bugs@yahoo.gr>
300         at <https://savannah.gnu.org/bugs/?55231>.
301
302         * gettext-tools/src/xg-encoding.h (xgettext_global_source_encoding): Allow a
303         NULL value.
304         * gettext-tools/src/xg-encoding.c (xgettext_global_source_encoding): Likewise.
305         * gettext-tools/src/xgettext.c (main): Initialize
306         xgettext_global_source_encoding with NULL, not "ASCII". Handle a NULL
307         xgettext_global_source_encoding.
308         (extract_from_file): Use ASCII as default for xgettext_global_source_encoding.
309         * gettext-tools/src/x-javascript.c (extract_javascript): Likewise.
310         * gettext-tools/src/x-python.c (phase2_getc): Signal an error when encountering
311         an invalid or incomplete UTF-8 character.
312         (set_current_file_source_encoding): In the error message, use
313         xgettext_current_file_source_encoding instead of
314         xgettext_global_source_encoding.
315         (extract_python): Use UTF-8 as default for xgettext_global_source_encoding.
316         * gettext-tools/tests/xgettext-python-3: Verify that if the source file has no
317         magic coding comment but is UTF-8 encoded, xgettext succeeds.
318         * NEWS: Mention the change.
319
320 2020-04-13  Bruno Haible  <bruno@clisp.org>
321
322         desktop: Small parser fix.
323         * gettext-tools/src/read-desktop.c (desktop_lex): Fix handling of control
324         characters in group names.
325
326         autogen.sh: Make more reliable.
327         * autogen.sh: Really bail out if gnulib-tool fails to copy config.{guess,sub}.
328
329 2020-04-13  Bruno Haible  <bruno@clisp.org>
330
331         xgettext: Handle newlines in Lua long bracket literal strings correctly.
332         Reported by Frans de Jonge <fransdejonge@gmail.com>
333         at <https://savannah.gnu.org/bugs/?56794>.
334
335         * gettext-tools/src/x-lua.c (phase3_get): Test for EOF first. After an opening
336         long bracket, swallow one newline.
337         * gettext-tools/tests/xgettext-lua-1: Add tests for newlines in long brackets.
338         * gettext-tools/tests/xgettext-lua-2: Update comment.
339
340 2020-04-13  Bruno Haible  <bruno@clisp.org>
341
342         xgettext: Recognize gettext -e invocations in shell parser.
343         Reported by Eugene V. Lyubimkin <jackyf.devel@gmail.com>
344         in <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507091>.
345
346         * gettext-runtime/src/escapes.h: New file, extracted from
347         gettext-runtime/src/gettext.c.
348         * gettext-runtime/src/gettext.c: Include escapes.h.
349         (expand_escape): Remove function.
350         (inhibit_added_newline): New variable.
351         (add_newline): Remove variable.
352         (main): Initialize inhibit_added_newline. Invoke expand_escapes instead of
353         expand_escape.
354         * gettext-runtime/src/ngettext.c: Include escapes.h.
355         (expand_escape): Remove function.
356         (main): Invoke expand_escapes instead of expand_escape.
357         * gettext-runtime/src/Makefile.am (gettext_SOURCES, ngettext_SOURCES): Add
358         escapes.h.
359         * gettext-tools/tests/tstgettext.c: Include escapes.h.
360         (expand_escape): Remove function.
361         (inhibit_added_newline): New variable.
362         (add_newline): Remove variable.
363         (main): Initialize inhibit_added_newline. Invoke expand_escapes instead of
364         expand_escape.
365         * gettext-tools/tests/Makefile.am (tstgettext_SOURCES): Add escapes.h.
366         * gettext-tools/src/x-sh.c: Include escapes.h.
367         (read_command): Recognize a '-e' option in the argument list of gettext and
368         ngettext.
369         * gettext-tools/src/Makefile.am (xgettext_SOURCES): Add escapes.h.
370         * gettext-tools/tests/xgettext-sh-1: Test the recognition of gettext -e
371         arguments.
372         * NEWS: Mention the change.
373
374 2020-04-13  Bruno Haible  <bruno@clisp.org>
375
376         doc: Fix documentation of gettext, ngettext programs.
377         * gettext-runtime/doc/rt-gettext.texi: Clarify when the additional newline is
378         emitted.
379         * gettext-runtime/doc/rt-ngettext.texi: Remove '\c' from the list of recognized
380         escape sequences.
381
382         gettext, ngettext: Fix the expansion of '\\' and octal escape sequences.
383         * gettext-runtime/src/gettext.c (expand_escape): Don't swallow the expansion
384         of '\\' and octal escape sequences.
385         * gettext-runtime/src/ngettext.c (expand_escape): Likewise.
386         * gettext-tools/tests/tstgettext.c (expand_escape): Likewise.
387         * NEWS: Mention the change.
388
389 2020-04-13  Bruno Haible  <bruno@clisp.org>
390
391         xgettext: Fix parsing of escaped single-quote characters in shell parser.
392         Reported by Markus Gothe <nietzsche@lysator.liu.se>
393         at <https://savannah.gnu.org/bugs/?49809>.
394
395         * gettext-tools/src/x-sh.c (phase2_getc): Handle the case c == '\''
396         && !open_singlequote && !open_doublequote differently.
397         * gettext-tools/tests/xgettext-sh-1: Add test with an escape single-quote.
398
399 2020-04-13  Bruno Haible  <bruno@clisp.org>
400
401         xgettext: Fix endless loop in shell parser.
402         Reported by Hanno Boeck at <https://savannah.gnu.org/bugs/?45408>.
403         Based on patch by Daiki Ueno.
404
405         * gettext-tools/src/x-sh.c (read_word): React on CLOSING_BACKQUOTE even when we
406         are currently not looking for a closing backquote.
407
408 2020-04-13  Bruno Haible  <bruno@clisp.org>
409
410         build: Don't use an obsolete libtool macro.
411         * gettext-tools/m4/exported.m4 (gt_GLOBAL_SYMBOL_PIPE): Require
412         _LT_CMD_GLOBAL_SYMBOLS, not AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE.
413
414 2020-04-13  Bruno Haible  <bruno@clisp.org>
415
416         Don't extract Icon values from .desktop files into POT files.
417         Reported by Piotr Drąg <piotrdrag@gmail.com>
418         at <https://savannah.gnu.org/support/?108887>
419         and by Will Thompson <wjt@endlessm.com>
420         at <https://savannah.gnu.org/bugs/?56543>.
421
422         There was a discussion starting at
423         <https://lists.freedesktop.org/archives/xdg/2019-June/014158.html>.
424         The most interesting posts in this thread were
425         <https://lists.freedesktop.org/archives/xdg/2019-June/014164.html>
426         <https://lists.freedesktop.org/archives/xdg/2019-June/014167.html>.
427
428         * gettext-tools/doc/gettext.texi (Icons): New subsubsection.
429         * gettext-tools/src/read-desktop.c (desktop_add_default_keywords): Don't add
430         "Icon".
431         * gettext-tools/src/x-desktop.c: Update comments.
432         * gettext-tools/doc/xgettext.texi (Desktop): Remove 'Icon' from the list of
433         extracted keys.
434         * gettext-tools/tests/xgettext-desktop-2: New file.
435         * gettext-tools/tests/msgfmt-desktop-3: New file.
436         * gettext-tools/tests/Makefile.am (TESTS): Add them.
437         * NEWS: Mention the change.
438
439 2020-04-13  Bruno Haible  <bruno@clisp.org>
440
441         maint: Document how to deal with the build error in gettext-tools/examples/po.
442         Reported by Nick Alcock <nix@esperi.org.uk>
443         at <https://savannah.gnu.org/bugs/?56529>.
444
445         * HACKING (Building off the Git repository): Explain the common build error and
446         how to fix it.
447
448 2020-04-13  Bruno Haible  <bruno@clisp.org>
449
450         libtextstyle: Fix VPATH build (regression from yesterday).
451         * libtextstyle/lib/Makefile.am (AM_CPPFLAGS): Search also the glib subdirectory
452         of the build dir.
453
454 2020-04-13  Bruno Haible  <bruno@clisp.org>
455
456         libtextstyle: Upgrade to libcroco-0.6.13.
457         This fixes a couple of warnings.
458
459         Reported by Frank Hunleth <fhunleth@troodon-software.com>
460         at <https://savannah.gnu.org/bugs/?55356>.
461
462         * libtextstyle/gnulib-local/lib/libcroco/*: Upgrade to version 0.6.13.
463         * libtextstyle/gnulib-local/modules/libcroco: Update.
464         * libtextstyle/gnulib-local/lib/glib/gmacros.in.h: New file, based on
465         glib-2.12.4/glib/gmacros.h.
466         * libtextstyle/gnulib-local/lib/glib/gprintfint.in.h: New file, based on
467         glib-2.12.4/glib/gprintfint.h.
468         * libtextstyle/Makefile.am (EXTRA_DIST): Add them.
469         * libtextstyle/gnulib-local/m4/libglib.m4 (gl_LIBGLIB): Add glib/gmacros.h and
470         glib/gprintfint.h to LIBGLIB_H.
471         * libtextstyle/gnulib-local/modules/libglib (Files): Add lib/glib/gmacros.in.h,
472         lib/glib/gprintfint.in.h.
473         (Depends-on): Add snprintf-posix.
474         (glib/gmacros.h, glib/gprintfint.h): New rules.
475         (MOSTLYCLEANFILES): Add glib/gmacros.h, glib/gprintfint.h.
476         * libtextstyle/gnulib-local/lib/glib.in.h: Include glib/gmacros.h.
477         * libtextstyle/gnulib-local/lib/glib/gstrfuncs.in.h (g_ascii_dtostr,
478         g_ascii_formatd, g_ascii_strcasecmp): Enable declarations.
479         * libtextstyle/gnulib-local/lib/glib/gstrfuncs.c: Include gprintfint.h.
480         (g_ascii_dtostr, g_ascii_formatd): Enable.
481         (ISSPACE, ISUPPER, ISLOWER, ISALPHA, TOUPPER, TOLOWER): Move out of function
482         g_parse_long_long.
483         (g_ascii_strcasecmp): Enable.
484
485 2020-04-13  Bruno Haible  <bruno@clisp.org>
486
487         xgettext: Fix parsing of JavaScript template literals inside functions.
488         Reported by Dmitry Vinnik <vinnik.dmitry07@gmail.com>
489         in <https://savannah.gnu.org/bugs/?56678>.
490
491         * gettext-tools/src/x-javascript.c (brace_depths, brace_depths_alloc): New
492         variables.
493         (brace_depth): Remove variable.
494         (new_brace_depth_level): New function.
495         (phase5_get): Invoke it. Access the top of the brace_depths stack.
496         (extract_javascript): Don't set brace_depth. Invoke new_brace_depth_level
497         instead.
498         * gettext-tools/tests/xgettext-javascript-7: Test template literals inside a
499         function.
500
501 2020-04-13  Bruno Haible  <bruno@clisp.org>
502
503         Fix test failure on MSVC.
504         * gettext-tools/tests/lang-c++: On MSVC, use <iostream>, not <iostream.h>.
505
506 2020-04-13  Bruno Haible  <bruno@clisp.org>
507
508         build: Avoid warnings from bison versions >= 3.3.
509         Reported by Bernhard Voelker <mail@bernhard-voelker.de>.
510
511         * gettext-runtime/intl/Makefile.am (YACC): Remove option '-y'.
512
513 2020-04-13  Bruno Haible  <bruno@clisp.org>
514
515         libtextstyle: Fix link error when compiled with GCC 3.3.x.
516         Reported by Jeffrey Walton <noloader@gmail.com>.
517
518         * gnulib-local/lib/libxml/timsort.h (CLZ): Don't define based on __builtin_clzll
519         in GCC versions < 3.4.
520
521 2020-04-13  Bruno Haible  <bruno@clisp.org>
522
523         intl: Don't export the glwthread* symbols from libintl on native Windows.
524         * gettext-runtime/intl/Makefile.am (OTHER_LDFLAGS): Add an -export-symbols-regex
525         option.
526
527         build: Fix build errors with MSVC.
528         * gettext-tools/src/lang-table.h (language_table, language_variant_table):
529         Declare with C linkage.
530         * gettext-tools/src/read-po.h (input_format_po): Likewise.
531         * gettext-tools/src/read-properties.h (input_format_properties): Likewise.
532         * gettext-tools/src/read-stringtable.h (input_format_stringtable): Likewise.
533         * gettext-tools/src/write-properties.h (output_format_properties): Likewise.
534         * gettext-tools/src/write-stringtable.h (output_format_stringtable): Likewise.
535
536         build: Fix build error with MSVC.
537         * gettext-runtime/intl/Makefile.am (INTL_WINDOWS_LIBS): New variable.
538         (OTHER_LDFLAGS): Add it.
539
540         build: Fix build error with MSVC.
541         * gettext-runtime/intl/export.h (LIBINTL_DLL_EXPORTED): Define differently for
542         MSVC.
543
544         build: Fix build errors with MSVC.
545         * gettext-tools/libgettextpo/exported.sh.in: Remove one level of eval.
546         * gettext-tools/libgettextpo/Makefile.am (config.h): Redirect compiler output to
547         stderr. Remove symbols that contain an '@'.
548         * libtextstyle/lib/Makefile.am (config.h): Likewise.
549
550         build: Avoid endless "config.status --recheck" loop (regression from yesterday).
551         * gettext-tools/configure.ac: Use AC_MSG_WARN instead of AC_MSG_ERROR.
552
553         intl: Work around setlocale bug on Android 4.3.
554         * gettext-runtime/intl/setlocale.c (setlocale_unixlike): New wrapper for
555         Android.
556
557 2020-04-13  Bruno Haible  <bruno@clisp.org>
558
559         msgmerge: Fix behaviour of --for-msgfmt on PO files with no translations.
560         Reported by Don Lawrence <dlawrence@iecok.com>
561         in <https://lists.freedesktop.org/archives/p11-glue/2019-May/000700.html>
562         via Daiki Ueno
563         in <https://lists.gnu.org/archive/html/bug-gettext/2019-05/msg00124.html>.
564
565         * gettext-tools/src/msgmerge.c (main): Treat force_po like true if for_msgfmt
566         is true.
567         * gettext-tools/tests/msgmerge-26: Add test of PO file with no translations.
568
569 2020-04-13  Bruno Haible  <bruno@clisp.org>
570
571         build: Restore the ability to build gettext-tools separately, part 2.
572         * gettext-tools/configure.ac: New option --with-installed-csharp-dll.
573         (USE_INSTALLED_CSHARP_DLL): New conditional.
574         * gettext-tools/src/Makefile.am (CSHARP_DLL_DIR): New variable.
575         (msgunfmt.net.exe): Use it.
576         * configure.ac: Filter out --with-installed-csharp-dll from inherited --help
577         output.
578         * PACKAGING: Document that gettext-tools's configure needs to be invoked with
579         --with-installed-csharp-dll.
580
581 2020-04-13  Bruno Haible  <bruno@clisp.org>
582
583         build: Restore the ability to build gettext-tools separately, part 1.
584         Reported by Hanspeter Niederstrasser <nieder@users.sourceforge.net>
585         in <https://savannah.gnu.org/bugs/?56333>.
586
587         Code based on patch by Miguel Ángel Arruga Vivas <rosen644835@gmail.com>.
588
589         * autogen.sh: Copy libtextstyle.m4 for use by gettext-tools.
590         * gettext-tools/configure.ac: New option --with-installed-libtextstyle.
591         (USE_INSTALLED_LIBTEXTSTYLE): New conditional.
592         * gettext-tools/src/Makefile.am (textstyle.h): Disable rule if
593         USE_INSTALLED_LIBTEXTSTYLE is true.
594         (LT_LIBTEXTSTYLE): New variable.
595         (libgettextsrc_la_LDFLAGS): Use it instead of hardcoding a relative filename of
596         libtextstyle.la.
597         * configure.ac: Filter out --with-installed-libtextstyle from inherited --help
598         output.
599         * Makefile.am (distcheck-hook): Compare different copies of libtextstyle.m4.
600         * PACKAGING: Document that gettext-tools's configure needs to be invoked with
601         --with-installed-libtextstyle.
602
603 2020-04-13  Bruno Haible  <bruno@clisp.org>
604
605         libtextstyle: Complete commit from 2019-04-28.
606         * libtextstyle/Makefile.am (EXTRA_DIST): Add
607         test-term-ostream-xterm-freebsd-italic.out.
608
609         build: Avoid the use of mingw winpthreads for multithreading.
610         * gettext-runtime/configure.ac: Invoke gl_AVOID_WINPTHREAD.
611         * gettext-tools/configure.ac: Likewise.
612
613 2020-04-13  Bruno Haible  <bruno@clisp.org>
614
615         build: Avoid trouble on mingw caused by mingw's *printf functions.
616         Reported by Michele Locati <michele@locati.it>
617         in <https://lists.gnu.org/archive/html/bug-gettext/2019-05/msg00103.html>.
618
619         * gettext-runtime/intl/Makefile.am (AM_CPPFLAGS): Define __USE_MINGW_ANSI_STDIO
620         to 0.
621         * gettext-runtime/libasprintf/Makefile.am (DEFS): Likewise.
622         * libtextstyle/lib/Makefile.am (AM_CPPFLAGS): Likewise.
623
624 2020-04-13  Bruno Haible  <bruno@clisp.org>
625
626         libasprintf: Avoid compilation error on mingw with -D__USE_MINGW_ANSI_STDIO=1.
627         * gettext-runtime/libasprintf/lib-asprintf.c (asprintf, vasprintf): Don't define
628         on mingw when __USE_MINGW_ANSI_STDIO is non-zero.
629
630 2020-04-13  Bruno Haible  <bruno@clisp.org>
631
632         doc: Don't mention trademarks.
633         Reported by John Darrington <john@darrington.wattle.id.au>
634         in <https://savannah.gnu.org/bugs/?56340>.
635
636         * gettext-tools/doc/gettext.texi (catgets): Drop trademark annotation.
637
638 2020-04-13  Bruno Haible  <bruno@clisp.org>
639
640         build: Fix "make install" failure with --disable-shared on glibc systems.
641         Reported by Gabor Z. Papp <gzp@papp.hu>.
642
643         This is a regression from 2018-11-25.
644
645         * gettext-tools/configure.ac (PRELOADABLE_LIBINTL): Set to false if
646         --disable-shared was specified.
647
648 2020-04-13  Bruno Haible  <bruno@clisp.org>
649
650         libtextstyle: Update gitignore list.
651         * libtextstyle/.gitignore: Update.
652
653         The gettext library is under LGPL 2.1, not 2.0.
654         * gettext-runtime/m4/intl.m4: Fix comments regarding the gettext library.
655         * gettext-runtime/m4/intlmacosx.m4: Likewise.
656         * gettext-runtime/m4/nls.m4: Likewise.
657         * gettext-runtime/m4/po.m4: Likewise.
658         * gettext-runtime/m4/progtest.m4: Likewise.
659
660 2020-04-13  Bruno Haible  <bruno@clisp.org>
661
662         intl: Make autoconf macro more robust.
663         Reported by Bernhard Voelker <mail@bernhard-voelker.de>.
664
665         * gettext-runtime/m4/intl.m4 (gt_INTL_SUBDIR_CORE): Don't make assumptions about
666         the version numbers of future Bison versions.
667
668 2020-04-13  Bruno Haible  <bruno@clisp.org>
669
670         Update after gnulib changed.
671         * gnulib-local/lib/regex_internal.h.diff: Update.
672         * gnulib-local/lib/unistd.in.h.diff: Update.
673         * gettext-runtime/intl/filename.h: New file, from gnulib.
674         * gettext-runtime/intl/dcigettext.c (ISSLASH, HAS_DEVICE, IS_ABSOLUTE_PATH,
675         IS_PATH_WITH_DIR): Remove macros. Instead, include filename.h.
676         (IS_ABSOLUTE_FILE_NAME, IS_RELATIVE_FILE_NAME, IS_FILE_NAME_WITH_DIR): New
677         macros.
678         (DCIGETTEXT): Use IS_RELATIVE_FILE_NAME, IS_FILE_NAME_WITH_DIR.
679         * gettext-runtime/intl/l10nflist.c (ISSLASH, HAS_DEVICE, IS_ABSOLUTE_PATH):
680         Remove macros. Instead, include filename.h.
681         (IS_ABSOLUTE_FILE_NAME, IS_RELATIVE_FILE_NAME): New macros.
682         (_nl_make_l10nflist): Use IS_RELATIVE_FILE_NAME.
683         * gettext-runtime/intl/Makefile.am (EXTRA_DIST): Add filename.h.
684         (l10nflist.lo, dcigettext.lo): Depend on it.
685         * Makefile.am (distcheck-hook): Check also gettext-runtime/intl/filename.h.
686         * gettext-runtime/intl/lock.c: Update from gnulib.
687         * gettext-runtime/intl/lock.h: Likewise.
688         * gettext-runtime/intl/relocatable.c: Likewise.
689         * gettext-tools/src/locating-rule.c (locating_rule_list_locate): Use
690         IS_RELATIVE_FILE_NAME instead of IS_ABSOLUTE_PATH.
691         * gettext-tools/src/open-catalog.c (try_open_catalog_file): Likewise.
692         * gettext-tools/src/xgettext.c (main, xgettext_open): Likewise.
693         * libtextstyle/lib/color.c (style_file_lookup): Use IS_FILE_NAME_WITH_DIR
694         instead of IS_PATH_WITH_DIR.
695
696         Update after gnulib changed.
697
698         Update after gnulib changed.
699         * gettext-runtime/intl/localcharset.c: Update from gnulib.
700         * gettext-runtime/intl/setlocale-lock.c: Likewise.
701
702         Update after gnulib changed: Support building with --enable-threads=isoc.
703         * gettext-runtime/intl/dcigettext.c (lock): Move outside _nl_find_msg.
704         * gettext-runtime/intl/finddomain.c (lock): Move outside _nl_find_domain.
705         * gettext-runtime/intl/loadmsgcat.c (lock): Move outside _nl_load_domain.
706
707         Update after gnulib changed: Fix test failures on FreeBSD, NetBSD, macOS.
708         * gettext-tools/tests/setlocale.c (setlocale): Undefine.
709
710         Update after gnulib changed.
711         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC_COMMON_DEPENDENCIES): Add
712         setlocale-null.
713         * gettext-runtime/intl/localcharset.h: Update from gnulib.
714         * gettext-runtime/intl/localcharset.c: Likewise.
715         * gettext-runtime/intl/localename.c: Likewise.
716         * gettext-runtime/intl/setlocale_null.h: New file, from gnulib.
717         * gettext-runtime/intl/arg-nonnull.h: New file, from gnulib.
718         * gettext-runtime/intl/setlocale_null.c: New file, from gnulib.
719         * gettext-runtime/intl/setlocale-lock.c: New file, from gnulib.
720         * gettext-runtime/intl/lock.h: Update from gnulib.
721         * gettext-runtime/intl/lock.c: Likewise.
722         * gettext-runtime/intl/threadlib.c: Likewise.
723         * gettext-runtime/intl/vasnprintf.c: Likewise.
724         * gettext-runtime/intl/verify.h: Likewise.
725         * gettext-runtime/intl/Makefile.am (EXTRA_DIST): Add arg-nonnull.h,
726         setlocale_null.h.
727         (LIBINTLSOURCES): Add setlocale-lock.c, setlocale_null.c.
728         (setlocale-lock.lo, setlocale_null.lo): New rules.
729         (localename.lo, setlocale-lock.lo, setlocale_null.lo): Update dependencies.
730         * Makefile.am (distcheck-hook): Check the new files in gettext-runtime/intl/.
731         * gettext-runtime/libasprintf/vasnprintf.c: Update from gnulib.
732         * gettext-tools/libgettextpo/Makefile.am (DEFS): Define OMIT_SETLOCALE_LOCK.
733         * gettext-runtime/NEWS: Mention the multithread-safety fix in localcharset.c.
734         * NEWS: Likewise.
735
736         Update after gnulib changed.
737         * gettext-runtime/intl/localcharset.c: Update from gnulib.
738         * gettext-runtime/intl/verify.h: Likewise.
739
740         Update after gnulib changed.
741         * gettext-runtime/intl/localcharset.c: Update from gnulib.
742         * gettext-runtime/intl/verify.h: Likewise.
743
744         Update after gnulib changed.
745         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC_COMMON_DEPENDENCIES): Add
746         windows-rwlock.
747         * gettext-runtime/intl/windows-rwlock.h: New file, from gnulib.
748         * gettext-runtime/intl/windows-rwlock.c: New file, from gnulib.
749         * gettext-runtime/intl/windows-initguard.h: New file, from gnulib.
750         * gettext-runtime/intl/windows-spinlock.h: Remove file.
751         * gettext-runtime/intl/lock.h: Update from gnulib.
752         * gettext-runtime/intl/lock.c: Likewise.
753         * gettext-runtime/intl/verify.h: Likewise.
754         * gettext-runtime/intl/windows-mutex.h: Likewise.
755         * gettext-runtime/intl/windows-recmutex.h: Likewise.
756         * gettext-runtime/intl/Makefile.am (EXTRA_DIST): Add windows-rwlock.h,
757         windows-initguard.h. Remove windows-spinlock.h.
758         (LIBINTLSOURCES): Conditionally add windows-rwlock.c.
759         (windows-rwlock.lo): New rule.
760         (*.lo): Update dependencies.
761         * Makefile.am (distcheck-hook): Check that gettext-runtime/intl/windows-*.[hc]
762         are up-to-date.
763         * gnulib-local/lib/libxml/threads.c: Test HAVE_PTHREAD_H, HAVE_WIN32_THREADS,
764         HAVE_BEOS_THREADS only if LIBXML_THREAD_ENABLED is defined; otherwise use a
765         fallback suitable for single-threaded applications.
766
767         Update after gnulib changed.
768         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC_COMMON_DEPENDENCIES): Add
769         windows-mutex, windows-once, windows-recmutex.
770         * gettext-runtime/m4/flexmember.m4: Update from gnulib.
771         * gettext-runtime/intl/flexmember.h: Likewise.
772         * gettext-runtime/intl/localcharset.c: Likewise.
773         * gettext-runtime/intl/windows-mutex.h: New file, from gnulib.
774         * gettext-runtime/intl/windows-mutex.c: New file, from gnulib.
775         * gettext-runtime/intl/windows-once.h: New file, from gnulib.
776         * gettext-runtime/intl/windows-once.c: New file, from gnulib.
777         * gettext-runtime/intl/windows-recmutex.h: New file, from gnulib.
778         * gettext-runtime/intl/windows-recmutex.c: New file, from gnulib.
779         * gettext-runtime/intl/windows-spinlock.h: New file, from gnulib.
780         * gettext-runtime/intl/lock.h: Update from gnulib.
781         * gettext-runtime/intl/lock.c: Likewise.
782         * gettext-runtime/intl/Makefile.am (EXTRA_DIST): Add windows-*.h.
783         (LIBINTLSOURCES): Conditionally add windows-*.c.
784         (windows-mutex.lo, windows-recmutex.lo, windows-once.lo): New rules.
785         (*.lo): Update dependencies.
786         * gettext-runtime/configure.ac: New condition WINDOWS_NATIVE.
787         * gettext-tools/configure.ac: Likewise.
788         * Makefile.am (distcheck-hook): Check that gettext-runtime/intl/windows-*.[hc]
789         are up-to-date.
790
791         Update after gnulib changed.
792         * gettext-runtime/intl/setlocale.c (search): Optimize away a redundant strcmp()
793         invocation.
794         (locales_with_principal_territory): New array.
795         (langcmp, get_main_locale_with_same_language): New functions.
796         (locales_with_principal_language): New array.
797         (terrcmp, get_main_locale_with_same_territory): New functions.
798         (rpl_setlocale): When setlocale_single failed, try again with a locale that is
799         more likely to exist. Don't warn if the environment variable SETLOCALE_VERBOSE
800         is not set.
801
802         Update after gnulib changed.
803         * gettext-runtime/m4/intlmacosx.m4 (gt_INTL_MACOSX): Don't test for
804         CFLocaleCopyCurrent.
805         * gettext-runtime/intl/localename.c: Remove includes for
806         HAVE_CFLOCALECOPYCURRENT.
807         (gl_locale_name_environ, gl_locale_name_default): Remove code for
808         HAVE_CFLOCALECOPYCURRENT.
809
810         Update to the newest gnulib.
811
812 2019-05-12  Bruno Haible  <bruno@clisp.org>
813
814         Update translations (from the TP).
815
816         Update release steps.
817
818 2019-05-12  Bruno Haible  <bruno@clisp.org>
819
820         intl: Fix wrong libtool versioning information.
821         Reported by Ken Takata <ktakata65536@gmail.com>
822         in <https://savannah.gnu.org/bugs/?56305>.
823
824         * gettext-runtime/intl/Makefile.am (LTV_*): Bump to 9:6:1, not 9:6:2.
825         * NEWS: Mention the change.
826
827 2019-05-12  Bruno Haible  <bruno@clisp.org>
828
829         Update bug reporting instructions.
830         * README: Tell users to report bugs in the bug tracker or by email. Use the
831         mailing list address, not the alias.
832         * gettext-runtime/libasprintf/README: Likewise.
833         * gettext-tools/doc/gettext.texi (Introduction): Likewise.
834         (Plural forms): Use the mailing list address, not the alias.
835         * configure.ac (AC_INIT): Use the mailing list address, not the alias.
836         * gettext-runtime/configure.ac (AC_INIT): Likewise.
837         * gettext-tools/configure.ac (AC_INIT): Likewise.
838         * gettext-tools/examples/configure.ac (AC_INIT): Likewise.
839         * gettext-runtime/po/Makevars (MSGID_BUGS_ADDRESS): Use the mailing list
840         address, not the alias.
841         * gettext-tools/po/Makevars (MSGID_BUGS_ADDRESS): Likewise.
842         * gettext-tools/examples/po/Makefile.am (MSGID_BUGS_ADDRESS): Likewise.
843         * gettext-tools/examples/hello-*/po/Makevars (MSGID_BUGS_ADDRESS): Likewise.
844         * gettext-tools/examples/hello-*/po/Makefile.am (MSGID_BUGS_ADDRESS): Likewise.
845         * gettext-tools/examples/hello-objc-gnustep/po/GNUmakefile (MSGID_BUGS_ADDRESS):
846         Likewise.
847         * gettext-tools/examples/hello-c++-kde/hello.cc (main): Likewise.
848         * gettext-runtime/src/envsubst.c (main): Move URL out of translatable string.
849         (usage): Tell users to report bugs in the bug tracker or by email. Use the
850         mailing list address, not the alias.
851         * gettext-runtime/src/gettext.c: Likewise.
852         * gettext-runtime/src/ngettext.c: Likewise.
853         * gettext-tools/src/cldr-plurals.c: Likewise.
854         * gettext-tools/src/hostname.c: Likewise.
855         * gettext-tools/src/msgattrib.c: Likewise.
856         * gettext-tools/src/msgcat.c: Likewise.
857         * gettext-tools/src/msgcmp.c: Likewise.
858         * gettext-tools/src/msgcomm.c: Likewise.
859         * gettext-tools/src/msgconv.c: Likewise.
860         * gettext-tools/src/msgen.c: Likewise.
861         * gettext-tools/src/msgexec.c: Likewise.
862         * gettext-tools/src/msgfilter.c: Likewise.
863         * gettext-tools/src/msgfmt.c: Likewise.
864         * gettext-tools/src/msggrep.c: Likewise.
865         * gettext-tools/src/msginit.c: Likewise.
866         * gettext-tools/src/msgmerge.c: Likewise.
867         * gettext-tools/src/msgunfmt.c: Likewise.
868         * gettext-tools/src/msguniq.c: Likewise.
869         * gettext-tools/src/recode-sr-latin.c: Likewise.
870         * gettext-tools/src/urlget.c: Likewise.
871         * gettext-tools/src/xgettext.c: Likewise.
872         * gettext-tools/tests/tstgettext.c: Likewise.
873         * gettext-tools/tests/tstngettext.c: Likewise.
874         * gettext-tools/misc/autopoint.in (func_usage): Tell users to report bugs in the
875         bug tracker or by email. Use the mailing list address, not the alias.
876         * gettext-tools/misc/convert-archive.in (func_usage): Likewise.
877         * gettext-tools/misc/gettextize.in (func_usage): Likewise.
878
879 2019-05-11  Bruno Haible  <bruno@clisp.org>
880
881         doc: Recommend to avoid literal URLs in translatable strings.
882         Suggested by John Darrington <john@darrington.wattle.id.au>
883         in <https://lists.gnu.org/archive/html/bug-gnulib/2019-05/msg00033.html>.
884
885         * gettext-tools/doc/gettext.texi (Preparing Strings): Add recommendation against
886         embedded URLs. Add sub-headers.
887
888 2019-05-11  Bruno Haible  <bruno@clisp.org>
889
890         build: Fix build failure with parallel make.
891         Reported by Lars Wendler <polynomial-c@gentoo.org>.
892
893         * gettext-tools/src/Makefile.am (.NOTPARALLEL): Add this special target.
894
895 2019-05-11  Bruno Haible  <bruno@clisp.org>
896
897         intl: Remove obsolete code.
898         * gettext-runtime/intl/plural.y: Assume bison >= 2.0.
899
900         Update after gnulib changed.
901         * autogen.sh: Don't copy intl.m4.
902         * Makefile.am (distcheck-hook): Don't check glibc2.m4, glibc21.m4, intdiv0.m4,
903         intl.m4, intmax.m4, printf-posix.m4, uintmax_t.m4, visibility.m4.
904         * gettext-runtime/intl/verify.h: Update from gnulib.
905
906         Update to newest gnulib.
907
908 2019-05-09  Bruno Haible  <bruno@clisp.org>
909
910         Update release steps.
911
912 2019-05-08  Bruno Haible  <bruno@clisp.org>
913
914         examples: Use infrastructure from gettext version 0.20.
915         * gettext-tools/examples/hello-*/configure.ac: Use AM_GNU_GETTEXT_VERSION with
916         version 0.20.
917         * gettext-tools/examples/hello-c++-kde/configure.in.in: Likewise.
918         * gettext-tools/examples/hello-*/m4/Makefile.am: Update .m4 file list.
919         * gettext-tools/examples/hello-*/autoclean.sh: Likewise.
920
921         Update translations (from the TP).
922
923         Prepare for 0.20 release.
924         * gettext-runtime/doc/matrix.texi: Update from TP.
925         * gettext-runtime/doc/nls.texi (STATUS): Update.
926         * libtextstyle/version.sh: Update RELEASE_DATE.
927
928 2019-05-07  Bruno Haible  <bruno@clisp.org>
929
930         libtextstyle: examples: Enable --color=html, for debuggability.
931         Reported by Akim Demaille.
932
933         * libtextstyle/examples/color-hello/hello.c (main): Handle color_html case.
934         * libtextstyle/examples/color-filter/filter.c (main): Likewise.
935
936 2019-05-05  Bruno Haible  <bruno@clisp.org>
937
938         examples: hello-c++-widgets: Update build infrastructure.
939         Gnulib changed on 2018-11-11: asm-underscore.m4 is no longer needed for havelib.
940
941         * gettext-tools/examples/hello-c++-widgets/autogen.sh: Don't pull in
942         asm-underscore.m4.
943         * gettext-tools/examples/hello-c++-widgets/autoclean.sh: Don't remove
944         asm-underscore.m4.
945
946 2019-05-05  Bruno Haible  <bruno@clisp.org>
947
948         Add unit test for libintl_version.
949         * gettext-tools/tests/intl-version-prg.c: New file.
950         * gettext-tools/tests/intl-version: New file.
951         * gettext-tools/tests/Makefile.am (TESTS): Add it.
952         (check_PROGRAMS): Add intl-version-prg.
953         (intl_version_prg_SOURCES, intl_version_prg_LDADD): New variables.
954
955 2019-05-05  Bruno Haible  <bruno@clisp.org>
956
957         msginit: Avoid error messages when run on mingw.
958         Reported by Michele Locati <michele@locati.it>.
959
960         * gettext-tools/src/msginit.c (project_id, project_id_version, get_user_email,
961         language_team_address): Don't even attempt to run the shell script.
962
963 2019-05-05  Bruno Haible  <bruno@clisp.org>
964
965         libtextstyle: Document debugging tricks.
966         Reported by Akim Demaille <akim@lrde.epita.fr>.
967
968         * libtextstyle/doc/libtextstyle.texi (Debugging style files): New subsection.
969         (Debugging the styling code): New section.
970
971 2019-05-01  Bruno Haible  <bruno@clisp.org>
972
973         msginit: Fix invocation of helper programs on Windows.
974         Reported by Michele Locati <michele@locati.it>
975         in <https://lists.gnu.org/archive/html/bug-gettext/2019-04/msg00058.html>.
976
977         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add configmake.
978         * gettext-tools/src/msginit.c: Include configmake.h.
979         (main): Add BINDIR to the PATH.
980
981 2019-05-01  Bruno Haible  <bruno@clisp.org>
982
983         msginit: Improvements for Cygwin and Android.
984         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add sh-filename.
985         * gettext-tools/src/msginit.c (project_id, project_id_version, get_user_email,
986         language_team_address): Use BOURNE_SHELL instead of hardcoding /bin/sh.
987
988 2019-04-29  Bruno Haible  <bruno@clisp.org>
989
990         libtextstyle: Document one more terminal emulator.
991         * libtextstyle/doc/libtextstyle.texi (Terminal emulators): Mention QTerminal.
992
993 2019-04-28  Bruno Haible  <bruno@clisp.org>
994
995         Fix msginit-4 test failure on mingw.
996         * gettext-tools/src/Makefile.am (DEFS): Define EXEEXT.
997         * gettext-tools/src/msginit.c (plural_forms): On Windows, invoke
998         "cldr-plurals.exe", not "cldr-plurals".
999
1000 2019-04-28  Bruno Haible  <bruno@clisp.org>
1001
1002         In the POT files, talk about the "GNU gettext package".
1003         Reported by Benno Schulenberg <coordinator@translationproject.org>.
1004
1005         * gettext-runtime/po/Makevars (XGETTEXT_OPTIONS): Add --package-name option.
1006         * gettext-tools/po/Makevars (XGETTEXT_OPTIONS): Likewise.
1007         * gettext-tools/examples/po/Makefile.am (XGETTEXT_OPTIONS): New variable.
1008
1009 2019-04-28  Bruno Haible  <bruno@clisp.org>
1010
1011         po: Make it possible to override xgettext options from Makefile.in.in.
1012         * gettext-runtime/po/Makefile.in.in ($(DOMAIN).pot-update): List the
1013         XGETTEXT_OPTIONS and the XGETTEXT_EXTRA_OPTIONS after all other options.
1014         * gettext-tools/examples/po/Makefile.am ($(DOMAIN).pot-update): Likewise.
1015         * gettext-tools/examples/hello-*/po/Makefile.am ($(DOMAIN).pot-update):
1016         Likewise.
1017         * gettext-tools/examples/hello-objc-gnustep/po/GNUmakefile
1018         ($(DOMAIN).pot-update): Likewise.
1019         * NEWS: Mention the change.
1020         * gettext-tools/doc/gettext.texi (po/Makevars): Fix typo.
1021
1022 2019-04-28  Bruno Haible  <bruno@clisp.org>
1023
1024         libtextstyle: Fix test-term-ostream-xterm test failure on TrueOS and Trident.
1025         The xterm description on these platforms includes support for italics.
1026
1027         Reported by Nelson H. F. Beebe.
1028
1029         * libtextstyle/gnulib-local/tests/test-term-ostream-xterm-freebsd-italic.out:
1030         New file.
1031         * libtextstyle/gnulib-local/tests/test-term-ostream-xterm.sh: Use it as possible
1032         expected result.
1033         * libtextstyle/gnulib-local/modules/term-ostream-tests (Files): Add it.
1034
1035 2019-04-28  Bruno Haible  <bruno@clisp.org>
1036
1037         libxml: Avoid gcc warnings.
1038         Avoids "warning: too many arguments for format".
1039
1040         * gnulib-local/lib/libxml/xmlerror.in.h (__xmlSimpleError): Remove
1041         LIBXML_ATTR_FORMAT annotation, because this function may be called with a
1042         NULL msg.
1043
1044 2019-04-28  Bruno Haible  <bruno@clisp.org>
1045
1046         libxml: Avoid build failure due to "implicit declaration of function".
1047         * gnulib-local/lib/libxml/libxml.h: Include xmlstring.h only after config.h is
1048         included.
1049
1050         libxml: Update included libxml2 to version 2.9.9.
1051         * gnulib-local/lib/libxml/*: Update from libxml2 2.9.9.
1052         * gnulib-local/m4/libxml.m4 (gl_LIBXML): Don't test for _stat.
1053
1054         Update to newest gnulib.
1055
1056 2019-04-28  Bruno Haible  <bruno@clisp.org>
1057
1058         Fix lang-csharp test failure on DragonFly BSD.
1059         Reported by Nelson H. F. Beebe.
1060
1061         * gettext-tools/tests/lang-csharp: For the locale with ISO-8859-1 encoding,
1062         allow an expected result in UTF-8 encoding.
1063
1064 2019-04-28  Bruno Haible  <bruno@clisp.org>
1065
1066         Add comment about a test that may fail.
1067         Reported by Nelson H. F. Beebe.
1068
1069         * gettext-tools/tests/lang-csharp: Add comment about possible test failure.
1070
1071 2019-04-28  Bruno Haible  <bruno@clisp.org>
1072
1073         Add comments about tests that fail on Alpine Linux.
1074         Reported by Nelson H. F. Beebe.
1075
1076         * gettext-tools/tests/msgconv-2: Add comment about musl libc.
1077         * gettext-tools/tests/msgmerge-compendium-6: Likewise.
1078         * gettext-tools/tests/xgettext-python-3: Likewise.
1079
1080 2019-04-28  Bruno Haible  <bruno@clisp.org>
1081
1082         build: Remove duplicate copy of test-lock.
1083         The master copy lives in gnulib now.
1084
1085         * gettext-runtime/tests/test-lock.c: Remove file.
1086         * gettext-runtime/tests/Makefile.am (TESTS, check_PROGRAMS): Remove test-lock.
1087         (test_lock_SOURCES, test_lock_LDADD): Remove variables.
1088
1089 2019-04-28  Bruno Haible  <bruno@clisp.org>
1090
1091         build: Verify that intl/threadlib.c is in sync with gnulib.
1092         * Makefile.am (distcheck-hook): Compare also intl/threadlib.c.
1093
1094 2019-04-28  Bruno Haible  <bruno@clisp.org>
1095
1096         Fix autopoint-3 test failure on many platforms.
1097         Reported by Nelson H. F. Beebe.
1098
1099         * gettext-tools/tests/autopoint-3: Create dummy ltmain.sh file before invoking
1100         "automake -a -c".
1101
1102 2019-04-28  Bruno Haible  <bruno@clisp.org>
1103
1104         Avoid lang-guile test failure on many platforms.
1105         Reported by Nelson H. F. Beebe.
1106
1107         * gettext-tools/tests/lang-guile: Skip the test if the guile version is < 2.0.
1108
1109 2019-04-28  Bruno Haible  <bruno@clisp.org>
1110
1111         Update after gnulib changed.
1112
1113         Update to newest gnulib.
1114
1115 2019-04-27  Bruno Haible  <bruno@clisp.org>
1116
1117         intl: Use the lookup optimization also on platforms without per-thread locales.
1118         This bug was introduced on 2007-01-27.
1119
1120         * gettext-runtime/intl/dcigettext.c (DCIGETTEXT): Fix #ifdef/#endif chain.
1121
1122 2019-04-27  Bruno Haible  <bruno@clisp.org>
1123
1124         po-mode: Fix warning.
1125         * gettext-tools/emacs/po-mode.el (entry-buffer): Declare as variable.
1126
1127         libgettextpo: Don't rely on the undocumented variable libgettextpo_program_name.
1128         * gnulib-local/lib/xerror.c: If IN_LIBGETTEXTPO is defined, include
1129         getprogname.h instead of progname.h and define program_name as a macro.
1130         * gnulib-local/lib/error-progname.c: Likewise.
1131         * gettext-tools/src/po-xerror.c: Likewise.
1132         * autogen.sh (GNULIB_MODULES_LIBGETTEXTPO): Remove progname.
1133         Pass --avoid=progname to gnulib-tool invocation for libgettextpo.
1134
1135         libgettextpo: Fix crash when iconv() does not support the PO file's encoding.
1136         * gettext-tools/src/po-charset.c (po_lex_charset_set): When IN_LIBGETTEXTPO is
1137         defined, don't use program_name.
1138
1139         libgettextpo: Fix gcc warnings.
1140         * gettext-tools/src/write-po.c (begin_css_class, end_css_class): At least,
1141         evaluate the classname argument.
1142
1143         Fix a gcc warning.
1144         * gettext-tools/src/urlget.c (java_exitcode, execute_it): Don't define if
1145         USEJAVA is 0.
1146
1147         Fix a gcc warning on mingw.
1148         * gettext-tools/src/msginit.c (get_user_pwd): Don't define if HAVE_PWD_H is not
1149         set.
1150         (get_user_fullname): Don't call get_user_pwd if HAVE_PWD_H is not set.
1151
1152         Fix gcc warnings on mingw and IRIX 6.5.
1153         * gettext-tools/src/msgexec.c (process_message): Don't assume that fprintf
1154         supports %zu.
1155         * gettext-tools/src/msgfilter.c (process_message): Likewise.
1156
1157         Fix gcc warnings on mingw.
1158         * gettext-tools/src/msgexec.c (close): Undefine before redefinition.
1159         * gettext-tools/src/msggrep.c (close): Likewise.
1160
1161         Fix a gcc warning (regression from 2017-05-04).
1162         * gettext-tools/src/read-java.c (msgdomain_read_java): Remove unused variable.
1163
1164         search-path.c: Improve code style.
1165         * gettext-tools/src/search-path.h (get_search_path): Clarify memory allocation.
1166         * gettext-tools/src/search-path.c (struct path_array_ty): Add comment.
1167         (foreach_elements): Fix comment.
1168         (get_search_path): Improve comments. Perform each getenv() only once. Reduce
1169         scope of variables. Fix gcc warning.
1170
1171         libxml: Fix width of fprintf argument on native Windows.
1172         * gnulib-local/lib/libxml/timsort.h (TIM_SORT_RESIZE): Cast fprintf argument to
1173         'unsigned long'.
1174
1175         intl: Fix a gcc warning.
1176         * gettext-runtime/intl/langprefs.c (_nl_language_preferences_win32_95): Declare
1177         data as BYTE array, not char array.
1178
1179 2019-04-26  Bruno Haible  <bruno@clisp.org>
1180
1181         build: Fix build failure on mingw with --disable-shared --enable-relocatable.
1182         Reported by Michele Locati <michele@locati.it>
1183         in <https://lists.gnu.org/archive/html/bug-gettext/2019-04/msg00052.html>.
1184
1185         * gettext-runtime/intl/Makefile.am (AM_CPPFLAGS): Map 'relocate2' to a different
1186         symbol.
1187
1188 2019-04-26  Bruno Haible  <bruno@clisp.org>
1189
1190         Document the OUTPUT_CHARSET environment variable.
1191         Reported by Václav Slavík <vaclav@slavik.io>
1192         via Michele Locati <michele@locati.it>.
1193
1194         * gettext-tools/doc/gettext.texi (Working in a Windows console): New section.
1195
1196 2019-04-14  Bruno Haible  <bruno@clisp.org>
1197
1198         Update translations (from the TP).
1199         * gettext-runtime/po/*.po: Update.
1200         * gettext-runtime/po/LINGUAS: Add 'ast'.
1201         * gettext-tools/po/*.po: Update.
1202         * gettext-tools/examples/po/*.po: Update.
1203         * gettext-tools/examples/po/LINGUAS: Add 'ta'.
1204         * gettext-tools/examples/hello-*/po/LINGUAS: Likewise.
1205         * gettext-tools/examples/Makefile.am (EXAMPLESPOFILES): Add ta.po.
1206
1207         Prepare for 0.20 release.
1208         * gettext-runtime/intl/libgnuintl.in.h (LIBINTL_VERSION): Update.
1209         * gettext-tools/libgettextpo/gettext-po.in.h (LIBGETTEXTPO_VERSION): Update.
1210         * gettext-runtime/m4/gettext.m4: Bump version number in comment.
1211         * gettext-runtime/m4/intl.m4: Likewise.
1212         * gettext-runtime/m4/intlmacosx.m4: Likewise.
1213         * gettext-runtime/m4/po.m4: Likewise.
1214         (GETTEXT_MACRO_VERSION): Bump to 0.20.
1215         * gettext-runtime/po/Makefile.in.in (GETTEXT_MACRO_VERSION): Likewise.
1216         * gettext-runtime/intl/Makefile.am (LTV_*): Bump to 9:6:2.
1217         * gettext-tools/libgettextpo/Makefile.am (LTV_*): Bump to 5:5:5.
1218         * gettext-tools/configure.ac (ARCHIVE_VERSION): Set to 0.20.
1219         * gettext-tools/misc/autopoint.in: Accept version 0.20.
1220         * gettext-runtime/doc/matrix.texi: Update from TP.
1221         * gettext-runtime/doc/nls.texi (STATUS): Update.
1222         * gettext-runtime/src/envsubst.c (main): Update copyright year in --version
1223         output.
1224         * gettext-runtime/src/gettext.c (main): Likewise.
1225         * gettext-runtime/src/ngettext.c (main): Likewise.
1226         * gettext-tools/src/cldr-plurals.c (main): Likewise.
1227         * gettext-tools/src/hostname.c (main): Likewise.
1228         * gettext-tools/src/msgattrib.c (main): Likewise.
1229         * gettext-tools/src/msgcat.c (main): Likewise.
1230         * gettext-tools/src/msgcmp.c (main): Likewise.
1231         * gettext-tools/src/msgcomm.c (main): Likewise.
1232         * gettext-tools/src/msgconv.c (main): Likewise.
1233         * gettext-tools/src/msgen.c (main): Likewise.
1234         * gettext-tools/src/msgexec.c (main): Likewise.
1235         * gettext-tools/src/msgfilter.c (main): Likewise.
1236         * gettext-tools/src/msgfmt.c (main): Likewise.
1237         * gettext-tools/src/msggrep.c (main): Likewise.
1238         * gettext-tools/src/msginit.c (main): Likewise.
1239         * gettext-tools/src/msgmerge.c (main): Likewise.
1240         * gettext-tools/src/msgunfmt.c (main): Likewise.
1241         * gettext-tools/src/msguniq.c (main): Likewise.
1242         * gettext-tools/src/recode-sr-latin.c (main): Likewise.
1243         * gettext-tools/src/urlget.c (main): Likewise.
1244         * gettext-tools/src/xgettext.c (main): Likewise.
1245         * gettext-runtime/src/gettext.sh.in (func_version): Update copyright year.
1246         * gettext-tools/misc/convert-archive.in (func_version): Likewise.
1247         * gettext-tools/misc/gettextize.in (func_version): Likewise.
1248         * libtextstyle/version.sh: Use version number 0.20 here as well.
1249         * gettext-runtime/NEWS: Mention changes (from main NEWS).
1250         * libtextstyle/NEWS: Mention changes.
1251
1252         autopoint: Reject AM_GNU_GETTEXT without 'external' for versions >= 0.20.
1253         * gettext-tools/misc/autopoint.in: Fail if AM_GNU_GETTEXT without 'external' is
1254         specified with a gettext version >= 0.20.
1255         * gettext-tools/tests/autopoint-2: Update. Add two more scenarios.
1256         * gettext-tools/tests/autopoint-3: Don't test AM_GNU_GETTEXT([use-libtool]) nor
1257         --with-included-gettext. Don't use libtoolize.
1258
1259         build: Fix Makefile.am formatting.
1260         * gettext-runtime/man/Makefile.am: Start every indented line with a tab.
1261
1262         build: Don't fail copyright header check on archive.dir.tar.
1263         * check-copyright-headers (func_check_file): Succeed for the archive.dir.tar
1264         file.
1265
1266         Update to newest gnulib.
1267
1268 2019-04-13  Bruno Haible  <bruno@clisp.org>
1269
1270         cldr-plurals: Fix a test failure on IRIX 6.5.
1271         * gettext-tools/src/cldr-plural-exp.c (cldr_plural_rule_list_print): Don't
1272         assume that fprintf supports %zu.
1273
1274         build: Fix build failure when perl exists but not perl's Locale::gettext module.
1275         * gettext-runtime/man/x-to-1.in: Remove file.
1276         * gettext-tools/man/x-to-1.in: Remove file.
1277         * autogen.sh: Copy x-to-1.in from gnulib.
1278
1279         build: Fix build failure with a preinstalled libxml (regression from 2019-04-02).
1280         * gettext-tools/src/Makefile.am (AM_CPPFLAGS): Remove -I options that point into
1281         libtextstyle/lib.
1282         (textstyle.h): New rule.
1283         (BUILT_SOURCES, MOSTLYCLEANFILES): Add textstyle.h and textstyle/*.h.
1284
1285         build: Don't link libgettextlib and libgettextsrc against libgomp.
1286         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add openmp-init. Remove openmp.
1287         * gettext-tools/configure.ac: Invoke AC_OPENMP.
1288
1289         Update to newest gnulib.
1290
1291 2019-04-12  Bruno Haible  <bruno@clisp.org>
1292
1293         msgfmt: Fix another buffer overrun.
1294         Reported and patch by Joshua Root <jmr@macports.org>
1295         at <https://savannah.gnu.org/bugs/?56126>.
1296
1297         * gettext-tools/src/write-java.c (write_java_msgid): Allocate memory for the
1298         trailing NUL byte as well.
1299         * gettext-tools/src/write-csharp.c (write_csharp_msgid): Likewise.
1300
1301 2019-04-11  Bruno Haible  <bruno@clisp.org>
1302
1303         build: Explicitly request some more gnulib modules.
1304         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add localtime, unsetenv.
1305
1306         build: Fix build failure on mingw (regression from 2019-04-02).
1307         * gettext-tools/woe32dll/gettextlib-exports.c: Remove
1308         gl_array_list_implementation, styled_ostream_typeinfo.
1309         * gettext-tools/woe32dll/gettextsrc-exports.c: Remove color_mode,
1310         color_test_mode, style_file_name.
1311         * autogen.sh: Don't import the gnulib array-list-tests and linkedhash-list-tests
1312         modules.
1313
1314         build: Fix build failure on mingw (regression from 2019-04-02).
1315         * libtextstyle/autogen.sh: Pass a --macro-prefix option to gnulib-tool.
1316         * libtextstyle/configure.ac: Update accordingly.
1317
1318         libtextstyle: Fix build failure on mingw (regression from 2019-03-17).
1319         * libtextstyle/lib/Makefile.am (config.h): Emit a line that ensures that
1320         isatty.c defines the symbol 'libtextstyle_isatty', not 'isatty'.
1321
1322 2019-04-11  Bruno Haible  <bruno@clisp.org>
1323
1324         build: Fix build failure on mingw.
1325         For some reason, Automake puts a definition of CXXLD in
1326         gettext-tools/src/Makefile.in but not in
1327         gettext-tools/gnulib-lib/Makefile.in.
1328
1329         * gettext-tools/gnulib-lib/Makefile.am (CXXLD): Define.
1330
1331 2019-04-10  Bruno Haible  <bruno@clisp.org>
1332
1333         msgfmt: Fix a buffer overrun.
1334         Reported by Tobi Schäfer at <https://trac.macports.org/ticket/58323>,
1335         via Ryan Schmidt <@ryandesign.com> at <https://savannah.gnu.org/bugs/?56112>.
1336         Patch proposed by Joshua Root.
1337
1338         * gettext-tools/src/write-java.c (msgid_hashcode): Allocate memory for the
1339         trailing NUL byte as well.
1340
1341 2019-04-09  Bruno Haible  <bruno@clisp.org>
1342
1343         Fix test failures on AIX 7.2.
1344         * gettext-tools/tests/intl-thread-1-prg.c: Test HAVE_WORKING_USELOCALE instead
1345         of HAVE_USELOCALE.
1346         * gettext-tools/tests/intl-thread-2-prg.c: Likewise.
1347         * gettext-tools/tests/intl-thread-3-prg.c: Likewise.
1348
1349         msgmerge: Fix crash on 32-bit AIX 7.2.
1350         * gettext-tools/src/msgmerge.c: Include <omp.h>.
1351         (main): Invoke openmp_init().
1352
1353         Update to newest gnulib.
1354
1355 2019-04-08  Bruno Haible  <bruno@clisp.org>
1356
1357         Make sure that libintl.h declares the *wprintf overrides on Windows.
1358         * gettext-runtime/m4/intl.m4 (AM_INTL_SUBDIR): Test for wprintf, not fwprintf.
1359
1360         Update to newest gnulib.
1361
1362 2019-04-08  Bruno Haible  <bruno@clisp.org>
1363
1364         autopoint: Don't risk failing because of user or system git configurations.
1365         Reported by Jamie Kirkpatrick <jkp@kirkconsulting.co.uk>
1366         in <https://savannah.gnu.org/support/?107689>.
1367
1368         * gettext-tools/misc/autopoint.in: Set/unset environment variables, so that git
1369         does not read the user's git configuration nor the system's git configuration.
1370         * gettext-tools/misc/convert-archive.in: Likewise.
1371
1372 2019-04-08  Bruno Haible  <bruno@clisp.org>
1373
1374         xgettext: Recognize ECMAScript-262 6th edition template literals.
1375         Reported by Philip Chimento <philip.chimento@gmail.com>
1376         in <https://savannah.gnu.org/bugs/index.php?50920>.
1377
1378         * gettext-tools/src/x-javascript.c (P7_TEMPLATE_START_OF_EXPRESSION): New macro.
1379         (enum token_type_ty): Add token_type_template, token_type_ltemplate,
1380         token_type_mtemplate, token_type_rtemplate.
1381         (free_token): Treat token_type_template like token_type_string.
1382         (phase7_getuc): Add support for backquote quote_char.
1383         (brace_depth, template_literal_depth): New variables.
1384         (phase5_get): Parse template literals.
1385         (x_javascript_lex): Treat token_type_template like token_type_string. Handle the
1386         combination of symbol followed by template.
1387         (extract_balanced): Treat token_type_template like token_type_string, and
1388         token_type_ltemplate, token_type_mtemplate, token_type_rtemplate like
1389         token_type_other.
1390         (extract_javascript): Initialize brace_depth, template_literal_depth.
1391         * gettext-tools/tests/xgettext-javascript-7: New file.
1392         * gettext-tools/tests/Makefile.am (TESTS): Add it.
1393         * gettext-tools/doc/gettext.texi (JavaScript): Mention the template literal
1394         syntax for strings.
1395         * NEWS: Mention the improvement.
1396
1397 2019-04-08  Bruno Haible  <bruno@clisp.org>
1398
1399         xgettext: Make JavaScript parser more robust.
1400         * gettext-tools/src/x-javascript.c (extract_javascript): Initialize
1401         inside_embedded_js_in_xml.
1402
1403 2019-04-07  Bruno Haible  <bruno@clisp.org>
1404
1405         build: Verify that newly added files have an appropriate copyright notice.
1406         * check-copyright-headers: New file.
1407         * Makefile.am (EXTRA_DIST): Add it.
1408         (distcheck-hook): Run check-copyright-headers and fail if it fails.
1409
1410 2019-04-07  Bruno Haible  <bruno@clisp.org>
1411
1412         doc: Add copyright notices in several files.
1413         Reported by <ineiev@gnu.org> in <https://savannah.gnu.org/bugs/?54809>.
1414
1415         * gettext-runtime/doc/nls.texi: Add delegating copyright notice.
1416         * gettext-runtime/doc/rt-*.texi: Likewise.
1417         * gettext-tools/doc/autopoint.texi: Likewise.
1418         * gettext-tools/doc/gettextize.texi: Likewise.
1419         * gettext-tools/doc/msg*.texi: Likewise.
1420         * gettext-tools/doc/xgettext.texi: Likewise.
1421
1422 2019-04-07  Bruno Haible  <bruno@clisp.org>
1423
1424         build: Unify the three copies of texi2html.
1425         * build-aux/texi2html: Moved to here from libtextstyle/build-aux/texi2html.
1426         * libtextstyle/autogen.sh: Copy texi2html.
1427         * gettext-runtime/libasprintf/texi2html: Remove file.
1428         * gettext-runtime/libasprintf/Makefile.am (TEXI2HTML): Use build-aux/texi2html.
1429         (EXTRA_DIST): Remove texi2html.
1430         * gettext-tools/doc/texi2html: Remove file.
1431         * gettext-tools/doc/Makefile.am (TEXI2HTML): Use build-aux/texi2html.
1432         (EXTRA_DIST): Remove texi2html.
1433         * Makefile.am (EXTRA_DIST): Add build-aux/texi2html.
1434         (distcheck-hook): Update.
1435
1436 2019-04-07  Bruno Haible  <bruno@clisp.org>
1437
1438         doc: Use a version of texi2html which is under a good license.
1439         Reported by <ineiev@gnu.org> in <https://savannah.gnu.org/bugs/?54809>.
1440
1441         * gettext-tools/doc/texi2html: Copied from texi2html-1.78, with changes made in
1442         libunistring/build-aux/texi2html and then in libtextstyle/build-aux/texi2html.
1443         * gettext-tools/doc/gettext.texi: Enable the Top node during texi2html
1444         processing.
1445         * gettext-tools/doc/Makefile.am (gettext.html): Use texi2html options
1446         -no-sec-nav -no-menu -toc-links.
1447         (gettext_toc.html): Likewise. Pull out generated files out of subdirectory.
1448
1449 2019-04-07  Bruno Haible  <bruno@clisp.org>
1450
1451         libasprintf: Use a version of texi2html which is under a good license.
1452         Reported by <ineiev@gnu.org> in <https://savannah.gnu.org/bugs/?54809>.
1453
1454         * gettext-runtime/libasprintf/texi2html: Copied from texi2html-1.78, with
1455         changes made in libunistring/build-aux/texi2html and then in
1456         libtextstyle/build-aux/texi2html.
1457         * gettext-runtime/libasprintf/fdl.texi: New file, copied from
1458         gettext-tools/doc/fdl.texi.
1459         * gettext-runtime/libasprintf/gpl.texi: New file, copied from
1460         gnulib/doc/gpl-2.0.texi.
1461         * gettext-runtime/libasprintf/lgpl.texi: New file, copied from
1462         gnulib/doc/lgpl-2.1.texi.
1463         * gettext-runtime/libasprintf/autosprintf.texi: Invoke @contents. Enable the
1464         Top node during texi2html processing.
1465         (Licenses): New appendix.
1466         * gettext-runtime/libasprintf/Makefile.am (TEXINCLUDES): New variable.
1467         (MAKEINFOFLAGS): Use it.
1468         (autosprintf_TEXINFOS): New variable.
1469         (autosprintf_all.html): Depend on it. Use texi2html options -no-sec-nav -no-menu
1470         -toc-links.
1471
1472 2019-04-07  Bruno Haible  <bruno@clisp.org>
1473
1474         libtextstyle: Tweak style of HTML documentation.
1475         * libtextstyle/build-aux/texi2html (BIG_RULE): Set to empty.
1476
1477 2019-04-07  Bruno Haible  <bruno@clisp.org>
1478
1479         Add copyright notices in several files.
1480         Reported by <ineiev@gnu.org> in <https://savannah.gnu.org/bugs/?54809>.
1481
1482         * gettext-tools/doc/FAQ.html: Fix copyright notice added on 2019-04-04.
1483         * gettext-tools/doc/tutorial.html: Add GFDL copyright notice. Permission given
1484         by Gora Mohanty <gora_mohanty@yahoo.co.in> through private email on 2004-11-13.
1485         * gettext-tools/po/Makevars.template: Don't mention the file name, since this
1486         file is meant to be copied and renamed to 'Makevars'.
1487         * gettext-tools/examples/hello-*/po/Makevars: Add all-permissive copyright
1488         notice.
1489         * gettext-tools/examples/hello-c-gnome3/hello.ui: Add public-domain notice.
1490         * gettext-tools/examples/hello-c-gnome3/hello.gresource.xml: Likewise.
1491         * gettext-tools/examples/hello-c-gnome3/hello.gschema.xml: Likewise.
1492         * gettext-tools/examples/hello-java-awt/m4/TestAWT.java: Likewise.
1493         * gettext-tools/examples/hello-java-swing/m4/TestAWT.java: Likewise.
1494         * gettext-tools/examples/hello-java-qtjambi/m4/Test15.java: Likewise.
1495         * gettext-tools/examples/check-examples: Add GPLv3+ copyright notice.
1496         * gettext-tools/examples/installpaths.in: Likewise.
1497         * gettext-tools/examples/po/mmsmallpo.sh: Likewise.
1498         * gettext-tools/examples/po/xsmallpot.sh: Likewise.
1499         * gettext-tools/its/glade.loc: Likewise.
1500         * gettext-tools/its/gsettings.loc: Likewise.
1501         * gettext-tools/its/metainfo.its: Likewise.
1502         * gettext-tools/its/metainfo.loc: Likewise.
1503         * gettext-tools/src/filters.h: Add missing copyright line.
1504
1505 2019-04-04  Bruno Haible  <bruno@clisp.org>
1506
1507         Reduce ABOUT-NLS to just a hyperlink.
1508         The common way to distribute information, nowadays, is through the web,
1509         not by including files in tarballs of packages.  Also, the current
1510         contents of ABOUT-NLS is outdated.
1511
1512         Reported by Samuel Thibault in <https://savannah.gnu.org/bugs/?54809>.
1513
1514         * gettext-runtime/ABOUT-NLS: Replace text with a reference to the online
1515         documentation.
1516         * gettext-runtime/Makefile.am (MAKEINFO): Remove variable.
1517         (all-local, ABOUT-NLS): Remove rules.
1518         * gettext-tools/src/msginit.c (main): Point the user to the online documentation
1519         instead of the ABOUT-NLS file.
1520         * gettext-tools/doc/gettext.texi (Installing Localizations, Prerequisites,
1521         Makefile): Don't mention ABOUT-NLS any more.
1522         * gettext-tools/doc/gettextize.texi: Update description of ABOUT-NLS.
1523         * gettext-tools/doc/FAQ.html: Refer to the online documentation instead of the
1524         ABOUT-NLS file.
1525         * README: Don't mention ABOUT-NLS any more.
1526
1527 2019-04-04  Bruno Haible  <bruno@clisp.org>
1528
1529         doc: Include the contents of ABOUT-NLS in the documentation.
1530         * gettext-runtime/doc/nls.texi (The original ABOUT-NLS): Renamed from
1531         'Translation Intro'. Turn into a section. Mark section as historical.
1532         * gettext-tools/doc/gettext.texi: Include nls.texi.
1533         * gettext-tools/doc/Makefile.am (gettext_TEXINFOS): Add nls.texi and
1534         matrix.texi.
1535
1536         doc: Update ISO 639 list.
1537         * gettext-tools/doc/iso-639.texi: Regenerated.
1538
1539 2019-04-04  Bruno Haible  <bruno@clisp.org>
1540
1541         Add copyright notices in several files.
1542         Reported by <ineiev@gnu.org> in <https://savannah.gnu.org/bugs/?54809>.
1543
1544         * gettext-runtime/m4/Makefile.am: Add GPL copyright notice.
1545         * gettext-tools/m4/Makefile.am: Likewise.
1546         * gettext-tools/doc/iso-639.sed: Likewise.
1547         * gettext-tools/doc/iso-639-2.sed: Likewise.
1548         * gettext-tools/doc/iso-3166.sed: Likewise.
1549         * gettext-tools/its/glade1.its: Likewise.
1550         * gettext-tools/its/glade2.its: Likewise.
1551         * gettext-tools/its/gsettings.its: Likewise.
1552         * gettext-tools/its/gtkbuilder.its: Likewise.
1553         * gettext-tools/misc/cvsuser.c: Likewise.
1554         * gettext-tools/projects/team-address: Likewise.
1555         * gettext-tools/projects/GNOME/team-address: Likewise.
1556         * gettext-tools/projects/GNOME/trigger: Likewise.
1557         * gettext-tools/projects/KDE/team-address: Likewise.
1558         * gettext-tools/projects/KDE/trigger: Likewise.
1559         * gettext-tools/projects/TP/team-address: Likewise.
1560         * windows/windres-options: Likewise.
1561         * gettext-runtime/po/insert-header.sin: Add copyright notice, based on the one
1562         in Rules-quot.
1563         * gettext-tools/doc/FAQ.html: Add copyright notice, suitable for documentation.
1564
1565 2019-04-03  Bruno Haible  <bruno@clisp.org>
1566
1567         Mention the support for Java 11.
1568         This support was added in gnulib on 2018-09-26.
1569
1570         * NEWS: Mention the support for Java 11.
1571
1572 2019-04-03  Bruno Haible  <bruno@clisp.org>
1573
1574         libtextstyle: Clean up old TODO item.
1575         * libtextstyle/Makefile.am: Remove obsolete comment.
1576
1577 2019-04-02  Bruno Haible  <bruno@clisp.org>
1578
1579         libtextstyle: Distribute two more files.
1580         * libtextstyle/Makefile.am (EXTRA_DIST): Add
1581         gnulib-local/lib/libxml/xmlversion.in.h.diff, gnulib-local/modules/libxml.diff.
1582
1583         build: Move local gnulib modules that are only needed in libtextstyle.
1584         * libtextstyle/gnulib-local/*: Many files moved to here from gnulib-local/*.
1585         * libtextstyle/gnulib-local/modules/libglib: Apply diff.
1586         * libtextstyle/gnulib-local/modules/libglib.diff: Remove file.
1587         * libtextstyle/gnulib-local/modules/libcroco: Apply diff.
1588         * libtextstyle/gnulib-local/modules/libcroco.diff: Remove file.
1589         * libtextstyle/gnulib-local/modules/term-styled-ostream: Apply diff.
1590         * libtextstyle/gnulib-local/modules/term-styled-ostream.diff: Remove file.
1591         * libtextstyle/gnulib-local/modules/html-styled-ostream: Apply diff.
1592         * libtextstyle/gnulib-local/modules/html-styled-ostream.diff: Remove file.
1593         * libtextstyle/gnulib-local/modules/noop-styled-ostream: Apply diff.
1594         * libtextstyle/gnulib-local/modules/noop-styled-ostream.diff: Remove file.
1595         * libtextstyle/woe32dll/c++term-styled-ostream.cc: Remove file.
1596         * libtextstyle/woe32dll/c++html-styled-ostream.cc: Remove file.
1597         * libtextstyle/woe32dll/c++noop-styled-ostream.cc: Remove file.
1598         * gettext-tools/woe32dll/c++term-styled-ostream.cc: Remove file.
1599         * gettext-tools/woe32dll/c++html-styled-ostream.cc: Remove file.
1600         * gnulib-local/Makefile.am (EXTRA_DIST): Remove the files that were moved away.
1601         * libtextstyle/Makefile.am (EXTRA_DIST): Add the files that were moved to
1602         libtextstyle/gnulib-local/. Add build-aux/moopp.
1603         * Makefile.am (EXTRA_DIST): Remove build-aux/moopp.
1604
1605         libgettextpo: Avoid closing a FILE stream when it will still be used.
1606         * gettext-tools/src/write-catalog.c (msgdomain_list_print): Don't call
1607         ostream_free if we're using the dummy <textstyle.h>.
1608
1609         libgettextpo: Use a dummy replacement for libtextstyle.
1610         * gnulib-local/modules/libtextstyle-dummy: New file, based on gnulib's
1611         modules/libtextstyle-optional.
1612         * gnulib-local/Makefile.am (EXTRA_DIST): Add it.
1613         * autogen.sh (GNULIB_MODULES_LIBGETTEXTPO): Add libtextstyle-dummy. Remove
1614         file-ostream, ostream.
1615         * gettext-tools/src/write-catalog.h: Include <textstyle.h> always.
1616         * gettext-tools/src/write-catalog.c: Likewise.
1617         * gettext-tools/src/write-po.h: Likewise.
1618         * gettext-tools/src/write-po.c: Likewise.
1619
1620         Link the msg* and xgettext programs against libtextstyle.
1621         * libtextstyle/autogen.sh: Don't generate lib/color.h and lib/color.c.
1622         * libtextstyle/lib/color.h: Moved to here from gettext-tools/src/color.h.
1623         * libtextstyle/lib/color.c: Moved to here from gettext-tools/src/color.c.
1624         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Remove fd-ostream, file-ostream,
1625         html-styled-ostream, ostream, styled-ostream, term-styled-ostream. Add libxml.
1626         * gettext-tools/gnulib-lib/Makefile.am (MOOPPFLAGS): Remove customization.
1627         * gettext-tools/gnulib-tests/Makefile.am (test_term_ostream_LDADD): Remove
1628         customization.
1629         * gettext-tools/src/Makefile.am (noinst_HEADERS): Remove color.h.
1630         (AM_CPPFLAGS): Add -I directives to the libtextstyle/lib directory.
1631         (libgettextsrc_la_SOURCES): Remove color.c.
1632         (libgettextsrc_la_LDFLAGS): Link with libtextstyle.la.
1633         * gettext-tools/src/FILES: Update.
1634         * gettext-tools/src/write-catalog.h: Include <textstyle.h> instead of ostream.h.
1635         * gettext-tools/src/write-catalog.c: Include <textstyle.h> instead of color.h
1636         and *-ostream.h.
1637         (msgdomain_list_print): Use styled_ostream_create and
1638         noop_styled_ostream_create.
1639         * gettext-tools/src/write-po.h: Include <textstyle.h> instead of ostream.h.
1640         * gettext-tools/src/write-po.c: Include <textstyle.h> instead of *-ostream.h.
1641         (is_stylable): Remove function.
1642         (begin_css_class, end_css_class): Update. Mark as inline.
1643         * gettext-tools/src/write-properties.c: Include <textstyle.h> instead of
1644         ostream.h.
1645         * gettext-tools/src/write-stringtable.c: Likewise.
1646         * gettext-tools/src/msgattrib.c: Include <textstyle.h> instead of color.h.
1647         * gettext-tools/src/msgcat.c: Likewise.
1648         * gettext-tools/src/msgcomm.c: Likewise.
1649         * gettext-tools/src/msgconv.c: Likewise.
1650         * gettext-tools/src/msgen.c: Likewise.
1651         * gettext-tools/src/msgfilter.c: Likewise.
1652         * gettext-tools/src/msggrep.c: Likewise.
1653         * gettext-tools/src/msginit.c: Likewise.
1654         * gettext-tools/src/msgmerge.c: Likewise.
1655         * gettext-tools/src/msgunfmt.c: Likewise.
1656         * gettext-tools/src/msguniq.c: Likewise.
1657         * gettext-tools/src/xgettext.c: Likewise.
1658
1659         libtextstyle: Generalize fd-styled-ostream to noop-styled-ostream.
1660         * gnulib-local/lib/noop-styled-ostream.oo.h: New file, based on
1661         gnulib-local/lib/fd-styled-ostream.oo.h.
1662         * gnulib-local/lib/noop-styled-ostream.oo.c: New file, based on
1663         gnulib-local/lib/fd-styled-ostream.oo.c.
1664         * gnulib-local/modules/noop-styled-ostream: New file, based on
1665         gnulib-local/modules/fd-styled-ostream.
1666         * gnulib-local/Makefile.am (EXTRA_DIST): Remove lib/fd-styled-ostream.oo.[hc]
1667         and modules/fd-styled-ostream. Add lib/noop-styled-ostream.oo.[hc] and
1668         modules/noop-styled-ostream.
1669         * libtextstyle/woe32dll/c++noop-styled-ostream.cc: New file, based on
1670         libtextstyle/woe32dll/c++fd-styled-ostream.cc.
1671         * libtextstyle/gnulib-local/modules/noop-styled-ostream.diff: New file, based
1672         on libtextstyle/gnulib-local/modules/fd-styled-ostream.diff.
1673         * gnulib-local/lib/fd-styled-ostream.oo.h: Remove file.
1674         * gnulib-local/lib/fd-styled-ostream.oo.c: Remove file.
1675         * gnulib-local/modules/fd-styled-ostream: Remove file.
1676         * libtextstyle/woe32dll/c++fd-styled-ostream.cc: Remove file.
1677         * libtextstyle/gnulib-local/modules/fd-styled-ostream.diff: Remove file.
1678         * libtextstyle/autogen.sh (GNULIB_MODULES): Add noop-styled-ostream. Remove
1679         fd-styled-ostream.
1680         * libtextstyle/lib/misc.c: Include noop-styled-ostream.h, fd-ostream.h.
1681         (styled_ostream_create): Call fd_ostream_create and noop_styled_ostream_create
1682         instead of fd_styled_ostream_create.
1683         * libtextstyle/lib/textstyle.h (noop_styled_ostream_t): New type.
1684         (noop_styled_ostream_*): New declarations.
1685         * libtextstyle/doc/libtextstyle.texi (The noop_styled_ostream class): New
1686         subsection.
1687
1688         build: Build and install libtextstyle.
1689         * autogen.sh: Recurse into libtextstyle directory.
1690         * configure.ac: Likewise.
1691         * Makefile.am (SUBDIRS): Add libtextstyle.
1692         * DEPENDENCIES: Mention that libiconv and ncurses are also used by libtextstyle.
1693         * PACKAGING: Recommend to ship libtextstyle as a third binary package.
1694         * NEWS: Mention that libtextstyle is installed.
1695
1696         build: Separate git operations from build operations.
1697         * gitsub.sh: New file, from gnulib.
1698         * autogen.sh: Remove all git operations and the --no-git option. Look at the
1699         GNULIB_SRCDIR environment variable. Ignore the GNULIB_TOOL environment variable.
1700         * HACKING: Explain when to use gitsub.sh.
1701
1702         libtextstyle: Bump version number.
1703
1704 2019-04-01  Daiki Ueno  <ueno@gnu.org>
1705
1706         desktop: Fix whitespace handling around '='
1707         While the spec only allows spaces before and after '=',
1708         xgettext/msgfmt previously accepted all whitespaces including '\n'.
1709         That was causing unwanted concatenation of desktop lines.
1710
1711         Reported by Bastien Nocera in:
1712         https://lists.gnu.org/archive/html/bug-gettext/2019-03/msg00017.html
1713
1714         * gettext-tools/src/read-desktop.c (desktop_lex): Properly handle
1715         space characters before and after '='.
1716         * gettext-tools/tests/msgfmt-desktop-1: Add a test case.
1717
1718 2019-04-01  Bruno Haible  <bruno@clisp.org>
1719
1720         libtextstyle: Bump version number.
1721
1722 2019-03-31  Bruno Haible  <bruno@clisp.org>
1723
1724         libtextstyle: Add support for true-color terminals.
1725         * gnulib-local/lib/term-ostream.oo.c (colormodel_t): Add cm_xtermrgb.
1726         (rgb_to_color_xtermrgb): New function.
1727         (attributes_t): Extend the color fields to 25 bits.
1728         (struct term_ostream): New fields active_attr_color, active_attr_bgcolor.
1729         (out_color_change, out_bgcolor_change, term_ostream::rgb_to_color): Handle
1730         cm_xtermrgb.
1731         (out_attr_change): Set also active_attr_color, active_attr_bgcolor.
1732         (async_set_attributes_from_default): Fetch also active_attr_color,
1733         active_attr_bgcolor.
1734         (term_ostream_create): Accept all $TERM values that end in -direct.
1735         * libtextstyle/doc/libtextstyle.texi (Terminal emulators): Document the
1736         prerequisites for true-color support.
1737         * libtextstyle/NEWS: Mention the change.
1738
1739         maint: Make code more "git diff"-friendly.
1740         * gettext-runtime/src/envsubst.c: Prefer long lines to lines that start with a
1741         non-whitespace character.
1742         * gettext-tools/src/cldr-plurals.c: Likewise.
1743         * gettext-tools/src/format.c: Likewise.
1744         * gettext-tools/src/msgcmp.c: Likewise.
1745         * gettext-tools/src/msgfmt.c: Likewise.
1746         * gettext-tools/src/msggrep.c: Likewise.
1747         * gettext-tools/src/msgl-cat.c: Likewise.
1748         * gettext-tools/src/msgl-charset.c: Likewise.
1749         * gettext-tools/src/msgl-check.c: Likewise.
1750         * gettext-tools/src/msgl-iconv.c: Likewise.
1751         * gettext-tools/src/msgmerge.c: Likewise.
1752         * gettext-tools/src/po-lex.c: Likewise.
1753         * gettext-tools/src/read-stringtable.c: Likewise.
1754         * gettext-tools/src/recode-sr-latin.c: Likewise.
1755         * gettext-tools/src/write-catalog.c: Likewise.
1756         * gettext-tools/src/write-java.c: Likewise.
1757         * gettext-tools/src/write-po.c: Likewise.
1758         * gettext-tools/src/x-csharp.c: Likewise.
1759         * gettext-tools/src/x-elisp.c: Likewise.
1760         * gettext-tools/src/x-java.c: Likewise.
1761         * gettext-tools/src/x-javascript.c: Likewise.
1762         * gettext-tools/src/x-librep.c: Likewise.
1763         * gettext-tools/src/x-lisp.c: Likewise.
1764         * gettext-tools/src/x-perl.c: Likewise.
1765         * gettext-tools/src/x-python.c: Likewise.
1766         * gettext-tools/src/x-scheme.c: Likewise.
1767         * gettext-tools/src/x-sh.c: Likewise.
1768         * gettext-tools/src/x-tcl.c: Likewise.
1769         * gettext-tools/src/x-vala.c: Likewise.
1770         * gettext-tools/src/xg-encoding.c: Likewise.
1771         * gettext-tools/src/xgettext.c: Likewise.
1772
1773         libtextstyle: Improve documentation regarding the TERM value.
1774         * libtextstyle/doc/libtextstyle.texi (The TERM variable): Many more details.
1775         (Terminal emulators, Consoles): New subsections.
1776
1777         libtextstyle: Support for terminal types with 256 colors.
1778         * gnulib-local/lib/term-ostream.oo.c (term_ostream_create): Accept all $TERM
1779         values that end in -16color or -256 color (such as Eterm-256color,
1780         mlterm-256color, or putty-256color).
1781         * libtextstyle/NEWS: Mention the change.
1782
1783 2019-03-30  Takesi Ayanokoji  <ayanokoji.takesi@gmail.com>
1784
1785         po-mode: Enable highlighting of #, lines.
1786         * gettext-tools/emacs/po-mode.el (po-font-lock-keywords): Add rule for #, lines.
1787
1788 2019-03-30  Bruno Haible  <bruno@clisp.org>
1789
1790         po-mode: Remove support for Emacs versions < 22.
1791         Emacs 22 is the oldest version still in use, see
1792         <https://repology.org/project/emacs/versions>.
1793
1794         * gettext-tools/emacs/po-compat.el: Remove conditional code for Emacs < 22.
1795         * gettext-tools/emacs/po-mode.el: Likewise.
1796         (po-rehighlight): Remove function.
1797         (po-check-all-pending-edits, po-check-for-pending-edit): Update.
1798         * gettext-tools/emacs/start-po.el: Update comment.
1799
1800 2019-03-30  Bruno Haible  <bruno@clisp.org>
1801
1802         po-mode: Remove support for XEmacs.
1803         * gettext-tools/emacs/po-mode.el: Remove conditional code for XEmacs.
1804         * gettext-tools/emacs/po-compat.el: Likwise.
1805
1806         build: Move the Emacs package sources to subdirectory gettext-tools/emacs/.
1807         * gettext-tools/emacs/*.el: Moved here from gettext-tools/misc/.
1808         * gettext-tools/emacs/Makefile.am: New file, based on
1809         gettext-tools/misc/Makefile.am.
1810         * gettext-tools/misc/Makefile.am (lisp_LISP): Remove variable.
1811         * gettext-tools/configure.ac (AC_CONFIG_FILES): Add emacs/Makefile.
1812         * gettext-tools/Makefile.am (SUBDIRS): Add 'emacs'.
1813
1814         Update after gnulib changed.
1815
1816 2019-03-27  Bruno Haible  <bruno@clisp.org>
1817
1818         libtextstyle: Add support for Windows consoles.
1819         * gnulib-local/lib/term-ostream.oo.c: Include <windows.h>, msvc-nothrow.h,
1820         <io.h>.
1821         (struct term_ostream): Add fields handle, is_windows_console,
1822         default_console_attributes, current_console_attributes.
1823         (out_color_change, out_bgcolor_change, out_underline_change, out_attr_change,
1824         restore, async_restore, async_set_attributes_from_default, term_ostream::flush):
1825         Add separate code path for Windows consoles.
1826         (term_ostream_create): On Windows, test whether the handle refers to a console,
1827         and initialize the new fields.
1828         * gnulib-local/modules/term-ostream (Depends-on): Add msvc-nothrow.
1829         * libtextstyle/NEWS: Mention it.
1830
1831         libtextstyle: Make the SIGCONT handler work more reliably.
1832         * gnulib-local/lib/term-ostream.oo.c (out_attr_change): Modify active_attr
1833         before emitting the escape sequences, not afterwards.
1834         * libtextstyle/NEWS: Mention the fix.
1835
1836         libtextstyle: Mention fixes.
1837         * libtextstyle/NEWS: Mention two fixes done in the gnulib module
1838         'term-style-control'.
1839
1840         libtextstyle: Small fix for last commit.
1841         * gnulib-local/lib/term-ostream.oo.c (struct term_ostream): Mark fd volatile.
1842
1843         Update to newest gnulib.
1844
1845 2019-03-27  Bruno Haible  <bruno@clisp.org>
1846
1847         its: Simplify code.
1848         Suggested by Daiki Ueno.
1849
1850         * gettext-tools/src/its.c (normalize_whitespace): Remove local variable.
1851
1852 2019-03-26  Bruno Haible  <bruno@clisp.org>
1853
1854         its: Fix test failure.
1855         * gettext-tools/src/its.c (normalize_whitespace): Fix detection of paragraph
1856         boundary. Get rid of initial trim() call.
1857         * gettext-tools/tests/xgettext-its-1: Fix typo. Verify removal of whitespace
1858         at the end of the last paragraph.
1859         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add memchr.
1860
1861         build: Use gnulib module 'strchrnul' explicitly.
1862         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add strchrnul.
1863
1864 2019-03-24  Bruno Haible  <bruno@clisp.org>
1865
1866         libtextstyle: Use gnulib module 'term-style-control'.
1867         * gnulib-local/lib/term-ostream.oo.h: Include term-style-control.h.
1868         (ttyctl_t): Remove type.
1869         * gnulib-local/lib/term-ostream.oo.c (DEBUG_SIGNALS): Remove macro.
1870         Don't include <signal.h>, <stdio.h>, <sys/stat.h>, fatal-signal.h,
1871         sig-handler.h, same-inode.h.
1872         (SIZEOF): Remove macro.
1873         (nonintr_tcgetattr, nonintr_tcsetattr): Remove functions.
1874         (log_message, sprintf_integer, simple_errno_string, simple_signal_string,
1875         log_signal_handler_called): Remove functions.
1876         (struct term_ostream): Remove fields tty_control, same_as_stderr,
1877         non_default_active. Add control_data field instead.
1878         (get_control_data): New function.
1879         (BLOCK_SIGNALS_DURING_NON_DEFAULT_STYLE_OUTPUT): Remove macro.
1880         (term_fd): Remove variable.
1881         (pgrp_status_t): Remove type.
1882         (pgrp_status): Remove variable.
1883         (update_pgrp_status): Remove function.
1884         (out_filename): Remove variable.
1885         (out_error): Use out_stream instead of out_filename.
1886         (restore, tcsetattr_failed): Remove functions.
1887         (orig_lflag_set, orig_lflag): Remove variables.
1888         (clobber_local_mode, restore_local_mode): Remove functions.
1889         (job_control_signals): Remove variable.
1890         (num_job_control_signals): Remove macro.
1891         (relevant_signal_set, relevant_signal_set_initialized): Remove variables.
1892         (init_relevant_signal_set, block_relevant_signals, unblock_relevant_signals,
1893         is_ignored, show_signal_marker, fatal_or_stopping_signal_handler,
1894         fatal_signal_handler, stopping_signal_handler, continuing_signal_handler,
1895         ensure_continuing_signal_handler, ensure_other_signal_handlers): Remove
1896         functions.
1897         (out_attr_change): Set out_stream and out_fd.
1898         (activate_non_default_attr, deactivate_non_default_attr): Remove functions.
1899         (restore, async_restore, async_set_attributes_from_default): New functions.
1900         (controller): New variable.
1901         (activate_default_attr, output_buffer): Update.
1902         (term_ostream::free): Invoke deactivate_term_style_controller.
1903         (term_ostream_create): Invoke activate_term_style_controller.
1904         * gnulib-local/m4/term-ostream.m4 (gl_TERM_OSTREAM): Don't test for tcgetattr().
1905         * gnulib-local/modules/term-ostream (Depends-on): Add term-style-control. Remove
1906         fatal-signal, sigaction, sigprocmask, same-inode.
1907
1908         moopp: Allow forward references to the <class>_representation type.
1909         * gnulib-local/build-aux/moopp (func_version): Bump copyright year.
1910         (func_emit_source_c): Move the <class>_representation type alias to the top
1911         of the file.
1912
1913 2019-03-20  Bruno Haible  <bruno@clisp.org>
1914
1915         libtextstyle: Fix a memory access from a signal handler.
1916         * gnulib-local/lib/term-ostream.oo.c (struct term_ostream): Mark active_attr
1917         field as volatile.
1918
1919         libtextstyle: Bump version number.
1920
1921         Use _GL_ASYNC_SAFE from gnulib.
1922         * gettext-tools/src/plural-eval.h (sigfpe_code): Mark as volatile.
1923         * gettext-tools/src/plural-eval.c (sigfpe_code): Likewise.
1924         (sigfpe_handler): Mark as _GL_ASYNC_SAFE.
1925         * gnulib-local/lib/term-ostream.oo.c (ASYNC_SAFE): Remove macro.
1926         Use _GL_ASYNC_SAFE instead.
1927
1928         Update to newest gnulib.
1929
1930         Update .gitignore after 2019-03-12 change.
1931
1932 2019-03-17  Bruno Haible  <bruno@clisp.org>
1933
1934         libtextstyle: Bump version number.
1935
1936         libtextstyle: Bump version number.
1937
1938         libtextstyle: Implement reliable tty control.
1939         * gnulib-local/lib/term-ostream.oo.c (DEBUG_SIGNALS): New macro.
1940         Include <stdio.h>, <sys/stat.h>.
1941         (NOFLSH): Define fallback value.
1942         Include sig-handler.h, same-inode.h.
1943         (ASYNC_SAFE): New macro.
1944         (color_bgr): Mark as ASYNC_SAFE.
1945         (nonintr_tcgetattr, nonintr_tcsetattr): New functions.
1946         (log_message, sprintf_integer, simple_errno_string, simple_signal_string,
1947         log_signal_handler_called): New functions.
1948         (struct term_ostream): Add fields restore_colors, restore_weight,
1949         restore_posture, restore_underline, tty_control, same_as_stderr.
1950         (BLOCK_SIGNALS_DURING_NON_DEFAULT_STYLE_OUTPUT): New macro.
1951         (term_fd): New variable.
1952         (pgrp_status_t): New type.
1953         (pgrp_status): New variable.
1954         (update_pgrp_status): New function.
1955         (out_stream): New variable.
1956         (restore_colors, restore_weight, restore_posture, restore_underline): Remove
1957         variables.
1958         (out_color_change, out_bgcolor_change, out_weight_change, out_posture_change,
1959         out_underline_change): New functions, extracted from out_attr_change.
1960         (out_attr_change): Call these functions.
1961         (restore): Use out_stream.
1962         (tcsetattr_failed): New function.
1963         (orig_lflag_set, orig_lflag): New variables.
1964         (clobber_local_mode, restore_local_mode): New functions.
1965         (job_control_signals): Renamed from stopping_signals. Add SIGCONT.
1966         (num_job_control_signals): Renamed from num_stopping_signals.
1967         (relevant_signal_set): Replaces stopping_signal_set.
1968         (relevant_signal_set_initialized): New variable.
1969         (init_relevant_signal_set): Replaces init_stopping_signal_set.
1970         (block_relevant_signals): Replaces block_stopping_signals.
1971         (unblock_relevant_signals): Replaces unblock_stopping_signals.
1972         (is_ignored): New function.
1973         (show_signal_marker): New function.
1974         (fatal_or_stopping_signal_handler, fatal_signal_handler,
1975         stopping_signal_handler, continuing_signal_handler,
1976         ensure_continuing_signal_handler, ensure_other_signal_handlers): New functions.
1977         (activate_non_default_attr, deactivate_non_default_attr): Rewritten.
1978         (term_ostream::free): Unset term_fd and call update_pgrp_status.
1979         (term_ostream_create): Initialize the fields restore_colors, restore_weight,
1980         restore_posture, restore_underline, tty_control, same_as_stderr. Call
1981         init_relevant_signal_set. Set term_fd and call ensure_continuing_signal_handler
1982         and update_pgrp_status.
1983         * gnulib-local/m4/term-ostream.m4 (gl_TERM_OSTREAM): Check for tcgetattr.
1984         * gnulib-local/modules/term-ostream (Depends-on): Add sigaction, same-inode.
1985         * libtextstyle/NEWS: Mention the change.
1986
1987         libtextstyle: Fix build failure on Cygwin (regression from 2019-03-15).
1988         * libtextstyle/lib/Makefile.am ($(srcdir)/libtextstyle.sym.in): Renamed
1989         from $(srcdir)/libtextstyle.sym.
1990         (libtextstyle.sym): New rule.
1991         (MOSTLYCLEANFILES, MAINTAINERCLEANFILES, EXTRA_DIST): Update accordingly.
1992         (config.h): Depend on libtextstyle.sym in the build directory.
1993         (libtextstyle_la_LDFLAGS: Use libtextstyle.sym in the build directory.
1994
1995         libtextstyle: Clean up leftovers from 2019-03-13 commit.
1996         * libtextstyle/lib/Makefile.am (libtextstyle_la_LINK): Remove variable.
1997
1998 2019-03-16  Bruno Haible  <bruno@clisp.org>
1999
2000         libtextstyle: Complete styled_ostream_flush_to_current_style declaration.
2001         * libtextstyle/lib/textstyle.h (term_styled_ostream_flush_to_current_style,
2002         html_styled_ostream_flush_to_current_style): New declarations.
2003
2004         libtextstyle: Protect better against EINTR.
2005         * gnulib-local/lib/fd-ostream.oo.c (nonintr_tcdrain): New function.
2006         (fd_ostream::flush): Use it instead of tcdrain.
2007         * gnulib-local/lib/file-ostream.oo.c: Include <errno.h>.
2008         (nonintr_tcdrain): New function.
2009         (file_ostream::flush): Use it instead of tcdrain.
2010         * gnulib-local/lib/term-ostream.oo.c (nonintr_tcdrain): New function.
2011         (term_ostream::flush): Use it instead of tcdrain.
2012
2013 2019-03-15  Bruno Haible  <bruno@clisp.org>
2014
2015         libtextstyle: Reexport isatty() override from gnulib.
2016         This is necessary for programs that are compiled for native Windows and
2017         run in a Cygwin console.
2018
2019         * libtextstyle/autogen.sh (GNULIB_MODULES): Add 'isatty'.
2020         * libtextstyle/configure.ac: Set GNULIB_ISATTY to 0.
2021         * libtextstyle/lib/textstyle.h (libtextstyle_isatty): New declaration.
2022         (isatty): Redirect to libtextstyle_isatty.
2023
2024 2019-03-14  Bruno Haible  <bruno@clisp.org>
2025
2026         libtextstyle: Use less code from libxml.
2027         * libtextstyle/gnulib-local/lib/libxml/xmlversion.in.h.diff: New file.
2028         * gnulib-local/lib/libxml/save.h (xmlEncodeAttributeEntities): Declare also when
2029         LIBXML_OUTPUT_ENABLED is 0.
2030
2031         libtextstyle: Fix "make clean" failure in VPATH builds.
2032         * libtextstyle/lib/Makefile.am (CLEANDIRS_NOT_IN_SRCDIR): Remove 'textstyle'.
2033         (DISTCLEANDIRS_NOT_IN_SRCDIR): Add 'textstyle'.
2034
2035         libtextstyle: Make sure we get new versions also of mdate-sh.
2036         * libtextstyle/autogen.sh: Erase more files in build-aux.
2037
2038 2019-03-14  Bruno Haible  <bruno@clisp.org>
2039
2040         libtextstyle: Remove unused code for exporting variables from Windows DLLs.
2041         Here we use the third approach listed in gettext-tools/woe32dll/export.h, not
2042         the fourth approach.
2043
2044         * libtextstyle/Makefile.am: Remove code that was never enabled.
2045         * libtextstyle/lib/Makefile.am: Likewise.
2046         * libtextstyle/configure.ac (false): Remove conditional.
2047
2048 2019-03-14  Bruno Haible  <bruno@clisp.org>
2049
2050         libtextstyle: Add metainformation for Windows.
2051
2052         libtextstyle: Add metainformation for Windows.
2053         * libtextstyle/lib/libtextstyle.rc: New file.
2054         * libtextstyle/lib/Makefile.am (EXTRA_DIST): Add it.
2055         (WOE32_LIBADD): New variable.
2056         (libtextstyle.res.lo): New rule.
2057         (libtextstyle_la_LIBADD, libtextstyle_la_DEPENDENCIES): Augment.
2058
2059 2019-03-13  Bruno Haible  <bruno@clisp.org>
2060
2061         libtextstyle: Don't use a C++ compiler.
2062         * libtextstyle/gnulib-local/modules/fd-styled-ostream.diff: New file.
2063         * libtextstyle/gnulib-local/modules/html-styled-ostream.diff: New file.
2064         * libtextstyle/gnulib-local/modules/term-styled-ostream.diff: New file.
2065         * libtextstyle/lib/Makefile.am (libtextstyle_la_LINK): Use the C compiler
2066         always.
2067         * libtextstyle/configure.ac: Remove LT_LANG([C++]), AC_PROG_CXX, and related
2068         invocations.
2069
2070         libasprintf: Add metainformation for Windows.
2071         * gettext-runtime/libasprintf/configure.ac: Set RC and WOE32 variables.
2072         * gettext-runtime/libasprintf/libasprintf.rc: New file.
2073         * gettext-runtime/libasprintf/Makefile.am (EXTRA_DIST): Add it.
2074         (WOE32_LIBADD): New variable.
2075         (libasprintf.res.lo): New rule.
2076         (libasprintf_la_LIBADD, libasprintf_la_DEPENDENCIES): New variables.
2077
2078         build: Update Windows support.
2079         * gettext-runtime/intl/libintl.rc: Update.
2080         * gettext-tools/libgettextpo/libgettextpo.rc: Likewise.
2081         * windows/gettext.rc: Likewise.
2082
2083         libtextstyle: Bump version number.
2084
2085 2019-03-12  Bruno Haible  <bruno@clisp.org>
2086
2087         libtextstyle: Bump version number.
2088
2089         libtextstyle: New function styled_ostream_flush_to_current_style.
2090         * gnulib-local/lib/styled-ostream.oo.h (struct styled_ostream): Add method
2091         flush_to_current_style.
2092         * gnulib-local/lib/fd-styled-ostream.oo.c
2093         (fd_styled_ostream::flush_to_current_style): New method.
2094         * gnulib-local/lib/term-styled-ostream.oo.c
2095         (term_styled_ostream::flush_to_current_style): New method.
2096         * gnulib-local/lib/html-styled-ostream.oo.c
2097         (html_styled_ostream::flush_to_current_style): New method.
2098         * libtextstyle/lib/textstyle.h (styled_ostream_flush_to_current_style): New
2099         declaration.
2100         * libtextstyle/doc/libtextstyle.texi (The styled_ostream class): Document
2101         styled_ostream_flush_to_current_style.
2102         * libtextstyle/NEWS: Mention the change.
2103
2104         libtextstyle: New function html_ostream_flush_to_current_style.
2105         * gnulib-local/lib/html-ostream.oo.h (struct html_ostream): Add method
2106         flush_to_current_style.
2107         * gnulib-local/lib/html-ostream.oo.c (html_ostream::flush_to_current_style): New
2108         method.
2109         * libtextstyle/lib/textstyle.h (html_ostream_flush_to_current_style): New
2110         declaration.
2111         * libtextstyle/doc/libtextstyle.texi (The html_ostream class): Document
2112         html_ostream_flush_to_current_style.
2113         * libtextstyle/NEWS: Mention the change.
2114
2115         libtextstyle: New function term_ostream_flush_to_current_style.
2116         * gnulib-local/lib/term-ostream.oo.h (struct term_ostream): Add method
2117         flush_to_current_style.
2118         * gnulib-local/lib/term-ostream.oo.c (struct term_ostream): Add fields
2119         default_attr, active_attr, non_default_active.
2120         (out_attr_change): Remove second argument. Update active_attr.
2121         (activate_non_default_attr, deactivate_non_default_attr, activate_default_attr):
2122         New functions, extracted from output_buffer.
2123         (output_buffer): Use them. Add a second argument.
2124         (term_ostream::write_mem, term_ostream::flush): Update output_buffer calls.
2125         (term_ostream::free): Add an assertion.
2126         (term_ostream::flush_to_current_style): New method.
2127         (term_ostream_create): Initialize the fields default_attr, active_attr,
2128         non_default_active.
2129         * libtextstyle/lib/textstyle.h (term_ostream_flush_to_current_style): New
2130         declaration.
2131         * libtextstyle/doc/libtextstyle.texi (The term_ostream class): Document
2132         term_ostream_flush_to_current_style.
2133         * libtextstyle/NEWS: Mention the change.
2134
2135 2019-03-12  Bruno Haible  <bruno@clisp.org>
2136
2137         libtextstyle: Add a second argument to the 'flush' operations.
2138         * gnulib-local/lib/ostream.oo.h (ostream_flush_scope_t): New type.
2139         (ostream::flush): Add scope parameter.
2140
2141         * gnulib-local/lib/file-ostream.oo.c: Include <unistd.h>, <termios.h>.
2142         (file_ostream::flush): Add a scope parameter.
2143         * gnulib-local/modules/file-ostream (Depends-on): Add 'fsync'.
2144         (configure.ac): Check for tcdrain.
2145
2146         * gnulib-local/lib/fd-ostream.oo.c: Include <unistd.h>, <termios.h>.
2147         (fd_ostream::flush): Add a scope parameter.
2148         (fd_ostream::free): Update flush call.
2149         * gnulib-local/modules/fd-ostream (Depends-on): Add 'fsync'.
2150         (configure.ac): Check for tcdrain.
2151
2152         * gnulib-local/lib/term-ostream.oo.c: Include <unistd.h>, <termios.h>.
2153         (term_ostream::flush): Add scope parameter.
2154         (term_ostream::free): Update flush call.
2155         * gnulib-local/m4/term-ostream.m4 (gl_TERM_OSTREAM): Check for tcdrain.
2156         * gnulib-local/modules/term-ostream (Depends-on): Add 'fsync'.
2157
2158         * gnulib-local/lib/memory-ostream.oo.c (memory_ostream::flush): Add scope
2159         parameter.
2160
2161         * gnulib-local/lib/iconv-ostream.oo.c (iconv_ostream::flush): Add scope
2162         parameter.
2163
2164         * gnulib-local/lib/html-ostream.oo.c (html_ostream::flush): Add scope parameter.
2165         Emit closing </span> tags.
2166
2167         * gnulib-local/lib/fd-styled-ostream.oo.c (fd_styled_ostream::flush): Add scope
2168         parameter.
2169         * gnulib-local/lib/term-styled-ostream.oo.c (term_styled_ostream::flush): Add
2170         scope parameter.
2171         * gnulib-local/lib/html-styled-ostream.oo.c (html_styled_ostream::flush): Add
2172         scope parameter.
2173
2174         * libtextstyle/lib/textstyle.h (ostream_flush_scope_t): New type.
2175         (ostream_flush, styled_ostream_flush, file_ostream_flush, fd_ostream_flush,
2176         term_ostream_flush, memory_ostream_flush, iconv_ostream_flush,
2177         html_ostream_flush, term_styled_ostream_flush, html_styled_ostream_flush): Add
2178         scope parameter.
2179         * libtextstyle/doc/libtextstyle.texi (The ostream class): Add scope parameter to
2180         flush method.
2181         * libtextstyle/NEWS: Mention the change.
2182
2183 2019-03-11  Bruno Haible  <bruno@clisp.org>
2184
2185         libtextstyle: Add a program for ad-hoc testing.
2186         * libtextstyle/adhoc-tests/README: New file.
2187         * libtextstyle/adhoc-tests/hello.c: New file, based on
2188         libtextstyle/examples/color-hello/hello.c.
2189         * libtextstyle/adhoc-tests/hello-default.css: New file, copied from
2190         libtextstyle/examples/color-hello/hello-default.css.
2191         * libtextstyle/adhoc-tests/Makefile.am: New file.
2192         * libtextstyle/configure.ac (AC_CONFIG_FILES): Add adhoc-tests/Makefile.
2193         * libtextstyle/Makefile.am (SUBDIRS): Add adhoc-tests.
2194
2195         doc: Clarify locale name syntax.
2196         * gettext-tools/doc/gettext.texi (Locale Names): Fix typo in locale name syntax.
2197         * gettext-tools/doc/msginit.texi: Clarify that the '-l' argument optionally
2198         contains an encoding.
2199         * gettext-tools/src/msginit.c (usage): Likewise.
2200
2201 2019-03-10  Bruno Haible  <bruno@clisp.org>
2202
2203         doc: Add reference to Pology.
2204         * gettext-tools/doc/gettext.texi (Other tools): New section.
2205
2206 2019-03-04  Bruno Haible  <bruno@clisp.org>
2207
2208         build: Make shared library dependencies work in relocatable installation.
2209         * gettext-tools/gnulib-lib/Makefile.am (RELOCATABLE_LIBRARY_PATH): New variable.
2210         (libgettextlib_la_LDFLAGS): Augment for relocatable installation.
2211         * gettext-tools/src/Makefile.am (libgettextsrc_la_LDFLAGS): Augment for
2212         relocatable installation.
2213         * gettext-tools/libgettextpo/Makefile.am (RELOCATABLE_LIBRARY_PATH): New
2214         variable.
2215         (libgettextpo_la_LDFLAGS): Augment for relocatable installation.
2216
2217         Update after gnulib changed.
2218
2219         Update to newest gnulib.
2220
2221 2019-02-24  Bruno Haible  <bruno@clisp.org>
2222
2223         libintl: Fix installation with BSD 'make'.
2224         * gettext-runtime/intl/Makefile.am (install-exec-libintl): Create destination
2225         directory first.
2226
2227 2019-02-16  Bruno Haible  <bruno@clisp.org>
2228
2229         libtextstyle: Improve the way the library is built.
2230         * libtextstyle/lib/Makefile.am (libtextstyle_la_LDFLAGS): Add '-no-undefined',
2231         needed for building on older versions of AIX and useful to verify no undefined
2232         symbols are used by mistake. Add '-export-symbols', to reduce the loading time
2233         of the shared library.
2234
2235 2019-02-15  Daiki Ueno  <ueno@gnu.org>
2236
2237         its: Avoid uninitialized variable
2238         * gettext-tools/src/its.c (normalize_whitespace): Initialize last_ws.
2239         Fixes commit 89e7d2663bd27b8cdd300f26095f49d2c7519030.
2240
2241 2019-02-15  Bruno Haible  <bruno@clisp.org>
2242
2243         libtextstyle: Omit tests that rely on more than the public libtextstyle API.
2244         * libtextstyle/autogen.sh: Don't pass --with-tests to gnulib-tool.
2245         (GNULIB_MODULES): Add term-ostream-tests.
2246         * gnulib-local/modules/term-ostream-tests (Makefile.am): Don't add
2247         @INTL_MACOSX_LIBS@ to test_term_ostream_LDADD.
2248         * gettext-tools/gnulib-tests/Makefile.am (test_term_ostream_LDADD): Add
2249         @INTL_MACOSX_LIBS@ here.
2250
2251         libtextstyle: Don't use an external libglib.
2252         * gnulib-local/m4/libglib.m4 (gl_LIBGLIB): Accept an optional FORCE-INCLUDED
2253         argument.
2254         * libtextstyle/gnulib-local/modules/libglib.diff: New file.
2255
2256         libtextstyle: Don't use an external libxml.
2257         * gnulib-local/m4/libxml.m4 (gl_LIBXML): Accept an optional FORCE-INCLUDED
2258         argument.
2259         * libtextstyle/gnulib-local/modules/libxml.diff: New file.
2260
2261         libtextstyle: Don't use an external libcroco.
2262         * gnulib-local/m4/libcroco.m4 (gl_LIBCROCO): Accept an optional FORCE-INCLUDED
2263         argument.
2264         * libtextstyle/gnulib-local/modules/libcroco.diff: New file.
2265         * libtextstyle/autogen.sh: Pass another --local-dir option to gnulib-tool.
2266
2267         libtextstyle: Fix build error on Cygwin and mingw.
2268         * libtextstyle/lib/Makefile.am (AM_CPPFLAGS): Define LIBXML_STATIC.
2269
2270         libtextstyle: Really fix hyperlinks to table of contents in HTML doc.
2271         * libtextstyle/doc/Makefile.am (libunistring_toc.html): Fix typo in last commit.
2272
2273         libtextstyle: Document when and how to turn off styling.
2274         * libtextstyle/doc/libtextstyle.texi (Basic use): Document when and how to turn
2275         off styling.
2276         * gnulib-local/lib/term-styled-ostream.oo.c (term_styled_ostream_create): Handle
2277         a NULL css_filename explicitly.
2278
2279 2019-02-15  Daiki Ueno  <ueno@gnu.org>
2280
2281         its: Add new preserveSpaceRule "paragraph"
2282         This implements a new text extraction rule preserving paragraph
2283         boundaries, as mentioned in:
2284         https://gitlab.gnome.org/GNOME/glib/issues/1350
2285
2286         * gettext-tools/doc/gettext.texi (Preparing ITS Rules): Mention "paragraph".
2287         * gettext-tools/src/its.c (its_rule_list_extract_text): Accept "paragraph".
2288         (its_merge_context_merge_node): Likewise.
2289         (normalize_whitespace): Handle "paragraph" rule.
2290         * gettext-tools/src/its.h (ITS_WHITESPACE_NORMALIZE_PARAGRAPH): New enum value.
2291         * gettext-tools/tests/xgettext-its-1: Add test for "paragraph" rule.
2292
2293 2019-02-15  Daiki Ueno  <ueno@gnu.org>
2294
2295         its: Make whitespace normalization logic simpler
2296         * gettext-tools/src/its.c (normalize_whitespace): Use parallel
2297         pointers for normalizing whitespaces, instead of memmove.
2298         Suggested by Bruno Haible.
2299
2300 2019-02-14  Bruno Haible  <bruno@clisp.org>
2301
2302         libtextstyle: In the examples, actually respect the --color option.
2303         Reported by Akim Demaille <akim.demaille@gmail.com>.
2304
2305         * libtextstyle/examples/color-filter/filter.c (main): Set style_file_name to
2306         NULL when styling should be disabled.
2307         * libtextstyle/examples/color-hello/hello.c (main): Likewise.
2308
2309 2019-02-14  Bruno Haible  <bruno@clisp.org>
2310
2311         libtextstyle: Assume that the texinfo sources are in the source dir.
2312         * libtextstyle/doc/Makefile.am (stamp-vti, libtextstyle.html,
2313         libtextstyle_toc.html): Lookup libunistring.texi in $(srcdir).
2314
2315 2019-02-14  Bruno Haible  <bruno@clisp.org>
2316
2317         libtextstyle: Fix hyperlinks to table of contents in HTML doc.
2318         Reported by Akim Demaille <akim.demaille@gmail.com>.
2319
2320         * libtextstyle/doc/Makefile.am (libunistring_toc.html): Replace references to
2321         libtextstyle.html with references to libtextstyle_toc.html.
2322
2323 2019-02-14  Bruno Haible  <bruno@clisp.org>
2324
2325         libtextstyle: Document the link options more precisely.
2326         * libtextstyle/doc/libtextstyle.texi (Link options): Document the link
2327         dependencies.
2328
2329         libtextstyle: Fix build failure on mingw.
2330         * gnulib-local/modules/html-styled-ostream (Depends-on): Add 'close'.
2331
2332         libtextstyle: Add support for VPATH builds with OpenBSD 'make'.
2333         * gnulib-local/modules/*ostream (Makefile.am): In the rules that use moopp,
2334         prefix the target file names with '$(srcdir)/'.
2335
2336 2019-02-13  Bruno Haible  <bruno@clisp.org>
2337
2338         libtextstyle: Put the .sym file in the source directory.
2339         * libtextstyle/lib/Makefile.am (libtextstyle.sym): Generate in the source
2340         directory.
2341         (config.h): Update rule.
2342
2343 2019-02-12  Bruno Haible  <bruno@clisp.org>
2344
2345         libtextstyle: Fix configuration of the example programs.
2346         Reported by Akim Demaille <akim.demaille@gmail.com>.
2347
2348         * libtextstyle/Makefile.am (EXTRA_DIST): Add m4/libtextstyle.m4.
2349
2350 2019-02-12  Bruno Haible  <bruno@clisp.org>
2351
2352         libtextstyle: Bump version number.
2353         * libtextstyle/version.sh (VERSION): Set to 0.6.
2354
2355 2019-02-10  Bruno Haible  <bruno@clisp.org>
2356
2357         libtextstyle: New project.
2358         * libtextstyle/AUTHORS: New file, extracted from gettext/AUTHORS.
2359         * libtextstyle/COPYING: New file, copied from gettext/COPYING.
2360         * libtextstyle/DEPENDENCIES: New file, based on gettext/DEPENDENCIES.
2361         * libtextstyle/HACKING: New file, based on gettext/HACKING.
2362         * libtextstyle/INSTALL: New file, copied from gettext/INSTALL.
2363         * libtextstyle/Makefile.am: New file, based on libunistring/Makefile.am.
2364         * libtextstyle/NEWS: New file.
2365         * libtextstyle/README: New file, based on libunistring/README.
2366         * libtextstyle/autogen.sh: New file, based on libunistring/autogen.sh.
2367         * libtextstyle/configure.ac: New file, based on libunistring/configure.ac.
2368         * libtextstyle/build-aux/texi2html: New file, copied from
2369         libunistring/build-aux/texi2html.
2370         * libtextstyle/doc/Makefile.am: New file, based on libunistring/doc/Makefile.am.
2371         * libtextstyle/doc/fdl.texi: New file, copied from gnulib/doc/fdl.texi.
2372         * libtextstyle/doc/gpl.texi: New file, copied from gnulib/doc/gpl-3.0.texi.
2373         * libtextstyle/doc/libtextstyle.texi: New file, partially based on
2374         gettext/gettext-tools/doc/gettext.texi.
2375         * libtextstyle/examples/color-filter/INSTALL: New file, based on
2376         gettext/gettext-tools/examples/hello-c/INSTALL.
2377         * libtextstyle/examples/color-filter/Makefile.am: New file, based on
2378         gettext/gettext-tools/examples/hello-c/Makefile.am.
2379         * libtextstyle/examples/color-filter/README: New file.
2380         * libtextstyle/examples/color-filter/autoclean.sh: New file, based on
2381         gettext/gettext-tools/examples/hello-c/autoclean.sh.
2382         * libtextstyle/examples/color-filter/autogen.sh: New file, based on
2383         gettext/gettext-tools/examples/hello-c/autogen.sh.
2384         * libtextstyle/examples/color-filter/configure.ac: New file.
2385         * libtextstyle/examples/color-filter/filter.c: New file.
2386         * libtextstyle/examples/color-filter/filter-default.css: New file.
2387         * libtextstyle/examples/color-hello/INSTALL: New file, based on
2388         gettext/gettext-tools/examples/hello-c/INSTALL.
2389         * libtextstyle/examples/color-hello/Makefile.am: New file, based on
2390         gettext/gettext-tools/examples/hello-c/Makefile.am.
2391         * libtextstyle/examples/color-hello/README: New file.
2392         * libtextstyle/examples/color-hello/autoclean.sh: New file, based on
2393         gettext/gettext-tools/examples/hello-c/autoclean.sh.
2394         * libtextstyle/examples/color-hello/autogen.sh: New file, based on
2395         gettext/gettext-tools/examples/hello-c/autogen.sh.
2396         * libtextstyle/examples/color-hello/configure.ac: New file.
2397         * libtextstyle/examples/color-hello/hello.c: New file.
2398         * libtextstyle/examples/color-hello/hello-default.css: New file.
2399         * libtextstyle/examples/color-hello/names.c: New file.
2400         * libtextstyle/lib/Makefile.am: New file, based on libunistring/lib/Makefile.am.
2401         * libtextstyle/lib/misc.h: New file.
2402         * libtextstyle/lib/misc.c: New file.
2403         * libtextstyle/lib/notinline.h: New file, based on
2404         libunistring/lib/unistring-notinline.h.
2405         * libtextstyle/lib/stdbool.mini.h: New file, based on
2406         libunistring/lib/stdbool.mini.h.
2407         * libtextstyle/lib/textstyle.h: New file, based on
2408         gnulib-local/lib/*ostream.oo.h.
2409         * libtextstyle/lib/textstyle/version.in.h: New file, based on
2410         libunistring/lib/unistring/version.in.h.
2411         * libtextstyle/lib/textstyle/woe32dll.in.h: New file, based on
2412         libunistring/lib/unistring/woe32dll.in.h.
2413         * libtextstyle/lib/version.c: New file, based on libunistring/lib/version.c.
2414         * libtextstyle/m4/init-package-version.m4: New file, copied from
2415         libunistring/m4/init-package-version.m4.
2416         * libtextstyle/tests/Makefile.am: New file, based on
2417         libunistring/tests/Makefile.am.
2418         * libtextstyle/version.sh: New file, based on libunistring/version.sh.
2419         * libtextstyle/woe32dll/c++fd-styled-ostream.cc: New file.
2420         * libtextstyle/woe32dll/c++html-styled-ostream.cc: New file.
2421         * libtextstyle/woe32dll/c++term-styled-ostream.cc: New file.
2422         * gnulib-local/lib/glib/gstring.c (g_string_append_c): In libtextstyle, honor a
2423         macro definition.
2424         * gnulib-local/lib/libxml/elfgcchack.h: In libtextstyle, make this entire file a
2425         no-op.
2426         * gnulib-local/lib/libxml/globals.in.h (docbDefaultSAXHandler,
2427         htmlDefaultSAXHandler, oldXMLWDcompatibility, xmlBufferAllocScheme,
2428         xmlDefaultBufferSize, xmlDefaultSAXHandler, xmlDefaultSAXLocator,
2429         xmlDoValidityCheckingDefaultValue, xmlFree, xmlGenericError, xmlStructuredError,
2430         xmlGenericErrorContext, xmlStructuredErrorContext, xmlGetWarningsDefaultValue,
2431         xmlIndentTreeOutput, xmlTreeIndentString, xmlKeepBlanksDefaultValue,
2432         xmlLineNumbersDefaultValue, xmlLoadExtDtdDefaultValue, xmlMalloc,
2433         xmlMallocAtomic, xmlMemStrdup, xmlParserDebugEntities, xmlParserVersion,
2434         xmlPedanticParserDefaultValue, xmlRealloc, xmlSaveNoEmptyTags,
2435         xmlSubstituteEntitiesDefaultValue, xmlRegisterNodeDefaultValue,
2436         xmlDeregisterNodeDefaultValue, xmlLastError,
2437         xmlParserInputBufferCreateFilenameValue, xmlOutputBufferCreateFilenameValue): In
2438         libtextstyle, honor a macro definition.
2439         * gnulib-local/lib/libxml/globals.c (xmlFree, xmlMalloc, xmlMallocAtomic,
2440         xmlMemStrdup, xmlRealloc, docbDefaultSAXHandler, htmlDefaultSAXHandler,
2441         oldXMLWDcompatibility, xmlBufferAllocScheme, xmlDefaultBufferSize,
2442         xmlDefaultSAXHandler, xmlDefaultSAXLocator, xmlDoValidityCheckingDefaultValue,
2443         xmlGenericError, xmlStructuredError, xmlGenericErrorContext,
2444         xmlStructuredErrorContext, xmlGetWarningsDefaultValue, xmlIndentTreeOutput,
2445         xmlTreeIndentString, xmlKeepBlanksDefaultValue, xmlLineNumbersDefaultValue,
2446         xmlLoadExtDtdDefaultValue, xmlParserDebugEntities, xmlParserVersion,
2447         xmlPedanticParserDefaultValue, xmlSaveNoEmptyTags,
2448         xmlSubstituteEntitiesDefaultValue, xmlRegisterNodeDefaultValue,
2449         xmlDeregisterNodeDefaultValue, xmlLastError,
2450         xmlParserInputBufferCreateFilenameValue, xmlOutputBufferCreateFilenameValue):
2451         Likewise.
2452         * gnulib-local/lib/libxml/xmlmemory.c (xmlMalloc): Likewise.
2453
2454         gnulib-local: New module 'fd-styled-ostream'.
2455         * gnulib-local/lib/fd-styled-ostream.oo.h: New file.
2456         * gnulib-local/lib/fd-styled-ostream.oo.c: New file.
2457         * gnulib-local/modules/fd-styled-ostream: New file.
2458         * gnulib-local/Makefile.am (EXTRA_DIST): Add them.
2459
2460         term-ostream: Remove the need for an exit handler.
2461         * gnulib-local/lib/term-ostream.oo.c (output_buffer): Delay the error() call
2462         until the default state has been restored.
2463
2464         term-ostream: Prepare for robustness through signal handling.
2465         * gnulib-local/lib/term-ostream.oo.h (ttyctl_t): New type.
2466         (term_ostream_create): Add tty_control argument.
2467         * gnulib-local/lib/term-ostream.oo.c (term_ostream_create): Likewise.
2468         * gnulib-local/lib/term-styled-ostream.oo.h: Include term-ostream.h.
2469         (term_styled_ostream_create): Add tty_control argument.
2470         * gnulib-local/lib/term-styled-ostream.oo.c (term_styled_ostream_create):
2471         Likewise.
2472         * gnulib-local/tests/test-term-ostream.c (main): Use TTYCTL_AUTO.
2473         * gettext-tools/src/color.c (print_color_test): Likewise.
2474         * gettext-tools/src/write-catalog.c (msgdomain_list_print): Likewise.
2475
2476         libasprintf: Tweak documentation formatting.
2477         * gettext-runtime/libasprintf/autosprintf.texi: Indent all paragraphs the same
2478         way.
2479
2480         Fix typo in comment.
2481         * gettext-tools/src/color.h (style_file_prepare): Fix typo in comment.
2482
2483         doc: Fix typo.
2484         * gettext-tools/doc/gettext.texi (Styles rules): Fix typo.
2485
2486 2019-02-09  Bruno Haible  <bruno@clisp.org>
2487
2488         Update copyright years.
2489
2490         Remove automatically generated files from version control.
2491
2492         html-styled-ostream: Fix memory leak.
2493         * gnulib-local/lib/html-styled-ostream.oo.c (html_styled_ostream::free): Free
2494         the stream.
2495
2496         html-ostream: Fix memory leak.
2497         * gnulib-local/lib/html-ostream.oo.c: Include minmax.h.
2498         (verify_invariants, shrink_class_stack): New functions.
2499         (emit_pending_spans): Use them.
2500         (html_ostream::write_mem): Shrink class stack during newline processing.
2501         (html_ostream::free, html_ostream::begin_span): Verify invariants.
2502         (html_ostream::end_span): Likewise. Shrink class stack.
2503         * gnulib-local/modules/html-ostream (Depends-on): Add 'minmax'.
2504
2505 2019-02-08  Bruno Haible  <bruno@clisp.org>
2506
2507         examples: Fix build failure when building from git (regression from 2018-10-23).
2508         * gettext-tools/examples/po/xsmallpot.sh: Build less of 'hello-pascal'.
2509
2510         color: Make color.c package-neutral.
2511         * gettext-tools/src/color.h (style_file_prepare): Add arguments.
2512         * gettext-tools/src/color.c: Don't include relocatable.h.
2513         (style_file_lookup): Add stylesdir_after_install argument.
2514         (style_file_prepare): Add arguments.
2515         * gettext-tools/src/write-catalog.c: Include relocatable.h.
2516         (GETTEXTSTYLESDIR): New macro.
2517         (msgdomain_list_print): Update style_file_prepare calls.
2518         * gettext-tools/tests/init-env.in (GETTEXTSTYLESDIR): New environment variable.
2519
2520         term-ostream: Accommodate a shell that is not in /bin/sh.
2521         * gnulib-local/tests/test-term-ostream-xterm.sh: Renamed from
2522         gnulib-local/tests/test-term-ostream-xterm.
2523         * gnulib-local/modules/term-ostream-tests (Files, Makefile.am): Update
2524         accordingly.
2525         * gnulib-local/Makefile.am (EXTRA_DIST): Likewise.
2526
2527         libglib: Fix list of files to clean.
2528         * gnulib-local/modules/libglib (MOSTLYCLEANFILES): Add glib.h-t, glibconfig.h-t.
2529
2530         build: Code style.
2531         * autogen.sh: Make it clear that 'touch config.h.in' is tied to autoheader.
2532
2533 2019-02-05  Bruno Haible  <bruno@clisp.org>
2534
2535         Remove left-over empty directories in 'make distclean'.
2536         * gettext-tools/gnulib-tests/Makefile.am (distclean-local): New target.
2537
2538 2019-02-04  Bruno Haible  <bruno@clisp.org>
2539
2540         Fix copyright years.
2541
2542 2019-01-25  Bruno Haible  <bruno@clisp.org>
2543
2544         doc: Mention --color=test in the description of the --color option.
2545         Reported by Nathaniel M. Beaver <nathanielmbeaver@gmail.com>
2546         in <https://savannah.gnu.org/bugs/?55573>.
2547
2548         * gettext-tools/doc/gettext.texi (Colorizing): Mention that the --color and
2549         --style options are applicable to many programs.
2550         (The --color option): Mention the 'test' value.
2551
2552 2019-01-21  Bruno Haible  <bruno@clisp.org>
2553
2554         msginit: Update for current shape of Translation Project.
2555         Reported by Karl Ove Hufthammer <karl@huftis.org>
2556         in <https://lists.gnu.org/archive/html/bug-gettext/2019-01/msg00014.html>.
2557
2558         * gettext-tools/projects/TP/teams.html: Fetched from teams.url.
2559         * gettext-tools/projects/TP/team-address: Update sed expressions for current
2560         structure of teams page.
2561
2562 2019-01-06  Bruno Haible  <bruno@clisp.org>
2563
2564         Make cldr-plurals program more robust.
2565         * gettext-tools/src/cldr-plurals.c: Include closeout.h.
2566         (main): Arrange to invoke close_stdout at program exit.
2567
2568         Assume setlocale function.
2569         * gettext-runtime/src/envsubst.c (main): Assume setlocale exists.
2570         * gettext-runtime/src/gettext.c (main): Likewise.
2571         * gettext-runtime/src/ngettext.c (main): Likewise.
2572         * gettext-tools/src/cldr-plurals.c (main): Likewise.
2573         * gettext-tools/src/hostname.c (main): Likewise.
2574         * gettext-tools/src/msgattrib.c (main): Likewise.
2575         * gettext-tools/src/msgcat.c (main): Likewise.
2576         * gettext-tools/src/msgcmp.c (main): Likewise.
2577         * gettext-tools/src/msgcomm.c (main): Likewise.
2578         * gettext-tools/src/msgconv.c (main): Likewise.
2579         * gettext-tools/src/msgen.c (main): Likewise.
2580         * gettext-tools/src/msgexec.c (main): Likewise.
2581         * gettext-tools/src/msgfilter.c (main): Likewise.
2582         * gettext-tools/src/msgfmt.c (main): Likewise.
2583         * gettext-tools/src/msggrep.c (main): Likewise.
2584         * gettext-tools/src/msginit.c (main, canonical_locale_charset, get_title):
2585         Likewise.
2586         * gettext-tools/src/msgmerge.c (main): Likewise.
2587         * gettext-tools/src/msgunfmt.c (main): Likewise.
2588         * gettext-tools/src/msguniq.c (main): Likewise.
2589         * gettext-tools/src/recode-sr-latin.c (main): Likewise.
2590         * gettext-tools/src/urlget.c (main): Likewise.
2591         * gettext-tools/src/xgettext.c (main): Likewise.
2592         * gettext-tools/tests/testlocale.c (main): Likewise.
2593         * gettext-tools/tests/tstgettext.c (main): Likewise.
2594         * gettext-tools/tests/tstngettext.c (main): Likewise.
2595         * gettext-runtime/m4/intl.m4 (AM_INTL_SUBDIR): Don't test whether setlocale
2596         exists.
2597
2598         Update after gnulib changed.
2599
2600         Update to newest gnulib.
2601
2602 2018-12-17  Bruno Haible  <bruno@clisp.org>
2603
2604         Fix compilation error on HP-UX with gcc.
2605         * gnulib-local/lib/libxml/trionan.c: Include <float.h>.
2606
2607 2018-12-16  Bruno Haible  <bruno@clisp.org>
2608
2609         Add comment regarding HP-UX cc in C99 mode.
2610         * gnulib-local/lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Update
2611         comment.
2612
2613 2018-11-25  Bruno Haible  <bruno@clisp.org>
2614
2615         intl: Really uninstall the intl/ subdir sources.
2616         * gettext-runtime/intl/Makefile.am (uninstall-sources): New target.
2617
2618         Fix compilation error (regression from today).
2619         * autogen.sh (GNULIB_MODULES_RUNTIME_FOR_SRC): Add 'unistd'.
2620         * gettext-runtime/src/envsubst.c: Include <unistd.h>.
2621
2622         build: Use Automake in intl subdirectory.
2623         * gettext-runtime/intl/Makefile.am: New file, based on
2624         gettext-runtime/intl/Makefile.in.
2625         * gettext-runtime/intl/Makefile.in: Remove file.
2626         * autogen.sh: Copy gettext-runtime/intl/Makefile.am to
2627         gettext-tools/intl/Makefile.am.
2628         * gettext-runtime/configure.ac (USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL,
2629         PACKAGE_IS_GETTEXT_TOOLS, PRELOADABLE_LIBINTL): New conditionals.
2630         * gettext-tools/configure.ac: Likewise.
2631
2632         build: Stop generating a VERSION file.
2633         * gettext-tools/configure.ac: Don't create intl/VERSION.
2634         * gettext-runtime/intl/Makefile.in (DISTFILES.normal): Remove variable.
2635         (distclean): Simplify accordingly.
2636
2637         build: Remove some duplicate .m4 files.
2638         * autogen.sh: Copy wchar_t.m4 and wint_t.m4 for libasprintf.
2639         * gettext-runtime/m4/codeset.m4: Remove file.
2640         * gettext-runtime/m4/extern-inline.m4: Remove file.
2641         * gettext-runtime/m4/intl-thread-locale.m4: Remove file.
2642         * gettext-runtime/m4/lcmessage.m4: Remove file.
2643         * gettext-runtime/m4/lock.m4: Remove file.
2644         * gettext-runtime/m4/longlong.m4: Remove file.
2645         * gettext-runtime/m4/threadlib.m4: Remove file.
2646         * gettext-runtime/m4/wchar_t.m4: Remove file.
2647         * gettext-runtime/m4/wint_t.m4: Remove file.
2648         * gettext-runtime/m4/Makefile.am (EXTRA_DIST): Don't distribute them.
2649         * Makefile.am (distcheck-hook): Don't verify that they are identical copies.
2650
2651         build: Fix #line statements in bison-generated files.
2652         * gettext-tools/src/plural-exp.c: Revert changes from 2014-12-03 and 2014-12-04.
2653         * gettext-runtime/intl/Makefile.in (PLURAL_OBJECT): Remove variable.
2654         (OBJECTS): Use plural.lo always.
2655         ($(srcdir)/plural.c): New rule.
2656         (.y.c, pluralx.c, pluralx.lo): Remove rules.
2657         (mostlyclean): Delete the temporary file of the plural.c rule.
2658         (maintainer-clean): Delete plural.c.
2659         * gettext-tools/configure.ac (intl/Makefile): Remove PLURAL_OBJECT hack.
2660
2661         build: Fix #line statements in bison-generated files.
2662         * gettext-tools/src/Makefile.am (po-gram-gen.c, cldr-plural.c): Override the
2663         Automake .y.c rule.
2664         (po-gram-gen.h, cldr-plural.h): Remove separate target.
2665         (po-gram-gen2.h): Generate in the source directory.
2666
2667         maint: Add write-up of how to do code coverage.
2668
2669 2018-11-25  Bruno Haible  <bruno@clisp.org>
2670
2671         libasprintf: On mingw, really use our vasprintf function, not mingw_vasprintf.
2672         mingw now has a definition of 'vasprintf' in <stdio.h> that redirects to
2673         mingw_vasprintf, which does not support argument reordering (i.e.
2674         HAVE_POSIX_PRINTF is not defined). Make sure to avoid this function and use
2675         the one defined in our lib-asprintf.c instead.
2676
2677         * gettext-runtime/libasprintf/lib-asprintf.h (asprintf): Define as macro
2678         redirecting to libasprintf_asprintf.
2679         (vasprintf): Define as macro redirecting to libasprintf_vasprintf.
2680         * gettext-runtime/libasprintf/lib-asprintf.c: Define also libasprintf_asprintf
2681         and libasprintf_vasprintf.
2682         * gettext-runtime/libasprintf/autosprintf.cc: Include lib-asprintf.h last.
2683
2684 2018-11-25  Bruno Haible  <bruno@clisp.org>
2685
2686         msginit: Add comment about test failure on native Windows.
2687         * gettext-tools/tests/msginit-3: Add comment.
2688
2689         msginit: On native Windows, produce same PO header as on Unix.
2690         * gettext-tools/src/msginit.c (plural_forms): Eliminate a trailing CR.
2691
2692         envsubst: On native Windows, produce output suitable for the shell.
2693         * autogen.sh (GNULIB_MODULES_RUNTIME_FOR_SRC): Add 'binary-io'.
2694         * gettext-runtime/src/envsubst.c (main): In --variables mode, put stdout in
2695         binary mode.
2696
2697         Fix some mingw test failures.
2698         * gettext-tools/tests/intl-1: Ignore different end-of-line convention in the
2699         output.
2700         * gettext-tools/tests/intl-2: Likewise.
2701         * gettext-tools/tests/intl-3: Likewise.
2702         * gettext-tools/tests/msgfmt-desktop-1: Likewise.
2703         * gettext-tools/tests/msgfmt-desktop-2: Likewise.
2704         * gettext-tools/tests/sentence-1: Likewise.
2705         * gettext-tools/tests/cldr-plurals-1: Likewise.
2706         * gettext-tools/tests/lang-c: On native Windows, ignore different end-of-line
2707         convention in the output.
2708         * gettext-tools/tests/lang-c++: Likewise.
2709         * gettext-tools/tests/msgfilter-8: On native Windows, use sh, not /bin/sh.
2710
2711         Fix some mingw test failures.
2712         * gettext-tools/tests/init-env.in (wabs_srcdir, wabs_top_srcdir): New variables.
2713         (GETTEXTDATADIR): On mingw, use native Windows syntax.
2714         * gettext-tools/tests/format-c-3: Use wabs_srcdir instead of abs_srcdir, and
2715         wabs_top_srcdir instead of abs_top_srcdir.
2716         * gettext-tools/tests/format-c-4: Likewise.
2717         * gettext-tools/tests/format-c-5: Likewise.
2718         * gettext-tools/tests/gettextpo-1: Likewise.
2719         * gettext-tools/tests/intl-1: Likewise.
2720         * gettext-tools/tests/intl-2: Likewise.
2721         * gettext-tools/tests/intl-3: Likewise.
2722         * gettext-tools/tests/intl-4: Likewise.
2723         * gettext-tools/tests/intl-setlocale-1: Likewise.
2724         * gettext-tools/tests/intl-setlocale-2: Likewise.
2725         * gettext-tools/tests/intl-thread-1: Likewise.
2726         * gettext-tools/tests/intl-thread-2: Likewise.
2727         * gettext-tools/tests/intl-thread-3: Likewise.
2728         * gettext-tools/tests/msgfmt-qt-1: Likewise.
2729         * gettext-tools/tests/msgfmt-qt-2: Likewise.
2730         * gettext-tools/tests/msginit-3: Likewise.
2731         * gettext-tools/tests/msginit-4: Likewise.
2732         * gettext-tools/tests/msgmerge-compendium-5: Likewise.
2733         * gettext-tools/tests/msgmerge-compendium-6: Likewise.
2734         * gettext-tools/tests/msgunfmt-3: Likewise.
2735         * gettext-tools/tests/msgunfmt-tcl-1: Likewise.
2736         * gettext-tools/tests/msguniq-1: Likewise.
2737         * gettext-tools/tests/msguniq-2: Likewise.
2738         * gettext-tools/tests/msguniq-3: Likewise.
2739         * gettext-tools/tests/msguniq-4: Likewise.
2740         * gettext-tools/tests/plural-1: Likewise.
2741         * gettext-tools/tests/xgettext-1: Likewise.
2742         * gettext-tools/tests/xgettext-c-1: Likewise.
2743         * gettext-tools/tests/xgettext-c-comment-6: Likewise.
2744         * gettext-tools/tests/xgettext-c-escape-3: Likewise.
2745         * gettext-tools/tests/xgettext-vala-2: Likewise.
2746
2747         intl: Fix gettext test failures on mingw.
2748         * gettext-runtime/intl/localename.c (gl_locale_name_posix): Convert the result
2749         of gl_locale_name_environ to XPG syntax.
2750
2751         Update to newest gnulib.
2752
2753         Fix typo in comment.
2754         * gettext-tools/src/msgexec.c (process_string): Fix typo in comment.
2755
2756         Fix typos in tests.
2757         * gettext-tools/tests/msgfmt-desktop-1: Fix reference to MSGFMT variable.
2758         * gettext-tools/tests/msgfmt-desktop-2: Likewise.
2759         * gettext-tools/tests/msgfmt-xml-1: Likewise.
2760         * gettext-tools/tests/msgfmt-xml-2: Likewise.
2761
2762 2018-11-25  Bruno Haible  <bruno@clisp.org>
2763
2764         build: Remove generated files from version control.
2765         This creates a bootstrapping issue, but it can be mitigated:
2766         If a user wants to build GNU gettext on a platform which does not have the
2767         GNU gettext programs installed, they first need to build and install a tarball
2768         of GNU gettext; then only they can build GNU gettext from the git repository.
2769
2770         * gettext-runtime/po/gettext-runtime.pot: Remove file.
2771         * gettext-tools/po/gettext-tools.pot: Remove file.
2772         * gettext-tools/examples/po/gettext-examples.pot: Remove file.
2773
2774 2018-11-25  Bruno Haible  <bruno@clisp.org>
2775
2776         build: Update .gitignore for 2018-05-19 change in gnulib.
2777
2778         build: Update .gitignore for 2018-02-02 change in gnulib.
2779
2780         build: Update .gitignore for 2017-05-01 change in gnulib.
2781
2782         build: Update .gitignore for 2017-03-11 change in gnulib.
2783
2784         build: Update .gitignore for 2017-05-04 change.
2785
2786         build: Fix mistake in .gitignore (from 2016-12-11).
2787
2788         Amend 'Stop installing the intl/ subdir sources.' commit from 2018-11-11.
2789         * gettext-runtime/intl/Makefile.in (install-data, uninstall): Remove the entire
2790         $prefix/share/gettext/intl directory.
2791
2792         Fix compilation error on mingw (regression from 2018-11-04).
2793         * gettext-tools/src/x-appdata.h (SCANNERS_APPDATA): Remove
2794         literalstring_parser initializer.
2795
2796 2018-11-21  Pavel Raiskup  <praiskup@redhat.com>
2797
2798         msgfmt: fix C&P issue
2799         * gettext-tools/src/msgl-check.c (syntax_check_space_ellipsis):
2800         Use 'end' for buffer size computation, instead of NULL 'ellipsis'.
2801
2802         format-kde-kuit: really use fallback markup
2803         * gettext-tools/src/format-kde-kuit.c (format_parse): Use markup.h
2804         methods when FORMAT_KDE_KUIT_USE_FALLBACK_MARKUP is defined.  Also
2805         free buffer if there's no support for XML.
2806
2807 2018-11-18  Bruno Haible  <bruno@clisp.org>
2808
2809         msgmerge must produce output that is stable under msgcat.
2810         Reported by Ludovic Courtès <ludo@gnu.org>
2811         in <https://savannah.gnu.org/bugs/?51027>.
2812
2813         * gettext-tools/src/write-po.c (message_print_obsolete): Preserve the 'no-wrap'
2814         and '*-format' flags.
2815         * gettext-tools/tests/msgmerge-27: New file.
2816         * gettext-tools/tests/msgmerge-28: New file.
2817         * gettext-tools/tests/Makefile.am (TESTS): Add them.
2818         * gettext-tools/tests/msgmerge-19: Update expected result.
2819
2820 2018-11-18  Bruno Haible  <bruno@clisp.org>
2821
2822         gettextize: Give more advice.
2823         * gettext-tools/misc/gettextize.in: Tell the user to remove
2824         AM_GNU_GETTEXT_INTL_SUBDIR invocations.
2825
2826         Simplify Autoconf macros.
2827         * gettext-runtime/m4/intldir.m4: Remove file.
2828         * gettext-runtime/m4/Makefile.am (EXTRA_DIST): Remove intldir.m4.
2829         * gettext-runtime/m4/gettext.m4 (AM_GNU_GETTEXT): Disallow 'no-libtool'
2830         argument. Use libtool always. Remove variables that existed only for backward
2831         compatibility.
2832         * gettext-runtime/m4/intl.m4: Update comments.
2833         * autogen.sh: Ignore gettext.m4 and intl.m4 from gnulib.
2834         * gettext-runtime/intl/Makefile.in: Use libtool always.
2835         (libintl.a, libgnuintl.a): Remove rule.
2836         (.o): Remove suffix rule.
2837         (install-exec, installdirs, uninstall, distclean, dist, distdir): PACKAGE cannot
2838         be anything else than gettext-runtime and gettext-tools any more.
2839         * gettext-tools/configure.ac (intl/Makefile): Update.
2840         * NEWS: Mention that AM_GNU_GETTEXT_INTL_SUBDIR is gone.
2841
2842 2018-11-17  Bruno Haible  <bruno@clisp.org>
2843
2844         Make 'make distcheck' work in a VPATH build.
2845         * Makefile.am (distcheck-hook): Compare files in $(srcdir).
2846         * gettext-tools/examples/po/xsmallpot.sh: Put the resulting POT file in the
2847         source dir, not in the build dir.
2848         * gettext-tools/examples/po/Makefile.am (update-po): Execute sub-make in the
2849         build dir, not in the source dir.
2850         (SMALLPOFILES_FOR_lang): Prefix file names with $(srcdir).
2851         (hello-*/po/*.po): Likewise. Execute mmsmallpo.sh in $(srcdir).
2852
2853 2018-11-11  Bruno Haible  <bruno@clisp.org>
2854
2855         gettextize: Install also host-cpu-c-abi.m4 (needed since 2018-03-24).
2856         * gettext-tools/m4/Makefile.am (aclocal_DATA): Install host-cpu-c-abi.m4.
2857         * PACKAGING: Mention host-cpu-c-abi.m4.
2858         * gettext-tools/misc/gettextize.in (m4filelist): Add host-cpu-c-abi.m4.
2859         * gettext-tools/doc/gettext.texi (aclocal): Mention host-cpu-c-abi.m4.
2860
2861         Update to newest gnulib.
2862
2863         Update packaging instructions.
2864         * PACKAGING: Update file list.
2865
2866         gettextize: Require automake >= 1.9.
2867         * gettext-tools/misc/gettextize.in: Signal an error if 'aclocal' from
2868         automake >= 1.9 is not found. Stop installing intldir.m4, intl.m4 and its
2869         dependencies.
2870         * gettext-tools/doc/gettext.texi (mkinstalldirs, aclocal): State the requirement
2871         to have automake >= 1.9.
2872         * gettext-tools/m4/Makefile.am (aclocal_DATA): Don't install codeset.m4,
2873         extern-inline.m4, fcntl-o.m4, glibc2.m4, glibc21.m4, intdiv0.m4, intl.m4,
2874         intl-thread-locale.m4, intldir.m4, intmax.m4, inttypes_h.m4, inttypes-pri.m4,
2875         lcmessage.m4, lock.m4, longlong.m4, printf-posix.m4, size_max.m4, stdint_h.m4,
2876         threadlib.m4, uintmax_t.m4, visibility.m4, wchar_t.m4, wint_t.m4, xsize.m4.
2877         * PACKAGING: Remove the *.m4 files that are no longer installed.
2878
2879         Stop installing the intl/ subdir sources.
2880         * gettext-runtime/intl/Makefile.in (gettextsrcdir): Remove variable.
2881         (DISTFILES.obsolete): Remove variable.
2882         (install-data): Don't install nor remove anything.
2883         (installdirs): Don't create $(gettextsrcdir).
2884         * gettext-tools/misc/add-to-archive: Don't add the intl directory to the
2885         archive.
2886         * PACKAGING: Remove mention of $prefix/share/gettext/intl/ directory.
2887
2888         gettextize: Remove --intl option.
2889         * gettext-tools/misc/gettextize.in (func_usage): Don't mention --intl option.
2890         Signal an error if the --intl option is specified.
2891         Simplify main code accordingly.
2892         * gettext-tools/doc/gettextize.texi: Remove --intl option description.
2893         * gettext-tools/doc/gettext.texi (Prerequisites): Remove mention of intl/
2894         directory.
2895         (configure.ac): Suggest to use AM_GNU_GETTEXT([external]) always. Remove mention
2896         of intl/ directory.
2897         (config.guess): Suggest them always.
2898         (aclocal): Shrink the list of .m4 files.
2899         (acconfig): Remove subsection.
2900         (config.h.in): Remove mention of intl/ directory.
2901         (Makefile, src/Makefile, lib/gettext.h): Likewise.
2902         (AM_GNU_GETTEXT): First argument must be 'external'. Remove third argument.
2903         (AM_GNU_GETTEXT_INTL_SUBDIR): Remove subsection.
2904         (Language Implementors): Remove mention of intl/ directory. Mention that
2905         Solaris 11 gettext works like GNU gettext.
2906         (Maintainers for other Languages): Remove mention of intl/ directory.
2907         * gettext-tools/doc/autopoint.texi: Update explanation of name.
2908         * NEWS: Mention the change.
2909
2910 2018-11-09  Bruno Haible  <bruno@clisp.org>
2911
2912         xgettext tests: Rename xgettext-c-18 to xgettext-c-6.
2913         * gettext-tools/tests/xgettext-c-6: Renamed from
2914         gettext-tools/tests/xgettext-c-18.
2915         * Makefile.am (TESTS): Update.
2916
2917         xgettext tests: Rename xgettext-c-25 to xgettext-c-5.
2918         * gettext-tools/tests/xgettext-c-5: Renamed from
2919         gettext-tools/tests/xgettext-c-25.
2920         * Makefile.am (TESTS): Update.
2921
2922 2018-11-08  Bruno Haible  <bruno@clisp.org>
2923
2924         xgettext tests: Rename xgettext-c-24 to xgettext-c-comment-6.
2925         * gettext-tools/tests/xgettext-c-comment-6: Renamed from
2926         gettext-tools/tests/xgettext-c-24.
2927         * gettext-tools/tests/xg-c-comment-6.c: Renamed from
2928         gettext-tools/tests/xg-c-24.c.
2929         * Makefile.am (TESTS, EXTRA_DIST): Update.
2930
2931         xgettext tests: Rename xgettext-c-9 to xgettext-c-comment-5.
2932         * gettext-tools/tests/xgettext-c-comment-5: Renamed from
2933         gettext-tools/tests/xgettext-c-9.
2934         * Makefile.am (TESTS): Update.
2935
2936         xgettext tests: Rename xgettext-c-6 to xgettext-c-comment-4.
2937         * gettext-tools/tests/xgettext-c-comment-4: Renamed from
2938         gettext-tools/tests/xgettext-c-6.
2939         * Makefile.am (TESTS): Update.
2940
2941         xgettext tests: Rename xgettext-c-16 to xgettext-c-comment-3.
2942         * gettext-tools/tests/xgettext-c-comment-3: Renamed from
2943         gettext-tools/tests/xgettext-c-16.
2944         * Makefile.am (TESTS): Update.
2945
2946         xgettext tests: Rename xgettext-c-7 to xgettext-c-comment-2.
2947         * gettext-tools/tests/xgettext-c-comment-2: Renamed from
2948         gettext-tools/tests/xgettext-c-7.
2949         * Makefile.am (TESTS): Update.
2950
2951         xgettext tests: Rename xgettext-c-5 to xgettext-c-comment-1.
2952         * gettext-tools/tests/xgettext-c-comment-1: Renamed from
2953         gettext-tools/tests/xgettext-c-5.
2954         * Makefile.am (TESTS): Update.
2955
2956         xgettext tests: Rename xgettext-c-21 to xgettext-c-escape-3.
2957         * gettext-tools/tests/xgettext-c-escape-3: Renamed from
2958         gettext-tools/tests/xgettext-c-21.
2959         * gettext-tools/tests/xg-c-escape-3.c: Renamed from
2960         gettext-tools/tests/xg-c-21.c.
2961         * Makefile.am (TESTS, EXTRA_DIST): Update.
2962
2963         xgettext tests: Rename xgettext-c-23 to xgettext-c-escape-2.
2964         * gettext-tools/tests/xgettext-c-escape-2: Renamed from
2965         gettext-tools/tests/xgettext-c-23.
2966         * Makefile.am (TESTS): Update.
2967
2968         xgettext tests: Rename xgettext-c-19 to xgettext-c-escape-1.
2969         * gettext-tools/tests/xgettext-c-escape-1: Renamed from
2970         gettext-tools/tests/xgettext-c-19.
2971         * Makefile.am (TESTS): Update.
2972
2973         xgettext tests: Rename xgettext-c-14 to xgettext-c-format-5.
2974         * gettext-tools/tests/xgettext-c-format-5: Renamed from
2975         gettext-tools/tests/xgettext-c-14.
2976         * Makefile.am (TESTS): Update.
2977
2978         xgettext tests: Rename xgettext-c-17 to xgettext-c-format-4.
2979         * gettext-tools/tests/xgettext-c-format-4: Renamed from
2980         gettext-tools/tests/xgettext-c-17.
2981         * Makefile.am (TESTS): Update.
2982
2983         xgettext tests: Rename xgettext-c-13 to xgettext-c-format-3.
2984         * gettext-tools/tests/xgettext-c-format-3: Renamed from
2985         gettext-tools/tests/xgettext-c-13.
2986         * Makefile.am (TESTS): Update.
2987
2988         xgettext tests: Rename xgettext-c-8 to xgettext-c-format-2.
2989         * gettext-tools/tests/xgettext-c-format-2: Renamed from
2990         gettext-tools/tests/xgettext-c-8.
2991         * Makefile.am (TESTS): Update.
2992
2993         xgettext tests: Rename xgettext-c-12 to xgettext-c-format-1.
2994         * gettext-tools/tests/xgettext-c-format-1: Renamed from
2995         gettext-tools/tests/xgettext-c-12.
2996         * Makefile.am (TESTS): Update.
2997
2998         xgettext tests: Rename xgettext-c-15 to xgettext-c-ctxt-3.
2999         * gettext-tools/tests/xgettext-c-ctxt-3: Renamed from
3000         gettext-tools/tests/xgettext-c-15.
3001         * Makefile.am (TESTS): Update.
3002
3003         xgettext tests: Rename xgettext-c-11 to xgettext-c-ctxt-2.
3004         * gettext-tools/tests/xgettext-c-ctxt-2: Renamed from
3005         gettext-tools/tests/xgettext-c-11.
3006         * Makefile.am (TESTS): Update.
3007
3008         xgettext tests: Rename xgettext-c-10 to xgettext-c-ctxt-1.
3009         * gettext-tools/tests/xgettext-c-ctxt-1: Renamed from
3010         gettext-tools/tests/xgettext-c-10.
3011         * Makefile.am (TESTS): Update.
3012
3013         xgettext tests: Rename xgettext-c-22 to xgettext-c-c++-2.
3014         * gettext-tools/tests/xgettext-c-c++-2: Renamed from
3015         gettext-tools/tests/xgettext-c-22.
3016         * Makefile.am (TESTS): Update.
3017
3018         xgettext tests: Rename xgettext-c-20 to xgettext-c-c++-1.
3019         * gettext-tools/tests/xgettext-c-c++-1: Renamed from
3020         gettext-tools/tests/xgettext-c-20.
3021         * Makefile.am (TESTS): Update.
3022
3023 2018-11-05  Bruno Haible  <bruno@clisp.org>
3024
3025         xgettext: C: Treat invalid escape sequences like GCC does.
3026         * gettext-tools/src/x-c.c (phase7_getc): For invalid escape sequences "\c",
3027         produce c, not a backslash.
3028
3029         xgettext: Simplify calling convention of arglist_parser_remember.
3030         * gettext-tools/src/xg-arglist-parser.h (struct partial_call): Add
3031         'msgid_comment_is_utf8' field.
3032         (arglist_parser_remember): Add comment_is_utf8 argument.
3033         * gettext-tools/src/xg-arglist-parser.c (arglist_parser_alloc,
3034         arglist_parser_clone): Update.
3035         (arglist_parser_remember): Add comment_is_utf8 argument.
3036         (arglist_parser_done): Pass comment_is_utf8 value down to remember_a_message.
3037         * gettext-tools/src/x-c.c (extract_parenthesized): Update callers. Don't set
3038         xgettext_current_source_encoding around arglist_parser_remember calls.
3039         * gettext-tools/src/x-csharp.c (extract_parenthesized): Likewise.
3040         * gettext-tools/src/x-java.c (extract_parenthesized): Likewise.
3041         * gettext-tools/src/x-javascript.c (extract_balanced): Likewise.
3042         * gettext-tools/src/x-perl.c (extract_balanced): Likewise.
3043         * gettext-tools/src/x-python.c (extract_balanced): Likewise.
3044         * gettext-tools/src/x-vala.c (extract_balanced): Likewise.
3045         * gettext-tools/src/x-awk.c (extract_parenthesized): Update callers.
3046         * gettext-tools/src/x-elisp.c (read_object): Likewise.
3047         * gettext-tools/src/x-librep.c (read_object): Likewise.
3048         * gettext-tools/src/x-lisp.c (read_object): Likewise.
3049         * gettext-tools/src/x-lua.c (extract_balanced): Likewise.
3050         * gettext-tools/src/x-php.c (extract_balanced): Likewise.
3051         * gettext-tools/src/x-scheme.c (read_object): Likewise.
3052         * gettext-tools/src/x-sh.c (read_command): Likewise.
3053         * gettext-tools/src/x-tcl.c (read_command): Likewise.
3054
3055         xgettext: Delay calls to from_current_source_encoding, part 2.
3056         * gettext-tools/src/xg-arglist-parser.h: Include xg-mixed-string.h.
3057         (struct partial_call): Change type of fields msgctxt, msgid, msgid_plural to
3058         'mixed_string_ty *'.
3059         (arglist_parser_remember, arglist_parser_remember_msgctxt): Take a
3060         'mixed_string_ty *' argument instead of a 'char *' argument.
3061         * gettext-tools/src/xg-arglist-parser.c (arglist_parser_clone): Update
3062         accordingly.
3063         (arglist_parser_remember, arglist_parser_remember_msgctxt): Take a
3064         'mixed_string_ty *' argument.
3065         (arglist_parser_done): Convert the mixed_string to UTF-8 encoded 'char *' here.
3066         This is where from_current_source_encoding gets invoked now: immediately before
3067         invoking remember_a_message, that is, only when we really need to know the
3068         --from-source encoding.
3069         * gettext-tools/src/x-c.c (extract_parenthesized): Pass the mixed_string to
3070         arglist_parser_remember. Don't set xgettext_current_source_encoding around
3071         arglist_parser_done calls.
3072         * gettext-tools/src/x-csharp.c (extract_parenthesized): Likewise.
3073         * gettext-tools/src/x-java.c (extract_parenthesized): Likewise.
3074         * gettext-tools/src/x-javascript.c (extract_balanced): Likewise.
3075         * gettext-tools/src/x-python.c (extract_balanced): Likewise.
3076         * gettext-tools/src/x-vala.c (extract_balanced): Likewise.
3077         * gettext-tools/src/x-lisp.c: Include xg-mixed-string.h.
3078         (read_object): Convert the string to a mixed_string_ty before passing it to
3079         arglist_parser_remember.
3080         * gettext-tools/src/x-elisp.c: Likewise.
3081         * gettext-tools/src/x-librep.c: Likewise.
3082         * gettext-tools/src/x-scheme.c: Likewise.
3083         * gettext-tools/src/x-awk.c: Include xg-mixed-string.h.
3084         (extract_parenthesized): Convert the string to a mixed_string_ty before passing
3085         it to arglist_parser_remember.
3086         * gettext-tools/src/x-lua.c: Include xg-mixed-string.h.
3087         (extract_balanced): Convert the string to a mixed_string_ty before passing it to
3088         arglist_parser_remember.
3089         * gettext-tools/src/x-php.c: Include xg-mixed-string.h.
3090         (extract_balanced): Convert the string to a mixed_string_ty before passing it to
3091         arglist_parser_remember.
3092         * gettext-tools/src/x-sh.c: Include xg-mixed-string.h.
3093         (read_command): Convert the string to a mixed_string_ty before passing it to
3094         arglist_parser_remember.
3095         * gettext-tools/src/x-tcl.c: Include xg-mixed-string.h.
3096         (read_command): Convert the string to a mixed_string_ty before passing it to
3097         arglist_parser_remember.
3098         * gettext-tools/src/x-perl.c (extract_balanced): Convert the string to a
3099         mixed_string_ty before passing it to arglist_parser_remember. Don't set
3100         xgettext_current_source_encoding around arglist_parser_done calls.
3101
3102         xgettext: Simplify calling convention of remember_a_message.
3103         * gettext-tools/src/xg-message.h (remember_a_message,
3104         remember_a_message_plural): Add is_utf8, comment_is_utf8 arguments.
3105         * gettext-tools/src/xg-message.c (remember_a_message,
3106         remember_a_message_plural): Likewise.
3107         * gettext-tools/src/xg-arglist-parser.c (arglist_parser_done): Update callers.
3108         * gettext-tools/src/x-awk.c (extract_parenthesized): Likewise.
3109         * gettext-tools/src/x-c.c (extract_parenthesized): Likewise.
3110         * gettext-tools/src/x-csharp.c (extract_parenthesized): Likewise.
3111         * gettext-tools/src/x-desktop.c (extract_desktop_handle_pair): Likewise.
3112         * gettext-tools/src/x-elisp.c (read_object): Likewise.
3113         * gettext-tools/src/x-java.c (extract_parenthesized): Likewise.
3114         * gettext-tools/src/x-javascript.c (extract_balanced): Likewise.
3115         * gettext-tools/src/x-librep.c (read_object): Likewise.
3116         * gettext-tools/src/x-lisp.c (read_object): Likewise.
3117         * gettext-tools/src/x-lua.c (extract_balanced): Likewise.
3118         * gettext-tools/src/x-perl.c (extract_variable, interpolate_keywords,
3119         extract_balanced): Likewise.
3120         * gettext-tools/src/x-php.c (extract_balanced): Likewise.
3121         * gettext-tools/src/x-python.c (extract_balanced): Likewise.
3122         * gettext-tools/src/x-rst.c (extract_rst, extract_rsj): Likewise.
3123         * gettext-tools/src/x-scheme.c (read_object): Likewise.
3124         * gettext-tools/src/x-sh.c (read_word, read_command): Likewise.
3125         * gettext-tools/src/x-smalltalk.c (extract_smalltalk): Likewise.
3126         * gettext-tools/src/x-tcl.c (read_command): Likewise.
3127         * gettext-tools/src/x-vala.c (extract_balanced): Likewise.
3128         * gettext-tools/src/x-ycp.c (extract_parenthesized): Likewise.
3129         * gettext-tools/src/xgettext.c (xgettext_its_extract_callback): Likewise.
3130
3131         xgettext: Delay calls to from_current_source_encoding, part 1.
3132         * xg-mixed-string.h (enum segment_type, struct mixed_string_segment,
3133         struct mixed_string, mixed_string_ty): New types.
3134         (mixed_string_alloc_simple, mixed_string_alloc_utf8, mixed_string_clone,
3135         mixed_string_contents, mixed_string_free, mixed_string_contents_free1,
3136         mixed_string_concat, mixed_string_concat_free1): New declarations.
3137         (struct mixed_string_buffer): Change internal representation to use segments.
3138         (mixed_string_buffer_result): Change return type to 'mixed_string_ty *'.
3139         * xg-mixed-string.c: Include flexmember.h, msgl-ascii.h, po-charset.h.
3140         (segment_alloc, segment_clone, mixed_string_alloc_simple,
3141         mixed_string_alloc_utf8, mixed_string_clone, mixed_string_contents,
3142         mixed_string_free, mixed_string_contents_free1, mixed_string_concat,
3143         mixed_string_concat_free1): New functions.
3144         (mixed_string_buffer_init, mixed_string_buffer_is_empty): Change to match new
3145         internal representation.
3146         (mixed_string_buffer_grow_curr_buffer): New function.
3147         (mixed_string_buffer_grow_utf8_buffer): Remove function.
3148         (mixed_string_buffer_append_to_utf8_buffer): Update accordingly.
3149         (mixed_string_buffer_flush_curr_buffer): Remove function.
3150         (mixed_string_buffer_add_segment, mixed_string_buffer_flush_curr): New
3151         functions.
3152         (mixed_string_buffer_append_char, mixed_string_buffer_append_unicode,
3153         mixed_string_buffer_destroy, mixed_string_buffer_result): Change to match new
3154         internal representation.
3155         * x-c.c (struct token_ty): New field 'mixed_string'.
3156         (free_token): Update accordingly.
3157         (phase5_get, phase6_get, phase8a_get): For tokens of type
3158         token_type_string_literal, use a mixed_string.
3159         (phase8_get): Use mixed_string_concat_free1.
3160         (struct xgettext_token_ty): New field 'mixed_string'.
3161         (x_c_lex, extract_parenthesized): For tokens of type
3162         xgettext_token_type_string_literal, use a mixed_string.
3163         * x-csharp.c (comment_line_end): Update.
3164         (struct token_ty): New field 'mixed_string'.
3165         (free_token): Update accordingly.
3166         (phase6_get): For tokens of type token_type_string_literal, use a mixed_string.
3167         (phase7_get): Use mixed_string_concat_free1.
3168         (extract_parenthesized): For tokens of type token_type_string_literal, use a
3169         mixed_string.
3170         * x-java.c (comment_line_end): Update.
3171         (struct token_ty): New field 'mixed_string'.
3172         (free_token): Update accordingly.
3173         (phase5_get): For tokens of type token_type_string_literal, use a mixed_string.
3174         (phase6_get): Use mixed_string_concat_free1.
3175         (extract_parenthesized): For tokens of type token_type_string_literal, use a
3176         mixed_string.
3177         * x-javascript.c (comment_line_end): Update.
3178         (struct token_ty): New field 'mixed_string'.
3179         (free_token): Update accordingly.
3180         (phase5_get): For tokens of type token_type_string, use a mixed_string.
3181         (x_javascript_lex): Use mixed_string_concat_free1.
3182         (extract_balanced): For tokens of type token_type_string, use a mixed_string.
3183         * x-python.c (comment_line_end): Update.
3184         (struct token_ty): New field 'mixed_string'.
3185         (free_token): Update accordingly.
3186         (phase5_get): For tokens of type token_type_string, use a mixed_string.
3187         (x_python_lex): Use mixed_string_concat_free1.
3188         (extract_balanced): For tokens of type token_type_string, use a mixed_string.
3189         * x-rst.c (extract_rsj): Update.
3190         * x-vala.c (struct token_ty): New field 'mixed_string'.
3191         (free_token): Update accordingly.
3192         (phase3_get): For tokens of type token_type_string_literal, use a mixed_string.
3193         For tokens of type token_type_string_template, fix a memory leak.
3194         (x_vala_lex): Use mixed_string_concat_free1.
3195         (extract_balanced): For tokens of type token_type_string_literal, use a
3196         mixed_string.
3197
3198         xgettext: JavaScript: Make more use of mixed_string_buffer.
3199         * gettext-tools/src/x-javascript.c (struct unicode_string_buffer): Remove type.
3200         (init_unicode_string_buffer, unicode_string_buffer_append_unicode_grow,
3201         unicode_string_buffer_append_unicode, unicode_string_buffer_result,
3202         free_unicode_string_buffer): Remove functions.
3203         (comment_buffer, comment_start, comment_at_start, comment_add,
3204         comment_line_end): Use mixed_string_buffer API.
3205
3206         xgettext: Python: Make more use of mixed_string_buffer.
3207         * gettext-tools/src/x-python.c (struct unicode_string_buffer): Remove type.
3208         (init_unicode_string_buffer, unicode_string_buffer_append_unicode_grow,
3209         unicode_string_buffer_append_unicode, unicode_string_buffer_result,
3210         free_unicode_string_buffer): Remove functions.
3211         (comment_buffer, comment_start, comment_at_start, comment_add,
3212         comment_line_end): Use mixed_string_buffer API.
3213
3214         xgettext: Change the C# extractor to make use of mixed_string_buffer.
3215         * gettext-tools/src/x-csharp.c (struct string_buffer): Remove type.
3216         (init_string_buffer, string_buffer_append_unicode_grow,
3217         string_buffer_append_unicode, string_buffer_result, free_string_buffer): Remove
3218         functions.
3219         (comment_buffer, comment_start, comment_at_start, comment_add,
3220         comment_line_end): Use mixed_string_buffer API.
3221         (phase6_get): Likewise.
3222
3223         xgettext: Optimize away a memory allocation.
3224         * gettext-tools/src/x-c.c (phase5_get): Allocate the mixed_string_buffer on the
3225         stack, not on the heap.
3226         * gettext-tools/src/x-csharp.c (phase6_get): Likewise.
3227         * gettext-tools/src/x-javascript.c (phase5_get): Likewise.
3228         * gettext-tools/src/x-python.c (phase5_get): Likewise.
3229         * gettext-tools/src/x-vala.c (phase3_get): Likewise.
3230         * gettext-tools/src/x-rst.c (stringbuf, parse_string, extract_rsj): Allocate the
3231         mixed_string_buffer statically, not on the heap.
3232         * gettext-tools/src/xg-mixed-string.h (mixed_string_buffer_alloc,
3233         mixed_string_buffer_done): Remove declarations.
3234         * gettext-tools/src/xg-mixed-string.c (mixed_string_buffer_alloc,
3235         mixed_string_buffer_done): Remove functions.
3236
3237         xgettext: Change the Java extractor to make use of mixed_string_buffer.
3238         * gettext-tools/src/xg-mixed-string.h: Include <stdbool.h>.
3239         (mixed_string_buffer_init, mixed_string_buffer_is_empty,
3240         mixed_string_buffer_destroy, mixed_string_buffer_result): New declarations.
3241         * gettext-tools/src/xg-mixed-string.c: Include xg-pos.h.
3242         (mixed_string_buffer_init): New function.
3243         (mixed_string_buffer_alloc): Invoke it.
3244         (mixed_string_buffer_is_empty): New function, based on comment_at_start in
3245         x-java.c.
3246         (mixed_string_buffer_append_lone_surrogate): New function, based on
3247         string_buffer_append_lone_surrogate in x-java.c.
3248         (mixed_string_buffer_flush_utf16_surr, mixed_string_buffer_append_unicode): Use
3249         it.
3250         (mixed_string_buffer_destroy, mixed_string_buffer_result): New functions.
3251         (mixed_string_buffer_done): Invoke mixed_string_buffer_result.
3252         * gettext-tools/src/x-java.c: Include xg-mixed-string.h.
3253         (struct string_buffer): Remove type.
3254         (init_string_buffer, string_buffer_append_byte,
3255         string_buffer_append_unicode_grow, string_buffer_append_unicode,
3256         string_buffer_append_lone_surrogate, string_buffer_flush_utf16_surr,
3257         string_buffer_flush_curr_buffer): Remove functions.
3258         (mixed_string_buffer_append): Renamed from string_buffer_append. Use
3259         mixed_string_buffer.
3260         (string_buffer_result, free_string_buffer): Remove functions.
3261         (comment_buffer, comment_start, comment_at_start, comment_add,
3262         comment_line_end): Use mixed_string_buffer API.
3263         (accumulate_escaped, phase5_get): Likewise.
3264
3265         xgettext: Share some more code among extractors.
3266         * gettext-tools/src/xg-pos.h: New file.
3267         * gettext-tools/src/xg-pos.c: New file.
3268         * gettext-tools/src/Makefile.am (noinst_HEADERS): Add xg-pos.h.
3269         (xgettext_SOURCES): Add xg-pos.c.
3270         * gettext-tools/src/FILES: Update.
3271         * gettext-tools/src/x-awk.c: Include xg-pos.h.
3272         (real_file_name, logical_file_name, line_number): Remove variables.
3273         * gettext-tools/src/x-c.c: Likewise.
3274         * gettext-tools/src/x-csharp.c: Likewise.
3275         * gettext-tools/src/x-elisp.c: Likewise.
3276         * gettext-tools/src/x-java.c: Likewise.
3277         * gettext-tools/src/x-javascript.c: Likewise.
3278         * gettext-tools/src/x-librep.c: Likewise.
3279         * gettext-tools/src/x-lisp.c: Likewise.
3280         * gettext-tools/src/x-lua.c: Likewise.
3281         * gettext-tools/src/x-perl.c: Likewise.
3282         * gettext-tools/src/x-php.c: Likewise.
3283         * gettext-tools/src/x-python.c: Likewise.
3284         * gettext-tools/src/x-rst.c: Likewise.
3285         * gettext-tools/src/x-scheme.c: Likewise.
3286         * gettext-tools/src/x-sh.c: Likewise.
3287         * gettext-tools/src/x-smalltalk.c: Likewise.
3288         * gettext-tools/src/x-tcl.c: Likewise.
3289         * gettext-tools/src/x-vala.c: Likewise.
3290         * gettext-tools/src/x-ycp.c: Likewise.
3291
3292         xgettext: Split source code into smaller files.
3293         * gettext-tools/src/rc-str-list.h: New file, extracted from
3294         gettext-tools/src/xgettext.h.
3295         * gettext-tools/src/xg-encoding.h: Likewise.
3296         * gettext-tools/src/xg-mixed-string.h: Likewise.
3297         * gettext-tools/src/xg-arglist-context.h: Likewise.
3298         * gettext-tools/src/xg-arglist-callshape.h: Likewise.
3299         * gettext-tools/src/xg-arglist-parser.h: Likewise.
3300         * gettext-tools/src/xg-message.h: Likewise.
3301         * gettext-tools/src/xg-encoding.c: New file, extracted from
3302         gettext-tools/src/xgettext.c.
3303         * gettext-tools/src/xg-mixed-string.c: Likewise.
3304         * gettext-tools/src/xg-arglist-context.c: Likewise.
3305         * gettext-tools/src/xg-arglist-callshape.c: Likewise.
3306         * gettext-tools/src/xg-arglist-parser.c: Likewise.
3307         * gettext-tools/src/xg-message.c: Likewise.
3308         * gettext-tools/src/xgettext.h: Remove declarations that moved to rc-str-list.h
3309         and xg-*.h.
3310         (add_all_comments, comment_tag, msgstr_prefix, msgstr_suffix,
3311         default_syntax_check, current_formatstring_parser1,
3312         current_formatstring_parser2, current_formatstring_parser3): New declarations.
3313         (xgettext_comment, xgettext_comment_reset, savable_comment_to_xgettext_comment,
3314         recognize_qt_formatstrings): New declarations.
3315         (substring_match): Remove obsolete declaration.
3316         * gettext-tools/src/xgettext.c: Include xgettext.h first.
3317         Include <iconv.h>, rc-str-list.h, xg-encoding.h, xg-arglist-context.h,
3318         xg-message.h. Don't include xsize.h, po-xerror.h, unistr.h.
3319         (add_all_comments, comment_tag, msgstr_prefix, msgstr_suffix,
3320         default_syntax_check): Make global.
3321         (split_keywordspec, insert_keyword_callshape): Moved to xg-arglist-callshape.c.
3322         (null_context, passthrough_context, inherited_context,
3323         null_context_list_iterator, passthrough_context_circular_list,
3324         passthrough_context_list_iterator, flag_context_list_iterator,
3325         flag_context_list_iterator_advance, flag_context_list_table_lookup): Move to
3326         xg-arglist-context.c.
3327         (flag_context_list_table_insert): Move bulk of body to new function
3328         flag_context_list_table_add in xg-arglist-context.c.
3329         (xgettext_comment, xgettext_comment_reset, savable_comment_to_xgettext_comment):
3330         Make global.
3331         (current_formatstring_parser1, current_formatstring_parser2,
3332         current_formatstring_parser3): Make global.
3333         (non_ascii_error_message, from_current_source_encoding): Move to xg-encoding.c.
3334         (CONVERT_STRING, set_format_flags_from_context, warn_format_string,
3335         remember_a_message, remember_a_message_plural): Move to xg-message.c.
3336         (arglist_parser_alloc, arglist_parser_clone, arglist_parser_remember,
3337         arglist_parser_remember_msgctxt, arglist_parser_decidedp, arglist_parser_done):
3338         Move to xg-arglist-parser.c.
3339         (mixed_string_buffer_alloc, mixed_string_buffer_append_to_curr_buffer,
3340         mixed_string_buffer_grow_utf8_buffer, mixed_string_buffer_append_to_utf8_buffer,
3341         mixed_string_buffer_flush_utf16_surr, mixed_string_buffer_flush_curr_buffer,
3342         mixed_string_buffer_append_char, mixed_string_buffer_append_unicode,
3343         mixed_string_buffer_done): Move to xg-mixed-string.c.
3344         (recognize_qt_formatstrings): New function.
3345         * gettext-tools/src/x-*.h: Include xg-arglist-context.h instead of xgettext.h.
3346         * gettext-tools/src/x-*.c: Update include directives.
3347         * gettext-tools/src/its.h: Likewise.
3348         * gettext-tools/src/Makefile.am (noinst_HEADERS): Add the new .h files.
3349         (xgettext_SOURCES): Add the new .c files.
3350         * gettext-tools/src/FILES: Update.
3351
3352         xgettext: Fix crash when parsing invalid \Uxxxxxxxx escape sequence.
3353         * gettext-tools/src/x-c.c (phase3_pushback): Increase size to 9 characters.
3354
3355         xgettext: Add support for C++11 raw string literals.
3356         * gettext-tools/src/x-c.c (phase5_get): Recognize the R"..." syntax and its variants.
3357         * gettext-tools/tests/xgettext-c-20: Change expected error message.
3358
3359         xgettext: Add support for C11 string literals.
3360         * gettext-tools/src/x-c.c (phase5_get): Recognize the u8"..." syntax.
3361         * gettext-tools/tests/xgettext-c-25: New file.
3362         * gettext-tools/tests/Makefile.am (TESTS): Add it.
3363         * NEWS: Mention the change.
3364
3365         xgettext: Vala: Improve parsing of escape sequences.
3366         * gettext-tools/src/x-vala.c (phase7_getc): Don't recognize \?, \a, \1...\7, \U.
3367         Do recognize \$.
3368         * gettext-tools/tests/xgettext-vala-1: Test \t in verbatim strings literals.
3369         * NEWS: Mention the change.
3370
3371 2018-11-05  Bruno Haible  <bruno@clisp.org>
3372
3373         xgettext: Fix result for concatenation of strings with escape sequences.
3374         Reported by Morten Welinder <mwelinder@gmail.com>
3375         in <https://lists.gnu.org/archive/html/bug-gettext/2015-12/msg00017.html>
3376         and <https://savannah.gnu.org/bugs/?46756>.
3377
3378         Revert commits from
3379         2014-05-07 xgettext: Provide a way to interpret string literals lazily
3380         2014-05-07 c: Interpret string literals lazily
3381         2014-05-09 vala: Interpret string literals lazily
3382         2014-12-02 c: Support C++11 string literals
3383         and subsequent fixes of these.
3384
3385         * gettext-tools/src/xgettext.h (savable_comment_convert_encoding): Remove
3386         declaration.
3387         (enum literalstring_escape_type, struct literalstring_parser): Remove types.
3388         (struct partial_call): Update.
3389         (arglist_parser_remember_literal): Remove declaration.
3390         * gettext-tools/src/xgettext.c (struct extractor_ty): Remove
3391         'literalstring_parser' field.
3392         (savable_comment_convert_encoding): Remove function.
3393         (current_literalstring_parser): Remove variable.
3394         (extract_from_file, arglist_parser_alloc, arglist_parser_clone): Update.
3395         (arglist_parser_remember_literal): Remove function.
3396         (arglist_parser_remember_msgctxt): Simplify accordingly.
3397         * gettext-tools/src/x-*.h (SCANNERS_*): Remove literalstring_parser initializer.
3398         * gettext-tools/src/x-c.h (literalstring_c): Remove declaration.
3399         * gettext-tools/src/x-c.c: Remove all traces of literalstring_escape_type and
3400         literalstring_parser.
3401         (phase7_getc, phase7_ungetc): Reinstantiate functions.
3402         (phase5_get): Simplify. Use phase7_getc.
3403         * gettext-tools/src/x-vala.c: Remove all traces of literalstring_escape_type and
3404         literalstring_parser.
3405         (phase7_getc, phase7_ungetc): Reinstantiate functions.
3406         (phase3_get): Simplify. Use phase7_getc.
3407         (extract_balanced): Simplify.
3408
3409 2018-11-05  Bruno Haible  <bruno@clisp.org>
3410
3411         xgettext: New tests for non-ASCII extracted comments.
3412         * gettext-tools/tests/xgettext-c-24: New file.
3413         * gettext-tools/tests/xg-c-24.c: New file.
3414         * gettext-tools/tests/xgettext-vala-2: New file.
3415         * gettext-tools/tests/xg-vala-2.vala: New file.
3416         * gettext-tools/tests/Makefile.am (TESTS): Add xgettext-c-24, xgettext-vala-2.
3417         (EXTRA_DIST): Add xg-c-24.c, xg-vala-2.vala.
3418
3419         xgettext: Enhance test for NUL byte handling.
3420         * gettext-tools/tests/xg-c-21.c: Add some more test cases.
3421         * gettext-tools/tests/xgettext-c-21: Update expected result accordingly. Change
3422         expected result for backslash-NUL.
3423
3424 2018-11-04  Bruno Haible  <bruno@clisp.org>
3425
3426         xgettext: New test of concatenation of strings with escape sequences.
3427         Reported by Morten Welinder <mwelinder@gmail.com>
3428         in <https://lists.gnu.org/archive/html/bug-gettext/2015-12/msg00017.html>
3429         and <https://savannah.gnu.org/bugs/?46756>.
3430
3431         * gettext-tools/tests/xgettext-c-23: New file.
3432         * gettext-tools/tests/Makefile.am (TESTS): Add it.
3433
3434 2018-11-04  Bruno Haible  <bruno@clisp.org>
3435
3436         xgettext: JavaScript: Fix a memory leak.
3437         * gettext-tools/src/x-javascript.c (free_token): Free tp->string also for
3438         token_type_keyword.
3439
3440         Whitespace changes.
3441         * gettext-tools/src/cldr-plural-exp.h: Add a blank line.
3442         * gettext-tools/src/locating-rule.h: Correct indentation.
3443
3444         Fix test failure with valgrind.
3445         * gettext-tools/tests/msgcmp-4: Filter out valgrind's messages from the output.
3446
3447 2018-10-28  Bruno Haible  <bruno@clisp.org>
3448
3449         Make test files executable.
3450         * gettext-tools/tests/xgettext-c-22: Make executable.
3451         * gettext-tools/tests/xgettext-properties-[234]: Likewise.
3452         * gettext-tools/tests/xgettext-rst-[12]: Likewise.
3453
3454         Make it easier to build the code when the documentation tools don't work.
3455         * gettext-tools/Makefile.am (SUBDIRS): Move 'doc' to the end. Move 'its' to the
3456         middle.
3457
3458         tests: Improve reliability.
3459         * xgettext-3: Verify the exit code of the xgettext invocation.
3460         * xgettext-4: Likewise.
3461         * xgettext-appdata-1: Likewise.
3462         * xgettext-c-19: Likewise.
3463         * xgettext-c-20: Likewise.
3464         * xgettext-c-21: Likewise.
3465         * xgettext-csharp-2: Likewise.
3466         * xgettext-csharp-3: Likewise.
3467         * xgettext-csharp-8: Likewise.
3468         * xgettext-desktop-1: Likewise.
3469         * xgettext-glade-1: Likewise.
3470         * xgettext-glade-6: Likewise.
3471         * xgettext-glade-7: Likewise.
3472         * xgettext-gsettings-1: Likewise.
3473         * xgettext-perl-2: Likewise.
3474         * xgettext-perl-3: Likewise.
3475
3476 2018-10-25  Bruno Haible  <bruno@clisp.org>
3477
3478         po, examples: Change .po -> .gmo rules to consider the newest changes to the POT file.
3479         Reported by Claude Paroz <claude@2xlibre.net>
3480         in <https://savannah.gnu.org/bugs/?50910>.
3481
3482         * gettext-runtime/m4/po.m4 (AM_PO_SUBDIRS): Set MSGMERGE_FOR_MSGFMT_OPTION.
3483         * gettext-runtime/po/Makefile.in.in (MSGMERGE): Use GNU msgmerge, even if not
3484         first in $PATH.
3485         (MSGMERGE_FOR_MSGFMT_OPTION): New variable.
3486         (.po.gmo): Depend on the POT file. Use msgmerge on the fly, to take into
3487         account the most recent POT file changes.
3488         * gettext-tools/examples/hello-*/po/Makefile.am: Likewise, also for the .po.qm,
3489         update-properties, update-classes targets.
3490         * gettext-tools/examples/hello-objc-gnustep/po/GNUmakefile
3491         (MSGMERGE_FOR_MSGFMT_OPTION): New variable.
3492         ($(STRINGSFILES)): Depend on the POT file. Use msgmerge on the fly, to take
3493         into account the most recent POT file changes.
3494
3495 2018-10-25  Bruno Haible  <bruno@clisp.org>
3496
3497         msgmerge: New option --for-msgfmt.
3498         * gettext-tools/src/msgmerge.c (for_msgfmt): New variable.
3499         (long_options): Add option --for-msgfmt.
3500         (main): Handle option --for-msgfmt.
3501         (usage): Document option --for-msgfmt.
3502         (match_domain): When --for-msgfmt is given, omit untranslated and fuzzy messages
3503         from the result.
3504         (merge): When --for-msgfmt is given, don't add obsolete messages to the result.
3505         * gettext-tools/tests/msgmerge-26: New file.
3506         * gettext-tools/tests/Makefile.am (TESTS): Add it.
3507         * gettext-tools/doc/msgmerge.texi: Mention the option --for-msgfmt.
3508         * NEWS: Mention the change.
3509
3510         Add ability to write PO files without translator comment lines.
3511         * gettext-tools/src/write-po.h (message_print_style_comment): New declaration.
3512         * gettext-tools/src/write-po.c (print_comment): New variable.
3513         (message_print_style_comment): New function.
3514         (message_print_comment): Output nothing if print_comment is false.
3515
3516 2018-10-24  Bruno Haible  <bruno@clisp.org>
3517
3518         Improve reliability of 'make dist'.
3519         * gettext-tools/examples/po/Makefile.am (distdir1): Depend on the .pot file.
3520
3521 2018-10-24  Bruno Haible  <bruno@clisp.org>
3522
3523         po, examples: Put stamp-po in the source directory.
3524         Rationale: <https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>.
3525
3526         * gettext-runtime/po/Makefile.in.in: Use $(srcdir)/stamp-po instead of stamp-po.
3527         Talk about "version control system", not CVS.
3528         * gettext-tools/examples/hello-*/po/Makefile.am: Likewise.
3529         * gettext-tools/examples/po/Makefile.am: Likewise.
3530         * gettext-tools/examples/check-examples (func_check_dist_vpath): Verify the
3531         stamp-po file does not exist in the build dir, except when using the older
3532         Makefile.in.in infrastructure.
3533
3534 2018-10-24  Bruno Haible  <bruno@clisp.org>
3535
3536         po: Make "make maintainer-clean" erase the .pot file.
3537         Rationale:
3538         <https://www.gnu.org/prep/standards/html_node/Standard-Targets.html>
3539         <https://www.gnu.org/software/automake/manual/html_node/Clean.html>
3540
3541         * NEWS: Mention the change.
3542         * gettext-runtime/po/Makefile.in.in (maintainer-clean): Remove the .pot file.
3543         * gettext-tools/examples/hello-*/po/Makefile.am (MAINTAINERCLEANFILES): Add
3544         the .pot file.
3545         * gettext-tools/examples/po/Makefile.am (MAINTAINERCLEANFILES): Likewise.
3546         * gettext-tools/examples/check-examples (func_check_maintainerclean,
3547         func_check_maintainerclean_vpath): Verify the .pot file is removed after
3548         'make maintainer-clean', except when using the older Makefile.in.in
3549         infrastructure.
3550
3551 2018-10-24  Bruno Haible  <bruno@clisp.org>
3552
3553         po, examples: Use case-insensitive search for "GNU <PACKAGE_NAME>".
3554         Reported by Akim Demaille <akim@lrde.epita.fr> in
3555         <https://lists.gnu.org/archive/html/bug-gettext/2018-10/msg00020.html>.
3556
3557         * gettext-runtime/po/Makefile.in.in ($(DOMAIN).pot-update): Use a
3558         case-insensitive search for "GNU <PACKAGE_NAME>".
3559         * gettext-tools/examples/hello-*/po/Makefile.am ($(DOMAIN).pot-update):
3560         Likewise.
3561         * gettext-tools/examples/hello-objc-gnustep/po/GNUmakefile
3562         ($(DOMAIN).pot-update): Likewise.
3563
3564 2018-10-24  Bruno Haible  <bruno@clisp.org>
3565
3566         po: Remove obsolete Makefile rules for .mo files.
3567         * gettext-runtime/po/Makefile.in.in (MSGFMT*): Remove variables.
3568         (.SUFFIXES): Remove .mo.
3569         (.po.mo): Remove rule.
3570         (distclean): Don't remove *.mo files.
3571         * gettext-tools/examples/hello-*/po/Makefile.am (.SUFFIXES): Remove .mo.
3572         (.po.mo): Remove rule.
3573         (DISTCLEANFILES): Remove *.mo.
3574         * gettext-tools/examples/hello-objc-gnustep/po/GNUmakefile (.SUFFIXES):
3575         Remove .mo.
3576         * gettext-runtime/m4/po.m4 (AM_PO_SUBDIRS): Don't set MSGFMT_015.
3577
3578 2018-10-24  Bruno Haible  <bruno@clisp.org>
3579
3580         Remove outdated DJGPP build infrastructure.
3581         Approved by Juan Manuel Guerrero <juan.guerrero@gmx.de>.
3582
3583         * djgpp: Remove directory.
3584         * Makefile.am (EXTRA_DIST): Remove the djgpp files.
3585
3586 2018-10-24  Bruno Haible  <bruno@clisp.org>
3587
3588         examples: Add support for msgmerge --previous.
3589         This mirrors the Makefile.in.in change from 2016-07-01.
3590
3591         * gettext-tools/examples/hello-*/po/Makefile.am ($(POFILES), update-po): Use
3592         option --previous when the msgmerge program supports it.
3593         * gettext-tools/examples/hello-objc-gnustep/po/GNUmakefile: Likewise.
3594
3595 2018-10-24  Bruno Haible  <bruno@clisp.org>
3596
3597         examples: Support reading header comments from file.
3598         This mirrors the Makefile.in.in change from 2015-09-01 with the amendment
3599         from today.
3600
3601         * gettext-tools/examples/hello-*/po/Makefile.am ($(DOMAIN).pot-update):
3602         Replace header entry with the content of $(DOMAIN).pot-header, if exists.
3603         * gettext-tools/examples/hello-objc-gnustep/po/GNUmakefile: Likewise.
3604
3605 2018-10-24  Bruno Haible  <bruno@clisp.org>
3606
3607         examples: Make it possible to pass custom options to msginit.
3608         This mirrors the Makevars change from 2014-10-08.
3609
3610         * gettext-tools/examples/hello-*/po/Makefile.am (MSGINIT_OPTIONS): New variable.
3611         * gettext-tools/examples/hello-objc-gnustep/po/GNUmakefile: Likewise.
3612
3613 2018-10-24  Bruno Haible  <bruno@clisp.org>
3614
3615         examples: Add an option to claim the package as GNU/non-GNU.
3616         This mirrors the Makefile.in.in and Makevars change from 2014-05-01.
3617
3618         Reported by David Shea at <https://savannah.gnu.org/bugs/?40520>.
3619
3620         * gettext-runtime/po/Makefile.in.in ($(DOMAIN).pot-update): Tweak whitespace.
3621         * gettext-tools/examples/hello-*/po/Makefile.am (PACKAGE_GNU): New variable.
3622         ($(DOMAIN).pot-update): Don't search for "GNU packagename" if $(PACKAGE_GNU) is
3623         set.
3624         * gettext-tools/examples/hello-objc-gnustep/po/GNUmakefile: Likewise.
3625
3626 2018-10-24  Bruno Haible  <bruno@clisp.org>
3627
3628         examples: Upgrade to newest Makevars.
3629         * gettext-tools/examples/hello-*/po/Makevars (PACKAGE_GNU, MSGINIT_OPTIONS,
3630         PO_DEPENDS_ON_POT, DIST_DEPENDS_ON_UPDATE_PO): New variables.
3631         * gettext-tools/examples/hello-*/configure.* (AM_GNU_GETTEXT_VERSION): Require
3632         version 0.19.8.
3633         * gettext-tools/examples/po/xsmallpot.sh (hello-c++-kde): Likewise.
3634         * gettext-tools/examples/hello-*/m4/Makefile.am (EXTRA_DIST): Update list of .m4
3635         files.
3636         * gettext-tools/examples/hello-*/autoclean.sh: Likewise.
3637         * gettext-tools/examples/check-examples (func_check_maintainerclean,
3638         func_check_maintainerclean_vpath): Allow left-over .po~ files.
3639
3640 2018-10-24  Bruno Haible  <bruno@clisp.org>
3641
3642         examples: Avoid grepping through monster files.
3643         This mirrors the Makefile.in.in change from 2010-06-12.
3644
3645         Reported by Jim Meyering <jim@meyering.net>.
3646
3647         * gettext-tools/examples/hello-*/po/Makefile.am (($(DOMAIN).pot-update): When
3648         GNU find is available, avoid grepping through monster files.
3649         * gettext-tools/examples/hello-objc-gnustep/po/GNUmakefile: Likewise.
3650
3651 2018-10-24  Bruno Haible  <bruno@clisp.org>
3652
3653         examples: Don't create unnecessary installation directories.
3654         This mirrors the Makefile.in.in change from 2009-06-09.
3655
3656         Reported by Serge Pavlovsky <pal666@gmail.com>.
3657
3658         * gettext-tools/examples/hello-*/po/Makefile.am (install-data-local-yes,
3659         installdirs-local-yes): Remove unnecessary MKDIR_P invocations.
3660
3661 2018-10-24  Bruno Haible  <bruno@clisp.org>
3662
3663         po: Make the insertion of the .pot-header file more robust.
3664         This improves on the 2015-09-01 patch.
3665
3666         * gettext-runtime/po/Makefile.in.in ($(DOMAIN).pot-update): Fail if the 'cat'
3667         command fails.
3668
3669 2018-10-24  Bruno Haible  <bruno@clisp.org>
3670
3671         po: When doing msgmerge --version, use the correct msgmerge program.
3672         This reverts the patch from
3673         <https://lists.gnu.org/archive/html/bug-gettext/2015-06/msg00000.html>.
3674         Rationale:
3675         <https://lists.gnu.org/archive/html/bug-gettext/2018-10/msg00000.html>.
3676
3677         * gettext-runtime/po/Makefile.in.in ($(POFILES)): Use $(MSGMERGE_UPDATE),
3678         not $(MSGMERGE).
3679
3680 2018-10-24  Bruno Haible  <bruno@clisp.org>
3681
3682         po: Make $(POFILES) target more robust.
3683         It was introduced on 2014-05-01.
3684
3685         * gettext-runtime/po/Makefile.in.in ($(POFILES)): Create POT file also when the
3686         PO file does not yet exist. Fail if creation of the POT file fails.
3687
3688 2018-10-23  Bruno Haible  <bruno@clisp.org>
3689
3690         Update list of files to check with gnulib.
3691         * Makefile.am (distcheck): Check also localename-table.h and localename-table.c.
3692
3693         intl: Improve support for per-thread locales on Solaris 11.4.
3694         * gettext-runtime/intl/localename.c: Update from gnulib:
3695         Handle HAVE_SOLARIS114_LOCALES through Solaris specific code.
3696         * gettext-runtime/intl/localename-table.in.h: Update from gnulib's
3697         localename-table.h.
3698         * gettext-runtime/intl/localename-table.c: Update from gnulib.
3699         * gettext-runtime/m4/intl-thread-locale.m4: Renamed from
3700         gettext-runtime/m4/intlsolaris.m4.
3701         (gt_INTL_THREAD_LOCALE_NAME): Renamed from gt_INTL_SOLARIS. Define
3702         HAVE_SOLARIS114_LOCALES instead of HAVE_NAMELESS_LOCALES.
3703         * gettext-runtime/m4/intl.m4: Update from gnulib:
3704         (AM_INTL_SUBDIR): Require gt_INTL_THREAD_LOCALE_NAME. Test for 'uselocale'. Set
3705         HAVE_NAMELESS_LOCALES.
3706         (gt_INTL_SUBDIR_CORE): Don't invoke gt_INTL_SOLARIS. Don't set
3707         HAVE_NAMELESS_LOCALES here.
3708         * gettext-runtime/m4/Makefile.am (EXTRA_DIST): List intl-thread-locale.m4, not
3709         intlsolaris.m4.
3710         * gettext-tools/m4/Makefile.am (aclocal_DATA): List intl-thread-locale.m4, not
3711         intlsolaris.m4.
3712         * gettext-tools/misc/gettextize.in (m4filelist): List intl-thread-locale.m4, not
3713         intlsolaris.m4.
3714         * Makefile.am (distcheck-hook): Check intl-thread-locale.m4, not intlsolaris.m4.
3715         * gettext-tools/doc/gettext.texi (aclocal): List intl-thread-locale.m4, not
3716         intlsolaris.m4.
3717         * PACKAGING: List intl-thread-locale.m4, not intlsolaris.m4.
3718
3719         Update to newest gnulib.
3720
3721         intl: Fix support for per-thread locales on Solaris 11.4.
3722         * gettext-runtime/intl/localename-table.in.h: Renamed from
3723         gettext-runtime/intl/localename-table.h.
3724         * gettext-runtime/intl/Makefile.in (HEADERS): Add localename-table.in.h. Remove
3725         localename-table.h.
3726         (localename-table.h): New target.
3727         (localename.$lo, localename-table.$lo): Update dependencies.
3728         (mostlyclean): Remove localename-table.h.
3729
3730 2018-10-23  Daiki Ueno  <ueno@gnu.org>
3731
3732         xgettext: Fix compiler warning
3733         * gettext-tools/src/x-javascript.c (phase5_scan_regexp): Remove
3734         implicit argument.  Reported in:
3735         <https://savannah.gnu.org/bugs/?48404>.
3736
3737 2018-10-23  Bruno Haible  <bruno@clisp.org>
3738
3739         Update after gnulib changed.
3740         * configure.ac: Require Autoconf >= 2.63.
3741         * gettext-runtime/configure.ac: Likewise.
3742         * gettext-runtime/libasprintf/configure.ac: Likewise.
3743         * gettext-tools/configure.ac: Likewise.
3744
3745         Update from gnulib: Assume Autoconf >= 2.63.
3746         * gettext-runtime/m4/po.m4 (AM_PO_SUBDIRS): Don't set localedir.
3747         * gettext-runtime/m4/gettext.m4 (AM_GNU_GETTEXT): Update comment.
3748         * gettext-runtime/m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Assume
3749         AC_USE_SYSTEM_EXTENSIONS exists.
3750         * gettext-runtime/m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Likewise,
3751         * gettext-runtime/m4/longlong.m4: Require Autoconf >= 2.62. Update comments.
3752         * gettext-runtime/m4/size_max.m4 (AC_COMPUTE_INT): Remove fallback for
3753         Autoconf < 2.61.
3754
3755         Update from gnulib: Assume Automake >= 1.11.
3756         * gettext-runtime/m4/po.m4 (AM_PO_SUBDIRS, AM_POSTPROCESS_PO_MAKEFILE):
3757         Eliminate uses of 'eval'.
3758
3759         Update from gnulib: Make better use of Autoconf.
3760         * gettext-runtime/m4/visibility.m4: Use AC_CACHE_CHECK where possible.
3761
3762 2018-10-23  Bruno Haible  <bruno@clisp.org>
3763
3764         intl: Add support for per-thread locales on Solaris 11.4.
3765         Relies on the recent changes to the 'localename' module in gnulib.
3766
3767         * gettext-runtime/intl/localename.c: Apply changes from gnulib.
3768         * gettext-runtime/intl/localename-table.h: New file, from gnulib.
3769         * gettext-runtime/intl/localename-table.c: New file, from gnulib.
3770         * gettext-runtime/intl/libgnuintl.in.h (newlocale, duplocale, freelocale): New
3771         overriding declarations.
3772         * gettext-runtime/intl/Makefile.in (HEADERS): Add localename-table.h.
3773         (SOURCES): Add localename-table.c.
3774         (OBJECTS): Add localename-table.$lo.
3775         (localename-table.lo): New target.
3776         (libgnuintl.h, libintl.h): Substitute also HAVE_NAMELESS_LOCALES.
3777         * gettext-runtime/m4/intl.m4: Apply changes from gnulib:
3778         (gt_INTL_SUBDIR_CORE): Don't test for 'uselocale' and 'getlocalename_l'.
3779         Instead, invoke gt_INTL_SOLARIS. Set HAVE_NAMELESS_LOCALES.
3780         * gettext-runtime/m4/intlsolaris.m4: New file, from gnulib.
3781         * gettext-runtime/m4/Makefile.am (EXTRA_DIST): Add it.
3782         * gettext-tools/m4/Makefile.am (aclocal_DATA): Add intlsolaris.m4.
3783         * gettext-tools/misc/gettextize.in (m4filelist): Add intlsolaris.m4.
3784         * Makefile.am (distcheck-hook): Verify that intlsolaris.m4 is consistent with
3785         gnulib.
3786         * gettext-tools/doc/gettext.texi (aclocal): Add intlsolaris.m4 to the file list.
3787         * PACKAGING: Add intlsolaris.m4 to the list of installed files.
3788         * NEWS: Mention the change.
3789
3790 2018-10-23  Bruno Haible  <bruno@clisp.org>
3791
3792         Update to newest gnulib.
3793
3794         examples: Fix another build failure.
3795         * gettext-tools/examples/po/xsmallpot.sh: In hello-pascal, make sure to build
3796         hello.rsj.
3797
3798 2018-10-21  Bruno Haible  <bruno@clisp.org>
3799
3800         New subdirectory system-tests.
3801         * gettext-tools/system-tests/Makefile.am: New file.
3802         * gettext-tools/system-tests/README: New file.
3803         * gettext-tools/system-tests/run-test: New file.
3804         * gettext-tools/system-tests/testlocale.c: New file.
3805         * gettext-tools/system-tests/intl-1-prg.c: New file.
3806         * gettext-tools/system-tests/intl-3-prg.c: New file.
3807         * gettext-tools/system-tests/intl-4-prg.c: New file.
3808         * gettext-tools/system-tests/intl-5-prg.c: New file.
3809         * gettext-tools/system-tests/intl-setlocale-1-prg.c: New file.
3810         * gettext-tools/system-tests/intl-setlocale-2-prg.c: New file.
3811         * gettext-tools/system-tests/intl-thread-1-prg.c: New file.
3812         * gettext-tools/system-tests/intl-thread-2-prg.c: New file.
3813         * gettext-tools/system-tests/intl-thread-3-prg.c: New file.
3814         * gettext-tools/system-tests/format-c-3-prg.c: New file.
3815         * gettext-tools/system-tests/format-c-4-prg.c: New file.
3816         * gettext-tools/system-tests/format-c-5-prg.c: New file.
3817         * gettext-tools/system-tests/plural-1-prg.c: New file.
3818         * gettext-tools/Makefile.am (SUBDIRS): Add system-tests.
3819         * gettext-tools/configure.ac (TEST_SYSTEM_LIBINTL): New conditional.
3820         (AC_CONFIG_FILES): Add system-tests/Makefile.
3821         * gettext-tools/tests/init.cfg: Include init-env from the tests/ directory.
3822         * gettext-tools/tests/intl-5-prg.c: When USE_SYSTEM_LIBINTL is defined, use the
3823         system's <libintl.h>.
3824         * gettext-tools/tests/intl-setlocale-1-prg.c: Likewise.
3825         * gettext-tools/tests/intl-setlocale-2-prg.c: Likewise.
3826         * gettext-tools/tests/intl-thread-1-prg.c: Likewise.
3827         * gettext-tools/tests/intl-thread-2-prg.c: Likewise.
3828         * gettext-tools/tests/intl-thread-3-prg.c: Likewise.
3829         * gettext-tools/tests/intl-1-prg.c: When USE_SYSTEM_LIBINTL is defined, use the
3830         system's <libintl.h>.
3831         * gettext-tools/tests/intl-3-prg.c: Likewise.
3832         * gettext-tools/tests/intl-4-prg.c: Likewise.
3833         * gettext-tools/tests/format-c-3-prg.c: Likewise.
3834         * gettext-tools/tests/format-c-4-prg.c: Likewise.
3835         * gettext-tools/tests/plural-1-prg.c: Likewise.
3836         * gettext-tools/tests/format-c-5-prg.c: When USE_SYSTEM_LIBINTL is defined, use
3837         the system's <libintl.h> and setenv instead of xsetenv, and no fake setlocale.
3838         * gettext-tools/tests/format-c-3: When USE_SYSTEM_LIBINTL is defined, try
3839         $LOCALE_FR and $LOCALE_FR_UTF8.
3840         * gettext-tools/tests/format-c-4: Likewise.
3841         * gettext-tools/tests/plural-1: Likewise.
3842         * gettext-tools/tests/format-c-5: When USE_SYSTEM_LIBINTL is defined, try fa_IR
3843         and fa_IR.UTF-8.
3844
3845         Update comments.
3846         * gettext-tools/tests/Makefile.am: Update comments.
3847
3848         Rename test gettext-8 to intl-5.
3849         * gettext-tools/tests/intl-5: Renamed from gettext-tools/tests/gettext-8.
3850         * gettext-tools/tests/intl-5-prg.c: Renamed from
3851         gettext-tools/tests/gettext-8-prg.c.
3852         * gettext-tools/tests/Makefile.am: Update.
3853
3854         Rename test gettext-7 to intl-thread-3 and support more platforms.
3855         * gettext-tools/tests/intl-thread-3: Renamed from gettext-tools/tests/gettext-7.
3856         Don't limit to fixed set of platforms.
3857         * gettext-tools/tests/intl-thread-3-prg.c: Renamed from
3858         gettext-tools/tests/gettext-7-prg.c. Expect locale names as arguments.
3859         * gettext-tools/tests/intl-thread-3.po: Renamed from
3860         gettext-tools/tests/gettext-7.po.
3861         * gettext-tools/tests/Makefile.am: Update.
3862
3863         Make the intl-thread-2 test effective on Solaris 11.
3864         * gettext-tools/m4/locale-de.m4: New file, based on locale-fr.m4 from gnulib.
3865         * gettext-tools/m4/Makefile.am (EXTRA_DIST): Add it.
3866         * gettext-tools/configure.ac: Invoke gt_LOCALE_DE_UTF8.
3867         * gettext-tools/tests/init-env.in: Set LOCALE_DE_UTF8.
3868         * gettext-tools/tests/intl-thread-2: Use a German instead of a Turkish locale.
3869
3870         Rename test gettext-6 to intl-thread-2 and support more platforms.
3871         * gettext-tools/tests/intl-thread-2: Renamed from gettext-tools/tests/gettext-6.
3872         Don't limit to fixed set of platforms.
3873         * gettext-tools/tests/intl-thread-2-prg.c: Renamed from
3874         gettext-tools/tests/gettext-6-prg.c. Expect locale names as arguments.
3875         * gettext-tools/tests/intl-thread-2-1.po: Renamed from
3876         gettext-tools/tests/gettext-6-2.po. Convert to UTF-8.
3877         * gettext-tools/tests/intl-thread-2-2.po: Renamed from
3878         gettext-tools/tests/gettext-6-1.po. Convert to UTF-8.
3879         * gettext-tools/tests/Makefile.am: Update.
3880
3881         New test intl-thread-1.
3882         * gettext-tools/tests/intl-thread-1: New file.
3883         * gettext-tools/tests/intl-thread-1-prg.c: New file.
3884         * gettext-tools/tests/intl-thread-1.po: New file.
3885         * gettext-tools/tests/Makefile.am: Update.
3886
3887         Rename test gettext-5 to intl-setlocale-2.
3888         * gettext-tools/tests/intl-setlocale-2: Renamed from
3889         gettext-tools/tests/gettext-5.
3890         * gettext-tools/tests/intl-setlocale-2-prg.c: Renamed from
3891         gettext-tools/tests/gettext-5-prg.c.
3892         * gettext-tools/tests/intl-setlocale-2.po: Renamed from
3893         gettext-tools/tests/gettext-5.po.
3894         * gettext-tools/tests/Makefile.am: Update.
3895
3896         Rename test gettext-4 to intl-4.
3897         * gettext-tools/tests/intl-4: Renamed from gettext-tools/tests/gettext-4.
3898         * gettext-tools/tests/intl-4-prg.c: Renamed from
3899         gettext-tools/tests/gettext-4-prg.c.
3900         * gettext-tools/tests/intl-4.po: Renamed from gettext-tools/tests/gettext-4.po.
3901         * gettext-tools/tests/Makefile.am: Update.
3902
3903         New test intl-3.
3904         * gettext-tools/tests/intl-3: New file.
3905         * gettext-tools/tests/intl-3-prg.c: New file.
3906         * gettext-tools/tests/Makefile.amL Update.
3907
3908         New test intl-2.
3909         * gettext-tools/tests/intl-2: New file.
3910         * gettext-tools/tests/intl-2-1.po: New file.
3911         * gettext-tools/tests/intl-2-2.po: New file.
3912         * gettext-tools/tests/Makefile.am: Update.
3913
3914         New test intl-1.
3915         * gettext-tools/tests/intl-1: New file.
3916         * gettext-tools/tests/intl-1-prg.c: New file.
3917         * gettext-tools/tests/intl-1.po: New file.
3918         * gettext-tools/tests/Makefile.am: Update.
3919
3920         Rename gettext-3 test to intl-setlocale-1.
3921         * gettext-tools/tests/intl-setlocale-1: Renamed from
3922         gettext-tools/tests/gettext-3.
3923         * gettext-tools/tests/intl-setlocale-1-prg.c: Renamed from
3924         gettext-tools/tests/gettext-3-prg.c.
3925         * gettext-tools/tests/intl-setlocale-1-1.po: Renamed from
3926         gettext-tools/tests/gettext-3-1.po.
3927         * gettext-tools/tests/intl-setlocale-1-2.po: Renamed from
3928         gettext-tools/tests/gettext-3-2.po.
3929         * gettext-tools/tests/Makefile.am: Update.
3930
3931         Update PACKAGING documentation.
3932         * PACKAGING: Remove mention of charset.alias (dropped on 2018-05-19).
3933         Mention that libintl does not get installed on Solaris 11.
3934
3935         Tests: Update comments.
3936         * gettext-tools/tests/lang-python-1: Update comment about Python versions.
3937         * gettext-tools/tests/lang-python-2: Likewise.
3938         * gettext-tools/tests/lang-pascal: Update comment about fpk versions.
3939
3940         Fix lang-bash test failure in VPATH builds.
3941         * gettext-tools/tests/lang-bash: Prepend the gettext-runtime/src build dir,
3942         not the gettext-runtime/src source dir, to PATH.
3943
3944 2018-10-20  Bruno Haible  <bruno@clisp.org>
3945
3946         Fix 'make dist' (recent regression).
3947         * gettext-tools/examples/Makefile.am (EXAMPLESFILES): Remove
3948         hello-pascal/hello.rst.
3949
3950 2018-10-19  Bruno Haible  <bruno@clisp.org>
3951
3952         examples: Modernize configure.ac.
3953         * gettext-tools/examples/hello-*/configure.ac: Use the recommended AC_INIT and
3954         AM_INIT_AUTOMAKE syntax. Require automake >= 1.11.
3955
3956         examples: Add a script for checking against mistakes.
3957         * gettext-tools/examples/check-examples: New file.
3958         * gettext-tools/examples/HACKING: New file.
3959         * gettext-tools/examples/Makefile.am (EXTRA_DIST): Add them.
3960         * Admin/release-steps: Mention check-examples.
3961
3962         examples: hello-pascal: Fix 'make distcheck'.
3963         * gettext-tools/examples/hello-pascal/Makefile.am (hello$(EXEEXT)): Move
3964         hello.rsj into $(srcdir) only if the new contents differs from the old contents.
3965
3966         examples: hello-java*: Fix 'make distcheck'.
3967         * gettext-tools/examples/hello-java*/po/Makefile.am (update-properties): Create
3968         the new .properties files in the build dir and move them to $(srcdir) only if
3969         the new contents differs from the old contents.
3970         (update-classes): Likewise, also for .class files.
3971
3972 2018-10-18  Bruno Haible  <bruno@clisp.org>
3973
3974         examples: hello-csharp*: Improve 'make maintainer-clean'.
3975         * gettext-tools/examples/hello-csharp*/po/Makefile.am (MAINTAINERCLEANFILES):
3976         Don't list the $(RESOURCESDLLFILES) here.
3977         (maintainer-clean-local): Instead, remove them and their parent directories
3978         here.
3979
3980         examples: hello-php: Fix runtime error.
3981         * gettext-tools/examples/hello-php/hello.php: Fix the PHP markup. Don't print
3982         the return value of the printf function.
3983
3984         examples: hello-tcl*: Fix runtime error.
3985         * gettext-tools/examples/hello-tcl*/configure.ac: Ensure pkgdatadir is an
3986         absolute file name without variable references.
3987
3988         examples: hello-clisp: Fix runtime error with clisp versions >= 2.34.
3989         * gettext-tools/examples/hello-clisp/hello.lisp.in: Use the function
3990         PROCESS-ID, not PROGRAM-ID.
3991
3992         examples: Fix 'make dist' failures in VPATH builds.
3993         * gettext-tools/examples/hello-*/po/Makefile.am (distdir1): Invoke target
3994         'stamp-po' after having done target 'update-po'.
3995
3996         examples: hello-pascal: Fix 'make dist' failure in VPATH builds.
3997         * gettext-tools/examples/hello-pascal/Makefile.am: Generate hello.rsj
3998         in $(srcdir), not in the build dir.
3999
4000         examples: hello-pascal: Fix 'make dist'.
4001         * gettext-tools/examples/hello-pascal/Makefile.am (EXTRA_DIST): Add the source
4002         file.
4003
4004         examples: hello-java*: Fix "make dist".
4005         * gettext-runtime/m4/po.m4 (AM_POSTPROCESS_PO_MAKEFILE): Change PROPERTIESFILES
4006         and CLASSFILES to contain files in $(srcdir), not in $(top_srcdir).
4007         * gettext-tools/examples/hello-java*/Makefile.am (hello.jar): Fetch the catalogs
4008         from the po/ directory.
4009         * gettext-tools/examples/hello-java*/po/Makefile.am (MAINTAINERCLEANFILES):
4010         Add the .properties and the .class files.
4011         (EXTRA_DIST): Add the .properties files.
4012         (update-properties, update-classes): Generate the .properties and .class files
4013         in the po/ directory, not in the top-level directory.
4014         * gettext-tools/examples/hello-java*/autoclean.sh: Remove the catalogs in
4015         the po/ directory, not in the top-level directory.
4016
4017         examples: Fix 'make dist'.
4018         * gettext-tools/examples/hello-c/m4/Makefile.am (EXTRA_DIST): Add all files
4019         that are brought in by 'autopoint'.
4020         * gettext-tools/examples/hello-c-gnome/m4/Makefile.am (EXTRA_DIST): Likewise.
4021         * gettext-tools/examples/hello-c-gnome3/m4/Makefile.am (EXTRA_DIST): Likewise.
4022         * gettext-tools/examples/hello-c++/m4/Makefile.am (EXTRA_DIST): Likewise.
4023         * gettext-tools/examples/hello-c++-kde/m4/Makefile.am (EXTRA_DIST): Likewise.
4024         * gettext-tools/examples/hello-c++-gnome/m4/Makefile.am (EXTRA_DIST): Likewise.
4025         * gettext-tools/examples/hello-objc/m4/Makefile.am (EXTRA_DIST): Likewise.
4026         * gettext-tools/examples/hello-objc-gnome/m4/Makefile.am (EXTRA_DIST): Likewise.
4027
4028         examples: Fix 'make' failures in VPATH builds.
4029         * gettext-tools/examples/hello-java*/Makefile.am (hello_RESOURCES,
4030         MAINTAINERCLEANFILES): Remove variables.
4031         (hello.jar): Use two jar commands, to combine .class files from the build dir
4032         with .properties files from the source dir.
4033         * gettext-tools/examples/hello-java*/po/Makefile.am (update-properties,
4034         update-classes): Reference the .pot file in the source dir, not in the build
4035         dir.
4036         (echo-catalogs): Include the fallback catalog.
4037         * gettext-tools/examples/hello-pascal/Makefile.am (hello_SOURCES): Add $(srcdir)
4038         prefix.
4039         (hello$(EXEEXT)): Use -o option to specify where the object file and the
4040         executable file shall be created.
4041
4042 2018-10-17  Bruno Haible  <bruno@clisp.org>
4043
4044         examples: hello-csharp-forms: Fix 'make clean'.
4045         * gettext-tools/examples/hello-csharp-forms/Makefile.am (CLEANFILES): Add
4046         hello.net.exe.mdb.
4047
4048         examples: hello-csharp: Fix 'make clean'.
4049         * gettext-tools/examples/hello-csharp/Makefile.am (CLEANFILES): Add
4050         hello.net.exe.mdb.
4051
4052         examples: hello-objc-gnustep: Fix 'make distclean'.
4053         * gettext-tools/examples/hello-objc-gnustep/GNUmakefile (internal-distclean):
4054         Remove the *.lproj directories.
4055         * gettext-tools/examples/hello-objc-gnustep/po/GNUmakefile (internal-clean):
4056         Remove remove-potcdate.sed.
4057
4058         examples: hello-pascal: Fix 'make maintainer-clean'.
4059         * gettext-tools/examples/hello-pascal/Makefile.am (MAINTAINERCLEANFILES): New
4060         variable.
4061
4062         examples: hello-java: Fix 'make' failure.
4063         * gettext-tools/examples/hello-java/po/Makefile.am (stamp-po): Fix syntax error.
4064
4065         examples: hello-pascal: Update.
4066         * gettext-tools/examples/hello-pascal/configure.ac (PPC): Test for ppcx64 if
4067         ppc386 is not found.
4068         * gettext-tools/examples/hello-pascal/hello.rst: Remove file.
4069         * gettext-tools/examples/hello-pascal/Makefile.am: hello.rsj replaces hello.rst.
4070         (SUBDIRS): Proceed in current directory before recursing into po/.
4071         * gettext-tools/examples/hello-pascal/po/Makefile.am (POTFILES): hello.rsj
4072         replaces hello.rst.
4073         * gettext-tools/examples/hello-pascal/autoclean.sh: Remove hello.rsj.
4074
4075         examples: Correctly clean up left-over files.
4076         * gettext-tools/examples/hello-csharp/autoclean.sh: Handle shell wildcard
4077         correctly.
4078         * gettext-tools/examples/hello-csharp-forms/autoclean.sh: Likewise.
4079
4080 2018-10-15  Bruno Haible  <bruno@clisp.org>
4081
4082         examples: Remove left-over files.
4083         * gettext-tools/examples/hello-*/autoclean.sh: Remove left-over files.
4084
4085         examples: Clean up autoconf left-over.
4086         * gettext-tools/examples/hello-*/autoclean.sh: Remove the 'autom4te.cache'
4087         directory.
4088
4089         examples: hello-c++-widgets: Update build infrastructure.
4090         * gettext-tools/examples/hello-c++-widgets/autogen.sh: Pull in some more .m4
4091         files.
4092         * gettext-tools/examples/hello-c++-widgets/autoclean.sh: Remove them.
4093
4094         Update test after gnulib module 'localcharset' changed.
4095         * gettext-tools/tests/gettext-4-prg.c: Treat Haiku like BeOS.
4096
4097         examples: Fix "make dist" error.
4098         * gettext-tools/examples/po/xsmallpot.sh (hello-c++-kde): Invoke 'autopoint'
4099         before, not after, 'aclocal'.
4100
4101         examples: Update developer documentation.
4102         * gettext-tools/examples/hello-csharp*/po/Makefile.am: Add comment.
4103         * gettext-tools/examples/hello-tcl*/po/Makefile.am: Likewise.
4104
4105         examples: Improve developer documentation.
4106         * gettext-tools/examples/README: Add note about po/ directories.
4107
4108         examples: Improve developer documentation.
4109         * HACKING: Mention dependency needed for examples.
4110         * gettext-tools/examples/hello-objc-gnustep/INSTALL: Small clarifications.
4111
4112         Fix list of dependencies.
4113         * DEPENDENCIES: Add libacl.
4114
4115         C# doc: Fix typo in Makefile.
4116         * gettext-runtime/intl-csharp/Makefile.am (doc): Fix typo.
4117
4118 2018-10-15  Bruno Haible  <bruno@clisp.org>
4119
4120         gettextize: Don't redirect stderr.
4121         Reported by ShellCheck via Pavel Raiskup <praiskup@redhat.com>.
4122
4123         * gettext-tools/misc/gettextize.in: Don't redirect stderr.
4124
4125 2018-10-15  Bruno Haible  <bruno@clisp.org>
4126
4127         autopoint: Don't redirect stderr.
4128         Reported by ShellCheck via Pavel Raiskup <praiskup@redhat.com>.
4129
4130         * gettext-tools/misc/autopoint.in (func_version_prereq): Don't redirect stderr.
4131
4132 2018-10-15  Bruno Haible  <bruno@clisp.org>
4133
4134         Fix "make dist" error (regression from 2018-10-09).
4135         * gettext-tools/examples/Makefile.am (EXAMPLESFILES): Remove
4136         hello-csharp-forms/BUGS.
4137
4138 2018-10-09  Bruno Haible  <bruno@clisp.org>
4139
4140         C# support: Remove pnet choice.
4141         * DEPENDENCIES: Don't mention pnet.
4142         * PACKAGING: Likewise.
4143         * gettext-tools/src/format-csharp.c: Simplify comment.
4144         * gettext-tools/src/msgfmt.cs: Remove workarounds for cscc.
4145         * gettext-tools/src/write-csharp.c (write_csharp_code): Update comment.
4146         * gettext-tools/doc/gettext.texi (C#): Don't mention resgen.
4147         * gettext-tools/tests/lang-csharp: Rely on mono, not pnet.
4148         * gettext-tools/examples/hello-csharp/INSTALL: Likewise.
4149         * gettext-tools/examples/hello-csharp-forms/INSTALL: Likewise.
4150         * gettext-tools/examples/hello-csharp-forms/BUGS: Remove file.
4151
4152         Update to newest gnulib.
4153
4154 2018-10-06  Bruno Haible  <bruno@clisp.org>
4155
4156         Fix a build failure on mingw with -O0.
4157         Reported at <https://savannah.gnu.org/bugs/?36443>.
4158         Fix suggested by Evgeny Grin <k2k@narod.ru>
4159         in <https://savannah.gnu.org/bugs/?36443#comment4>.
4160
4161         * gnulib-local/build-aux/moopp (func_emit_source_h): Wrap the function
4162         declarations in extern "C" {}.
4163
4164 2018-10-05  Bruno Haible  <bruno@clisp.org>
4165
4166         msgfmt: Remove outdated warning.
4167         * gettext-tools/src/msgfmt.c (msgfmt_parse_debrief): Remove outdated warning.
4168         (struct msgfmt_catalog_reader_ty): Remove field 'has_nonfuzzy_header_entry'.
4169         (msgfmt_constructor, msgfmt_frob_new_message): Update.
4170
4171 2018-10-05  Bruno Haible  <bruno@clisp.org>
4172
4173         Fix conflict between different uses of GETTEXTLIBDIR.
4174         Rationale: The programs installed in $(prefix)/lib/gettext/ are at different
4175         locations before installation: some are in the source tree, some are in the
4176         build tree.
4177
4178         * gettext-tools/src/msginit.c (project_id, project_id_version): Test
4179         GETTEXTLIBDIR_SRCDIR, not GETTEXTLIBDIR.
4180         (plural_forms): Test GETTEXTLIBDIR_BUILDDIR, not GETTEXTLIBDIR.
4181         * gettext-tools/tests/msginit-3: Set GETTEXTLIBDIR_SRCDIR, not GETTEXTLIBDIR.
4182         * gettext-tools/tests/msginit-4: Set both GETTEXTLIBDIR_SRCDIR and
4183         GETTEXTLIBDIR_BUILDDIR.
4184
4185 2018-10-05  Bruno Haible  <bruno@clisp.org>
4186
4187         Fix conflict between different uses of GETTEXTDATADIR.
4188         * gettext-tools/src/read-tcl.c (msgdomain_read_tcl): Test GETTEXTTCLDIR, not
4189         GETTEXTDATADIR.
4190         * gettext-tools/tests/msgunfmt-tcl-1: Set GETTEXTTCLDIR, not GETTEXTDATADIR.
4191
4192         Fix msginit-4 test failure when run step-by-step.
4193         * gettext-tools/tests/msginit-4: Don't assume that the test is run in a
4194         directory with just one POT file.
4195
4196         cldr-plurals: Improve error handling.
4197         * gettext-tools/src/cldr-plurals.c (extract_rules): Let libxml2 show errors.
4198         Don't assume that the error was an out-of-memory.
4199
4200         Remove unnecessary trailing comma in struct initializers.
4201         * gettext-tools/src/msgattrib.c (long_options): Remove trailing comma in
4202         initializer.
4203         * gettext-tools/src/msgcat.c (long_options): Likewise.
4204         * gettext-tools/src/msgcomm.c (long_options): Likewise.
4205         * gettext-tools/src/msgconv.c (long_options): Likewise.
4206         * gettext-tools/src/msgen.c (long_options): Likewise.
4207         * gettext-tools/src/msgfilter.c (long_options): Likewise.
4208         * gettext-tools/src/msgmerge.c (long_options): Likewise.
4209         * gettext-tools/src/msgunfmt.c (long_options): Likewise.
4210         * gettext-tools/src/msguniq.c (long_options): Likewise.
4211         * gettext-tools/src/xgettext.c (long_options): Likewise.
4212
4213 2018-10-05  Bruno Haible  <bruno@clisp.org>
4214
4215         Explain how to concatenate POT files.
4216         Reported by Hadi Farah in
4217         <https://lists.gnu.org/archive/html/bug-gettext/2018-09/msg00026.html>.
4218
4219         * gettext-tools/doc/msgcat.texi: Explain how to concatenate POT files.
4220
4221 2018-10-05  Bruno Haible  <bruno@clisp.org>
4222
4223         Include gnulib module 'mkdir', needed for older mingw versions.
4224         Reported by Maarten Bosmans at <https://savannah.gnu.org/bugs/?33379>.
4225
4226         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add 'mkdir'.
4227
4228 2018-10-05  Bruno Haible  <bruno@clisp.org>
4229
4230         Fix link error when building with --enable-shared on mingw.
4231         * autogen.sh (GNULIB_MODULES_LIBGETTEXTPO_OTHER): Add 'realloc-posix'.
4232
4233         Fix msginit-4 test failure on Cygwin with --enable-shared.
4234         * gettext-tools/src/msginit.c (plural_forms): Include the program's directory
4235         in argv[0].
4236
4237         Update after gnulib changed.
4238         * gettext-runtime/intl/vasnprintf.c: Update from gnulib.
4239         * gettext-runtime/libasprintf/vasnprintf.c: Update from gnulib.
4240
4241         Update to newest gnulib.
4242
4243 2018-09-19  Bruno Haible  <bruno@clisp.org>
4244
4245         Avoid test failures on 32-bit Cygwin in a 64-bit Cygwin environment.
4246         In this situation, argv[0] is absolute, even though the program was invoked
4247         as a file name without slashes (and thus found in $PATH).
4248
4249         * gettext-tools/tests/msgcmp-2: Normalize the program name better.
4250         * gettext-tools/tests/msgcmp-3: Likewise.
4251         * gettext-tools/tests/msgfmt-7: Likewise.
4252         * gettext-tools/tests/msgfmt-8: Likewise.
4253         * gettext-tools/tests/msgfmt-9: Likewise.
4254         * gettext-tools/tests/msgfmt-10: Likewise.
4255         * gettext-tools/tests/msgmerge-2: Likewise.
4256         * gettext-tools/tests/msgmerge-9: Likewise.
4257
4258 2018-09-18  Bruno Haible  <bruno@clisp.org>
4259
4260         Fix link error when building with --disable-shared on 64-bit Cygwin.
4261         * gnulib-local/lib/execute.c.diff: Remove file.
4262         * gnulib-local/lib/spawn-pipe.c.diff: Remove file.
4263         * gnulib-local/tests/test-environ.c.diff: Remove file.
4264         * gnulib-local/Makefile.am (EXTRA_DIST): Remove them.
4265
4266         Fix link error when building with --disable-shared on Cygwin and mingw.
4267         * gettext-tools/configure.ac (LIBXML_STATIC): Define to 1 when using the
4268         included libxml and building with --disable-shared.
4269         * gnulib-local/lib/libxml/libxml.h (LIBXML_STATIC): Define to 1, not empty.
4270
4271 2018-09-17  Bruno Haible  <bruno@clisp.org>
4272
4273         autogen.sh: Fix use of undefined function.
4274         * autogen.sh: Rewrite error message code.
4275
4276 2018-09-17  Bruno Haible  <bruno@clisp.org>
4277
4278         Fix link error on Cygwin.
4279         Patch partially by Michael Haubenwallner at
4280         https://gitlab.gnome.org/GNOME/libxml2/commit/c65c9e8ee07e2dab0647392c2bd1795a5bc99829
4281
4282         * gnulib-local/lib/libxml/xmlexports.in.h: Don't assume that _WIN32 is defined
4283         on Cygwin.
4284         (XMLPUBVAR): Define as 'extern', not as empty.
4285
4286 2018-09-17  Bruno Haible  <bruno@clisp.org>
4287
4288         Fix "Unescaped left brace in regex is deprecated here" warnings from Perl 5.26.
4289         Reported and patch by Jehan <jehan@girinstud.io> <jehan@zemarmot.net> at
4290         <https://savannah.gnu.org/bugs/?54088>.
4291
4292         * gettext-tools/doc/texi2html: Escape braces in regular expressions.
4293         * gettext-runtime/libasprintf/texi2html: Likewise.
4294
4295 2018-09-17  Bruno Haible  <bruno@clisp.org>
4296
4297         Update after gnulib changed.
4298         * gnulib-local/modules/fnmatch.diff: Update.
4299         * gettext-runtime/intl/config.charset: Remove file.
4300         * gettext-runtime/intl/localcharset.h: Update from gnulib.
4301         * gettext-runtime/intl/localcharset.c: Likewise.
4302         * gettext-runtime/intl/Makefile.in (DISTFILES.common): Remove config.charset.
4303         (charset.alias): Remove target.
4304         (install-exec): Don't install charset.alias.
4305         (install-data): Don't chmod config.charset.
4306         (installdirs): Don't create $(libdir).
4307         (uninstall): Don't uninstall charset.alias.
4308         (mostlyclean): Don't remove charset.alias.
4309         * gettext-runtime/intl/lock.h: Update from gnulib.
4310         * gettext-runtime/intl/verify.h: Likewise.
4311         * gettext-runtime/intl/printf-parse.c: Likewise.
4312         * gettext-runtime/libasprintf/printf-parse.c: Likewise.
4313         * gettext-runtime/m4/extern-inline.m4: Likewise.
4314         * gettext-runtime/m4/threadlib.m4: Likewise.
4315         * Makefile.am (distcheck-hook): Don't compare config.charset, ref-add.sin,
4316         ref-del.sin.
4317
4318         Update to newest gnulib.
4319
4320         Fix lang-sh test failure in VPATH builds.
4321         * gettext-tools/tests/lang-sh: Prepend the gettext-runtime/src build dir,
4322         not the gettext-runtime/src source dir, to PATH.
4323
4324 2018-09-16  Bruno Haible  <bruno@clisp.org>
4325
4326         libintl: Improve locale handling on macOS 10.12 or newer.
4327         * gettext-runtime/intl/langprefs.c (_nl_language_preferences_default): Make the
4328         logic also work in locales such as "zh-Hans-DE".
4329         * gettext-runtime/intl/setlocale.c: Include header files for CoreFoundation.
4330         (libintl_setlocale): Try harder to set a locale for categories LC_CTYPE and
4331         LC_MESSAGES.
4332
4333 2018-09-16  Bruno Haible  <bruno@clisp.org>
4334
4335         Don't assume that 'sed' supports alternation in regular expressions.
4336         See https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Limitations-of-Usual-Tools.html
4337
4338         * gettext-tools/tests/msginit-1: Don't use \| in a 'sed' regular expression.
4339         * gettext-tools/tests/msginit-3: Likewise.
4340         * gettext-tools/tests/msginit-4: Likewise.
4341
4342 2018-09-16  Bruno Haible  <bruno@clisp.org>
4343
4344         Update list of locale names with scripts on macOS.
4345         * gettext-runtime/intl/localename.c (gl_locale_name_canonicalize): Update
4346         tables to match Mac OS X 10.13 and recent glibc.
4347
4348         Oops, fix typo.
4349         * gettext-runtime/m4/intlmacosx.m4 (gt_INTL_MACOSX): Fix variable name.
4350
4351         Fix link error in "make check" when building with --disable-shared on macOS.
4352         * gnulib-local/modules/term-ostream-tests (test_term_ostream_LDADD): Add
4353         @INTL_MACOSX_LIBS@.
4354
4355         Use newer macOS APIs when possible.
4356         * gettext-runtime/m4/intlmacosx.m4 (gt_INTL_MACOSX): Check for
4357         CFLocaleCopyPreferredLanguages.
4358         * gettext-runtime/intl/langprefs.c (_nl_language_preferences_default): Use
4359         CFLocaleCopyPreferredLanguages when it exists.
4360
4361         Revisit macOS specific code.
4362         * gettext-runtime/intl/localename.c (gl_locale_name_default): Reduce code
4363         duplication. Fix comments about Mac OS X versions.
4364
4365 2018-09-16  Bruno Haible  <bruno@clisp.org>
4366
4367         libintl: Fix language preferences on macOS 10.12 or newer.
4368         Reported by Kristian Rietveld <kris@loopnest.org> at
4369         <https://savannah.gnu.org/bugs/?49560>.
4370
4371         * gettext-runtime/intl/langprefs.c (_nl_language_preferences_default): Handle
4372         preferences elements of the form "ll-CC" in a reasonable way.
4373         * NEWS: Mention the change.
4374
4375 2018-09-16  Bruno Haible  <bruno@clisp.org>
4376
4377         setlocale: Improve support for locales not supported by libc.
4378         Reported by Dapeng Gao <peter@dpgao.cc> at
4379         <https://savannah.gnu.org/bugs/?54479>.
4380
4381         * gettext-runtime/intl/setlocale.c: Include <stdio.h>.
4382         (libintl_setlocale): Use a more error-tolerant strategy when the locale to be
4383         set is not supported by libc: Emit warnings instead of failing.
4384
4385 2018-09-16  Bruno Haible  <bruno@clisp.org>
4386
4387         Fix link error when linking with libintl.a on macOS.
4388         * gettext-runtime/intl/loadmsgcat.c (_nl_msg_cat_cntr): Zero-initialize on
4389         macOS.
4390
4391         doc: Assume texinfo 4.0 or newer.
4392         * gettext-tools/doc/gettext.texi: Omit Next, Prev, Up fields from @node lines.
4393         * gettext-runtime/libasprintf/autosprintf.texi: Likewise.
4394
4395         Reduce "make dist" time by 7 minutes.
4396         * configure.ac (AM_INIT_AUTOMAKE): Remove dist-xz and dist-lzip options.
4397         * Admin/release-steps: Mention how to create the tarballs with higher
4398         compression after "make dist".
4399
4400 2018-09-15  Bruno Haible  <bruno@clisp.org>
4401
4402         Add support for translation lookup with context in shell scripts.
4403         Reported by Markus Gothe <nietzsche@lysator.liu.se>
4404         in <https://savannah.gnu.org/bugs/?49899>.
4405
4406         * gettext-runtime/src/gettext.c (long_options): Add option '--context'.
4407         (main): Handle option -c/--context.
4408         (usage): Document option -c/--context. Split usage message.
4409         * gettext-runtime/src/ngettext.c (long_options): Add option '--context'.
4410         (main): Handle option -c/--context.
4411         (usage): Document option -c/--context. Split usage message.
4412         * gettext-runtime/src/gettext.sh.in (eval_pgettext, eval_npgettext): New
4413         functions.
4414         * gettext-tools/src/xgettext.h (struct arglist_parser): Add 'next_is_msgctxt'
4415         field.
4416         (arglist_parser_remember_msgctxt): New declaration.
4417         * gettext-tools/src/xgettext.c (arglist_parser_alloc, arglist_parser_clone):
4418         Update accordingly.
4419         (arglist_parser_remember_msgctxt): New function.
4420         * gettext-tools/src/x-sh.c (init_keywords): Recognize also eval_pgettext and
4421         eval_npgettext.
4422         (init_flag_table_sh): Set flags for eval_pgettext, eval_npgettext.
4423         (substring_of_word): New function.
4424         (read_command): Recognize and handle -c/--context argument of 'gettext' and
4425         'ngettext'.
4426         * gettext-tools/tests/lang-sh: Add test of message lookup with context.
4427         * gettext-runtime/doc/rt-gettext.texi: Mention the --context option.
4428         * gettext-runtime/doc/rt-ngettext.texi: Likewise.
4429         * gettext-tools/doc/gettext.texi (sh, Preparing Shell Scripts, gettext.sh):
4430         Mention the new shell functions.
4431         (eval_pgettext Invocation, eval_npgettext Invocation): New subsubsections.
4432         * gettext-tools/doc/xgettext.texi: Mention the support for eval_pgettext,
4433         eval_npgettext.
4434         * NEWS: Mention the changes.
4435
4436 2018-08-12  Bruno Haible  <bruno@clisp.org>
4437
4438         gettext-runtime/intl/setlocale.c: Add fixes from gnulib.
4439         2018-08-11  Bruno Haible  <bruno@clisp.org>
4440
4441                 setlocale: Trivial simplification.
4442                 * lib/setlocale.c (setlocale_unixlike): Remove redundant #if.
4443
4444         2017-04-21  Bruno Haible  <bruno@clisp.org>
4445
4446                 Fix test-mbrtowc5.sh failure on native Windows.
4447                 * setlocale.c (setlocale_unixlike): Accept "POSIX" as an alias for
4448                 "C".
4449
4450         2016-03-22  Geert Janssens  <janssens-geert@telenet.be>
4451
4452                 setlocale: add "sv" to Windows language table
4453                 * setlocale.c (language_table) [W32]: Add "sv".
4454                 Reported in <https://savannah.gnu.org/bugs/?44588>.
4455
4456         2012-01-04  Bruno Haible  <bruno@clisp.org>
4457
4458                 Talk about "native Windows API", not "Win32".
4459                 * setlocale.c: Update comments to mention native Windows.
4460
4461 2018-07-25  Bruno Haible  <bruno@clisp.org>
4462
4463         Upgrade to newer help2man.
4464         Reported by Bernhard M. Wiedemann in <https://savannah.gnu.org/bugs/?54367>.
4465
4466         * gettext-runtime/man/help2man: Upgrade to version 1.47.6, with one change:
4467           $source ||= "$program $version";
4468           replaced by
4469           $source ||= "$package $version";
4470         * gettext-tools/man/help2man: Likewise.
4471
4472 2018-07-25  Bruno Haible  <bruno@clisp.org>
4473
4474         Make it possible to copy&paste strings from the HTML-formatted man pages.
4475         * gettext-runtime/man/Makefile.am (MAN2HTML_POSTPROCESS): New variable.
4476         (gt_man2html): Use it.
4477         * gettext-tools/man/Makefile.am (MAN2HTML_POSTPROCESS): New variable.
4478         (gt_man2html): Use it.
4479
4480 2018-07-03  Bruno Haible  <bruno@clisp.org>
4481
4482         Enable the format_arg attribute also on clang on Mac OS X.
4483         Reported by Tom Tromey <tom@tromey.com>
4484         in <https://lists.gnu.org/archive/html/bug-gettext/2018-07/msg00000.html>.
4485
4486         * gettext-runtime/intl/libgnuintl.in.h (_INTL_MAY_RETURN_STRING_ARG): On macOS,
4487         use attribute __format_arg__ if the compiler is based on clang >= 3.0.
4488
4489 2018-07-03  Bruno Haible  <bruno@clisp.org>
4490
4491         Make the format_arg attribute effective also in the case _INTL_REDIRECT_INLINE.
4492         Reported by Tom Tromey <tom@tromey.com>
4493         in <https://lists.gnu.org/archive/html/bug-gettext/2018-07/msg00000.html>.
4494
4495         * gettext-runtime/intl/libgnuintl.in.h (gettext, dgettext, dcgettext,
4496         ngettext, dngettext, dcngettext): Add attribute __format_arg__ also to the
4497         'static inline' functions.
4498
4499 2018-06-17  Bruno Haible  <bruno@clisp.org>
4500
4501         Fix a NEWS entry.
4502         NEWS: Fix entry from 2016-07-01.
4503
4504 2018-05-14  Bruno Haible  <bruno@clisp.org>
4505
4506         Update .gitignore.
4507
4508 2018-05-14  Bruno Haible  <bruno@clisp.org>
4509
4510         xgettext: Improve support for specialized vector syntax in Scheme.
4511         Reported by Florent Angly <Florent.Angly@cslbehring.com>.
4512
4513         * gettext-tools/src/x-scheme.c (read_object): Don't call free_token on an
4514         uninitialized token. Support recent syntax for homogeneous vector types (SRFI-4)
4515         and byte vectors as well.
4516         * NEWS: Mention the change.
4517
4518 2018-05-12  Bruno Haible  <bruno@clisp.org>
4519
4520         libintl: Ensure the *printf function overrides are POSIX compatible.
4521         Reported by Eli Zaretskii <eliz@gnu.org>.
4522
4523         * gettext-runtime/intl/printf.c (USE_REPLACEMENT_CODE_ALWAYS): New macro.
4524         (libintl_vfprintf, libintl_vsprintf, libintl_vsnprintf, libintl_vfwprintf,
4525         libintl_vswprintf): Use it.
4526         * NEWS: Mention the change.
4527
4528 2018-05-05  Bruno Haible  <bruno@clisp.org>
4529
4530         all: Replace more http and ftp URLs by https URLs.
4531         * autogen.sh: Use https: URLs.
4532         * gettext-runtime/doc/nls.texi (Translating Teams, Available Packages): Likewise.
4533         * gettext-tools/doc/gettext.texi: Likewise.
4534         * gettext-tools/doc/FAQ.html: Likewise.
4535         * gettext-tools/doc/tutorial.html: Likewise.
4536         * gettext-tools/misc/gettextize.in: Likewise.
4537         * gettext-tools/projects/GNOME/team-address: Likewise.
4538         * gettext-tools/projects/GNOME/teams.url: Likewise.
4539         * gettext-tools/projects/KDE/team-address: Likewise.
4540         * gettext-tools/projects/KDE/teams.url: Likewise.
4541         * gettext-tools/projects/TP/teams.url: Likewise.
4542         * gettext-tools/src/x-python.c: Likewise.
4543         * gettext-tools/tests/xgettext-its-1: Likewise.
4544
4545         all: Use https: URLs in --version output.
4546         * gettext-runtime/src/envsubst.c: Use https: URL in --version output.
4547         * gettext-runtime/src/gettext.c: Likewise.
4548         * gettext-runtime/src/gettext.sh.in: Likewise.
4549         * gettext-runtime/src/ngettext.c: Likewise.
4550         * gettext-tools/misc/autopoint.in: Likewise.
4551         * gettext-tools/misc/convert-archive.in: Likewise.
4552         * gettext-tools/misc/gettextize.in: Likewise.
4553         * gettext-tools/src/cldr-plurals.c: Likewise.
4554         * gettext-tools/src/hostname.c: Likewise.
4555         * gettext-tools/src/msgattrib.c: Likewise.
4556         * gettext-tools/src/msgcat.c: Likewise.
4557         * gettext-tools/src/msgcmp.c: Likewise.
4558         * gettext-tools/src/msgcomm.c: Likewise.
4559         * gettext-tools/src/msgconv.c: Likewise.
4560         * gettext-tools/src/msgen.c: Likewise.
4561         * gettext-tools/src/msgexec.c: Likewise.
4562         * gettext-tools/src/msgfilter.c: Likewise.
4563         * gettext-tools/src/msgfmt.c: Likewise.
4564         * gettext-tools/src/msggrep.c: Likewise.
4565         * gettext-tools/src/msginit.c: Likewise.
4566         * gettext-tools/src/msgmerge.c: Likewise.
4567         * gettext-tools/src/msgunfmt.c: Likewise.
4568         * gettext-tools/src/msguniq.c: Likewise.
4569         * gettext-tools/src/recode-sr-latin.c: Likewise.
4570         * gettext-tools/src/urlget.c: Likewise.
4571         * gettext-tools/src/xgettext.c: Likewise.
4572         * gettext-tools/tests/tstgettext.c: Likewise.
4573         * gettext-tools/tests/tstngettext.c: Likewise.
4574         * gnulib-local/build-aux/moopp: Likewise.
4575
4576         all: Replace http URLs by https URLs in copyright notices.
4577
4578         Simplify code. Drop support for Borland C++ on Windows.
4579         * gettext-runtime/intl/dcigettext.c: Simplify
4580         'defined _WIN32 || defined __WIN32__' to just 'defined _WIN32'.
4581         * gettext-runtime/intl/l10nflist.c: Likewise.
4582         * gettext-runtime/intl/langprefs.c: Likewise.
4583         * gettext-runtime/intl/libgnuintl.in.h: Likewise.
4584         * gettext-runtime/intl/loadinfo.h: Likewise.
4585         * gettext-runtime/intl/setlocale.c: Likewise.
4586         * gettext-runtime/intl/printf-parse.c: Likewise.
4587         * gettext-runtime/libasprintf/printf-parse.c: Likewise.
4588         * gettext-tools/src/format-c-parse.h: Likewise.
4589         * gettext-tools/src/hostname.c: Likewise.
4590         * gnulib-local/lib/basename.c: Likewise.
4591
4592         Update after gnulib changed.
4593         * Makefile.am (distcheck-hook): Update comparison of flexmember.h.
4594         * gettext-runtime/intl/localcharset.c: Update from gnulib.
4595         * gettext-runtime/intl/localename.c: Likewise.
4596         * gettext-runtime/intl/lock.h: Likewise.
4597         * gettext-runtime/intl/relocatable.c: Likewise.
4598         * gettext-runtime/intl/vasnprintf.c: Likewise.
4599         * gettext-runtime/intl/verify.h: Likewise.
4600         * gettext-runtime/intl/xsize.h: Likewise.
4601         * gettext-runtime/libasprintf/vasnprintf.c: Likewise.
4602         * gettext-runtime/m4/*.m4: Likewise.
4603         * gettext-tools/examples/po/remove-potcdate.sin: Likewise.
4604         * gnulib-local/lib/execute.c.diff: Update.
4605
4606         Update to newest gnulib.
4607
4608 2018-03-24  Bruno Haible  <bruno@clisp.org>
4609
4610         Add support for recent Java versions.
4611         Reported by Emmanuel Bourg <ebourg@apache.org>
4612         at <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=892733>
4613         via Santiago Vila.
4614
4615         * gettext-runtime/configure.ac: Require a Java compiler that supports
4616         source-version 1.5 and target-version 1.6 (such as Java 6 or newer, or
4617         GCJ 4.3 or newer).
4618         * gettext-tools/src/write-java.c (msgdomain_write_java): Likewise
4619         * gettext-tools/examples/hello-java-qtjambi/configure.ac: Likewise.
4620         * gettext-tools/configure.ac: Require a Java compiler that supports
4621         source-version 1.5 (such as Java 5 or newer, or GCJ 4.3 or newer).
4622         * gettext-tools/examples/hello-java/configure.ac: Likewise.
4623         * gettext-tools/examples/hello-java-awt/configure.ac: Likewise.
4624         * gettext-tools/examples/hello-java-swing/configure.ac: Likewise.
4625         * NEWS: Mention the change.
4626
4627 2018-03-24  Bruno Haible  <bruno@clisp.org>
4628
4629         Update README-alpha.
4630         * README-alpha: Don't suggest private email for bug reports about test releases.
4631
4632         Comment.
4633         * .dir-locals.el: Add comment.
4634
4635         Update after gnulib changed.
4636         * gnulib-local/lib/unistd.in.h.diff: Update.
4637         * gnulib-local/lib/regexec.c.diff: Remove file.
4638         * gnulib-local/Makefile.am (EXTRA_DIST): Remove it.
4639
4640         Update to newest gnulib
4641
4642         Update NEWS file.
4643         * NEWS: Add a missing entry (for a change from 2016-12-15).
4644
4645 2018-03-15  Bruno Haible  <bruno@clisp.org>
4646
4647         doc: Fix statement about required Bison version.
4648         Reported by Amit Chaudhuri <amit.k.chaudhuri@gmail.com>.
4649
4650         * HACKING: Required minimum Bison version is now 3.0, for cldr-plural.y.
4651
4652 2018-01-27  Bruno Haible  <bruno@clisp.org>
4653
4654         Rename some files.
4655         * INSTALL.windows: Renamed from README.windows.
4656         * Makefile.am (EXTRA_DIST): Update.
4657         * gettext-runtime/INSTALL.windows: Renamed from gettext-runtime/README.windows.
4658         * gettext-runtime/Makefile.am (EXTRA_DIST): Update.
4659         * gettext-runtime/intl/INSTALL.windows: Renamed from gettext-runtime/intl/README.windows.
4660         * gettext-runtime/intl/Makefile.in (DISTFILES.gettext): Update.
4661         * gettext-runtime/libasprintf/INSTALL.windows: Renamed from gettext-runtime/libasprintf/README.windows.
4662         * gettext-runtime/libasprintf/Makefile.am (EXTRA_DIST): Update.
4663         * gettext-tools/INSTALL.windows: Renamed from gettext-tools/README.windows.
4664         * gettext-tools/Makefile.am (EXTRA_DIST): Update.
4665
4666         xgettext: Support '_' in number tokens in C++.
4667         * gettext-tools/src/x-c.c (phase5_get): Recognize '_' in C++.
4668         * NEWS: Update.
4669
4670 2018-01-07  Bruno Haible  <bruno@clisp.org>
4671
4672         xgettext: Support 'p'/'P' exponent markers in number tokens also in C.
4673         * gettext-tools/src/x-c.c (phase5_get): Recognize sign after 'p' or 'P' also
4674         in C.
4675         * NEWS: Update.
4676
4677 2018-01-07  Bruno Haible  <bruno@clisp.org>
4678
4679         Avoid a test failure of lang-gawk.
4680         It's a bug in gawk 4.2.0, reported at
4681         https://lists.gnu.org/archive/html/bug-gawk/2018-01/msg00026.html .
4682
4683         * gettext-tools/tests/lang-gawk: Skip the test if gawk's version is 4.2.0.
4684
4685 2018-01-06  Bruno Haible  <bruno@clisp.org>
4686
4687         Add support for new C++ preprocessing number tokens.
4688         Reported by Moritz Bunkus <moritz@bunkus.org>
4689         at <https://savannah.gnu.org/bugs/?50117>.
4690
4691         * gettext-tools/src/x-c.c (phase5_get): Recognize C++14 and C++17 extensions of
4692         preprocessing number tokens.
4693         * gettext-tools/tests/xgettext-c-22: New file.
4694         * gettext-tools/tests/Makefile.am (TESTS): Add it.
4695         * NEWS: Mention the change.
4696
4697 2018-01-06  Bruno Haible  <bruno@clisp.org>
4698
4699         Comment fix.
4700         * gettext-tools/tests/xgettext-c-20: Fix typo in comment.
4701
4702         doc: Document the data formats supported by the tools in a central place.
4703         * gettext-tools/doc/gettext.texi (Data Formats): New chapter.
4704         (Internationalizable Data): Moved here from chapter "Programming Languages".
4705
4706         Avoid a test failure of lang-csharp on Mac OS X.
4707         * gettext-tools/tests/lang-csharp: Don't test in $LOCALE_FR on Mac OS X.
4708
4709         xgettext: Add support for .properties files in UTF-8 encoding.
4710         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add read-file, unistr/u8-check.
4711         * gettext-tools/src/read-properties: Read the file into memory, then find out
4712         about its encoding, then start parsing it.
4713         * gettext-tools/tests/xgettext-properties-2: New file.
4714         * gettext-tools/tests/xgettext-properties-3: New file.
4715         * gettext-tools/tests/xgettext-properties-4: New file.
4716         * gettext-tools/tests/Makefile.am (TESTS): Add them.
4717         * NEWS: Mention the change.
4718
4719 2018-01-05  Bruno Haible  <bruno@clisp.org>
4720
4721         Add support for .rsj files.
4722         * gettext-tools/src/x-rst.h (EXTENSIONS_RST, SCANNERS_RST): Add RSJ scanner.
4723         (extract_rsj): New declaration.
4724         * gettext-tools/src/x-rst.c: Implement extraction from .rsj files.
4725         * gettext-tools/src/xgettext.c (usage): Mention RSJ along with RST.
4726         * gettext-tools/tests/xgettext-rst-1: New file.
4727         * gettext-tools/tests/xgettext-rst-2: New file.
4728         * gettext-tools/tests/Makefile.am (TESTS): Add them.
4729         * gettext-tools/tests/lang-pascal: Extract from .rsj file, if the compiler
4730         generated it.
4731         * gettext-tools/doc/gettext.texi (RST): Mention that .rsj files are supported
4732         as well.
4733         * gettext-tools/doc/xgettext.texi (Choice of input file language): Mention RSJ
4734         along with RST.
4735         * NEWS: Mention the change.
4736
4737 2018-01-05  Bruno Haible  <bruno@clisp.org>
4738
4739         Fix failure of lang-javascript on Ubuntu 16.04.
4740         pkg-config almost never works. It is best to never use it.
4741
4742         * gettext-tools/tests/lang-javascript: Don't use pkg-config to test whether
4743         the installed gjs is appropriate.
4744
4745 2018-01-05  Bruno Haible  <bruno@clisp.org>
4746
4747         Fix a comment.
4748         * gettext-tools/src/x-stringtable.h: Fix typo in comment.
4749
4750 2018-01-04  Bruno Haible  <bruno@clisp.org>
4751
4752         doc: More information for maintainers.
4753         * HACKING: New section 'Additional requirements for maintainers'.
4754
4755 2018-01-04  Bruno Haible  <bruno@clisp.org>
4756
4757         Use locales with the customary names.
4758         On glibc systems, nowadays, the German and French locales are named
4759         'de_DE.UTF-8' and 'fr_FR.UTF-8', respectively. This change avoids the need
4760         to install similar locales with different names.
4761
4762         * gettext-tools/tests/gettext-3: Use locales with '.UTF-8' suffix.
4763         * gettext-tools/tests/gettext-3-prg.c (lang): Likewise.
4764
4765 2018-01-04  Bruno Haible  <bruno@clisp.org>
4766
4767         doc: Add information about lua-gettext package.
4768         * gettext-tools/doc/gettext.texi (Lua): Describe from where to get the
4769         lua-gettext package.
4770
4771         doc: Add information about Ubuntu packages.
4772         * gettext-tools/doc/gettext.texi (List of Programming Languages): Add a
4773         subsection 'Ubuntu packages' for each.
4774
4775 2018-01-03  Bruno Haible  <bruno@clisp.org>
4776
4777         Fix msgunfmt-3 failure (regression from 2017-09-24).
4778         * gettext-tools/tests/Makefile.am (EXTRA_DIST): Add sysdep-without-nul.mo.
4779
4780         Update dependencies list.
4781         * HACKING: Add Lzip (needed for "make dist" since 2014-12-24).
4782
4783 2018-01-03  Bruno Haible  <bruno@clisp.org>
4784
4785         Fix "make dist" of modified git checkouts.
4786         This fixes error messages such as
4787         tar: gettext-0.19.8.1.74-72e49-dirty/gettext-tools/gnulib-tests/test-term-ostream-xterm-linux-mandriva.out: file name is too long (max 99); not dumped
4788         tar: gettext-0.19.8.1.74-72e49-dirty/gettext-runtime/intl-csharp/doc/GNU_Gettext_GettextResourceManager.html: file name is too long (max 99); not dumped
4789
4790         * configure.ac: Pass option 'tar-ustar' to AM_INIT_AUTOMAKE.
4791         (am__tar): Use 'tar' option --format=ustar.
4792
4793 2018-01-02  Bruno Haible  <bruno@clisp.org>
4794
4795         Clarify required bison version.
4796         Reported by Roger Mc Murtrie <rogermc@grapevine.com.au>
4797         at <https://savannah.gnu.org/bugs/?47484>.
4798
4799         * HACKING: Mention minimum version of bison.
4800
4801 2018-01-02  Bruno Haible  <bruno@clisp.org>
4802
4803         Avoid build failures caused by parallel make.
4804         Reported by Andrew Stormont <andyjstormont@gmail.com>
4805         at <https://savannah.gnu.org/bugs/?48412>.
4806
4807         * gettext-tools/doc/Makefile.am (GNUMAKEFLAGS): New variable.
4808         * gettext-tools/src/Makefile.am (cldr-plural.h): Add dependency.
4809
4810 2018-01-02  Bruno Haible  <bruno@clisp.org>
4811
4812         Fix 'ar' invocation when cross-compiling and in 64-bit mode on AIX.
4813         Reported by Benedikt Morbach <bmorbach@redhat.com>
4814         at <https://savannah.gnu.org/bugs/?43037>.
4815
4816         * gettext-runtime/m4/intl.m4 (AM_INTL_SUBDIR): Require gl_PROG_AR_RANLIB if
4817         available. Otherwise, use AC_PROG_RANLIB and set AR and ARFLAGS.
4818         * gettext-runtime/intl/Makefile.in (AR): Use the value determined through
4819         autoconf.
4820         (ARFLAGS): New variable.
4821         (libintl.a, libgnuintl.a): Use it.
4822         * gettext-runtime/configure.ac: Invoke gl_PROG_AR_RANLIB.
4823         * gettext-runtime/libasprintf/configure.ac: Likewise.
4824         * gettext-tools/configure.ac: Likewise.
4825
4826 2018-01-02  Bruno Haible  <bruno@clisp.org>
4827
4828         Don't use -lc explicitly when linking with libtool.
4829         libtool has logic that determines whether it should add -lc, and this logic
4830         works fine on all modern platforms.
4831
4832         Reported by Michael Forney <mforney@mforney.org>
4833         at <https://savannah.gnu.org/bugs/?40192>.
4834
4835         * gettext-runtime/m4/intl.m4 (AM_INTL_SUBDIR): Don't set LTLIBC.
4836         * gettext-runtime/intl/Makefile.in (libintl.la, libgnuintl.la): Don't use
4837         LTLIBC.
4838
4839 2017-10-15  Bruno Haible  <bruno@clisp.org>
4840
4841         Clarify copyright and license of some files.
4842         Reported by Joël Krähemann at <https://savannah.gnu.org/bugs/?52227>.
4843
4844         * gettext-runtime/po/Makefile.in.in: Correct copyright holder.
4845         * gettext-runtime/po/remove-potcdate.sin: Use the same licensing terms as Makefile.in.in.
4846         * gettext-runtime/po/Rules-quot: Use an all-permissive license.
4847         * gettext-tools/po/Makevars.template: Likewise.
4848         * gettext-runtime/po/Makevars: Likewise.
4849         * gettext-tools/po/Makevars: Likewise.
4850         * gettext-runtime/po/POTFILES.in: Use GPLv3+.
4851         * gettext-tools/po/POTFILES.in: Likewise.
4852
4853 2017-09-30  Bruno Haible  <bruno@clisp.org>
4854
4855         Fix an out-of-bounds memory read.
4856         Reported by Jakub Wilk <jwilk@jwilk.net>.
4857
4858         * gnulib-local/lib/term-ostream.oo.c (term_ostream_create): Pass the correct
4859         length to memcmp().
4860
4861 2017-09-24  Daiki Ueno  <ueno@gnu.org>
4862
4863         Test of verification of system dependent strings in .mo files.
4864         * gettext-tools/tests/sysdep-without-nul.mo: New file, from Jakub Wilk.
4865         * gettext-tools/tests/msgunfmt-3: Add test of sysdep-without-nul.mo.
4866
4867 2017-09-24  Bruno Haible  <bruno@clisp.org>
4868
4869         Verify that system dependent strings in .mo files are NUL terminated.
4870         Reported by Jakub Wilk <jwilk@jwilk.net> in
4871         <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876498>.
4872
4873         * gettext-runtime/intl/loadmsgcat.c (_nl_load_domain): Bail out if some of the
4874         system-dependent strings has a last static segment that is not NUL terminated.
4875         * gettext-tools/src/read-mo.c (get_sysdep_string): Likewise.
4876
4877 2017-09-24  Bruno Haible  <bruno@clisp.org>
4878
4879         libintl: Fix pointer use after free.
4880         * gettext-runtime/intl/loadmsgcat.c (_nl_load_domain): Perform the same lock
4881         deallocation outside libc as in libc (patch from 2013-09-06).
4882
4883 2017-08-29  Bruno Haible  <bruno@clisp.org>
4884
4885         AppData: Update documentation.
4886         * gettext-tools/doc/gettext.texi (AppData): Add reference to the specification.
4887         Mention support for file extension .metainfo.xml.
4888
4889 2017-08-29  Matthias Klumpp  <matthias@tenstral.net>
4890
4891         Extend the AppData "language" to also support AppStream metainfo files.
4892         Fixes <https://savannah.gnu.org/bugs/?50414>,
4893         reported by Piotr Drąg <piotrdrag@gmail.com>.
4894
4895         * gettext-tools/its/metainfo.its: Renamed from gettext-tools/its/appdata.its.
4896         * gettext-tools/its/metainfo.loc: Renamed from gettext-tools/its/appdata.loc.
4897         Recognize also suffix ".metainfo.xml".
4898         * gettext-tools/its/Makefile.am (dist_its_DATA): Update.
4899         * gettext-tools/src/x-appdata.h: Update comment.
4900
4901 2017-08-29  Bruno Haible  <bruno@clisp.org>
4902
4903         AppData: Simplify code.
4904         * gettext-tools/src/x-appdata.h (EXTENSIONS_APPDATA): Define to empty, as the
4905         supported extensions are now defined in the *.loc files.
4906
4907 2017-08-29  Matthias Klumpp  <matthias@tenstral.net>
4908
4909         Translate <developer_name> elements in AppData files.
4910         Fixes <https://savannah.gnu.org/bugs/?50408>,
4911         reported by Piotr Drąg <piotrdrag@gmail.com>.
4912
4913         * gettext-tools/its/appdata.its: Mark <developer_name> elements as translatable.
4914
4915 2017-08-22  Bruno Haible  <bruno@clisp.org>
4916
4917         Remove an obsolete configure test.
4918         * gettext-tools/configure.ac: Remove obsolete test that used the obsolete file
4919         <xlocale.h>.
4920
4921 2017-08-22  Bruno Haible  <bruno@clisp.org>
4922
4923         Avoid extraneous NUL bytes in .mo files.
4924         Reported by Jakub Wilk <jwilk@jwilk.net> via Santiago Vila <sanvila@unex.es>
4925         in <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=872869>.
4926
4927         * gettext-tools/src/msgl-header.c (msgdomain_list_set_header_field,
4928         message_list_delete_header_field): Adjust msgstr_len when modifying msgstr.
4929
4930 2017-07-15  Bruno Haible  <bruno@clisp.org>
4931
4932         Get rid of autom4te.cache directories, as far as possible.
4933         * autogen.sh: Remove autom4te.cache directories after running autoconf,
4934         autoheader, automake.
4935
4936 2017-07-15  Bruno Haible  <bruno@clisp.org>
4937
4938         Fix bug: gettextize does not add intlmacosx.m4 file.
4939         Reported by Eli Zaretskii via Gavin Smith in
4940         <http://lists.gnu.org/archive/html/bug-texinfo/2017-07/msg00026.html>.
4941
4942         * gettext-tools/misc/gettextize.in (m4filelist): Include intlmacosx.m4 also
4943         when --intl option is not given.
4944         * gettext-tools/doc/gettext.texi (aclocal): Add intlmacosx.m4 to file list.
4945
4946 2017-06-15  Bruno Haible  <bruno@clisp.org>
4947
4948         gettext.h: Update theoretical condition for use of variable size arrays.
4949         Reported by Paul Eggert.
4950
4951         * gnulib-local/lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Extend
4952         comment to include the theoretical condition for availability of variable size
4953         arrays, if we could trust the value of __STDC_VERSION__.
4954
4955 2017-05-22  Bruno Haible  <bruno@clisp.org>
4956
4957         Fix hyperlink to CLHS.
4958         * gettext-tools/doc/gettext.texi (lisp-format): Fix hyperlink.
4959
4960 2017-05-19  Bruno Haible  <bruno@clisp.org>
4961
4962         Fix memory leaks.
4963         Found by Coverity.
4964
4965         * gettext-runtime/intl/loadmsgcat.c (_nl_load_domain): Free allocated memory
4966         before returning in out-of-memory case.
4967         * gettext-runtime/intl/localealias.c (relocate2): Define fallback.
4968         (read_alias_file): Invoke relocate2 instead of relocate. Free the allocated
4969         memory.
4970
4971 2017-05-19  Bruno Haible  <bruno@clisp.org>
4972
4973         Fix missing unlock.
4974         Found by Coverity.
4975
4976         * gettext-runtime/intl/dcigettext.c (_nl_find_msg): Unlock the lock and
4977         free allocated memory before returning.
4978
4979 2017-05-19  Bruno Haible  <bruno@clisp.org>
4980
4981         Update gettext-runtime files from gnulib.
4982         * Makefile.am (distcheck-hook): Check also flexmember.m4, flexmember.h.
4983         * gettext-runtime/intl/Makefile.in (SOURCES): Add flexmember.h.
4984         * gettext-runtime/intl/flexmember.h: New file, from gnulib.
4985         * gettext-runtime/intl/localcharset.c:
4986           * localcharset.c (relocate2): Define fallback.
4987           (get_charset_aliases): Invoke relocate2 instead of relocate. Free the
4988           allocated memory.
4989           * localcharset.c (WINDOWS_NATIVE): Don't define on Cygwin.
4990           * localcharset.c (locale_charset) [WINDOWS_NATIVE]: Don't use the
4991           return value from setlocale if it would lead to a buffer overrun.
4992         * gettext-runtime/intl/localename.c:
4993           * localename.c [__CYGWIN__]: Include <langinfo.h>, since this is
4994           where NL_LOCALE_NAME is defined.
4995           * localename.c (WINDOWS_NATIVE): Don't define on Cygwin.
4996           * localename.c (gl_locale_name_thread_unsafe): Add clause for
4997           Cygwin.
4998           * localename.c (struct hash_node): Use FLEXIBLE_ARRAY_MEMBER.
4999         * gettext-runtime/intl/lock.c:
5000           * lock.c: On glibc systems without
5001           PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, use the fallback
5002           implementation of rwlocks.
5003           * lock.c [USE_POSIX_THREADS]
5004           (glthread_rwlock_init_for_glibc): New function.
5005           [USE_POSIX_THREADS] (glthread_rwlock_rdlock_multithreaded): Update
5006           comment.
5007           [USE_PTH_THREADS]: New implementation of rwlocks.
5008           [USE_WINDOWS_THREADS] (glthread_rwlock_rdlock_func): Prefer writers over
5009           readers.
5010         * gettext-runtime/intl/lock.h:
5011           * lock.h (pthread_rwlockattr_setkind_np): Don't declare
5012           weak on non-glibc platforms.
5013           * lock.h: On glibc systems without
5014           PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, use the fallback
5015           implementation of rwlocks.
5016           * lock.h [USE_POSIX_THREADS_WEAK]: Declare also
5017           pthread_rwlockattr_init, pthread_rwlockattr_setkind_np,
5018           pthread_rwlockattr_destroy weak.
5019           * lock.h [USE_POSIX_THREADS]: Test
5020           HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER. Use a different implementation
5021           of rwlock initialization on glibc systems without
5022           HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER. Use a different implementation
5023           of rwlocks altogether on non-glibc systems without
5024           HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER.
5025           [USE_PTH_THREADS]: Use a different implementation of rwlocks altogether.
5026         * gettext-runtime/intl/relocatable.c:
5027           * relocatable.c (relocate2): New function.
5028           * relocatable.c (relocate): Assume pathname is non-NULL. Use
5029           ISSLASH macro consistently. Avoid dangerous string concatenation idiom.
5030         * gettext-runtime/intl/relocatable.h:
5031           * relocatable.h (relocate2): New declaration/macro.
5032         * gettext-runtime/intl/vasnprintf.c, gettext-runtime/libasprintf/vasnprintf.c:
5033           * vasnprintf.c (FALLTHROUGH): New macro.
5034           Use it whenever one switch case falls through into the next.
5035           * vasnprintf.c (USE_MSVC__SNPRINTF): New macro.
5036           Everywhere, use !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF instead
5037           of !HAVE_SNPRINTF_RETVAL_C99.
5038           * vasnprintf.c (VASNPRINTF): Move comment down past two cpp
5039           directives, so that it takes effect once again.  This is clearly
5040           not a proper change, and I will revert it once this bug is fixed:
5041           https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77817
5042           * vasnprintf.c (IF_LINT): Treat GCC_LINT like lint.
5043         * gettext-runtime/intl/verify.h:
5044           * verify.h (verify) [!__GNUC__]:
5045           Use shorter albeit meaningless string to bypass silly compiler limits.
5046           * verify.h (assume): Treat GCC_LINT like lint.
5047         * gettext-runtime/intl/xsize.h: Update.
5048         * gettext-runtime/m4/Makefile.am (EXTRA_DIST): Add flexmember.m4.
5049         * gettext-runtime/m4/extern-inline.m4: Update.
5050         * gettext-runtime/m4/fcntl-o.m4: Update.
5051         * gettext-runtime/m4/flexmember.m4: New file, from gnulib.
5052         * gettext-runtime/m4/glibc2.m4: Update.
5053         * gettext-runtime/m4/glibc21.m4: Update.
5054         * gettext-runtime/m4/intdiv0.m4: Update.
5055         * gettext-runtime/m4/intl.m4 (AM_INTL_SUBDIR): Require AC_C_FLEXIBLE_ARRAY_MEMBER.
5056         * gettext-runtime/m4/intmax.m4: Update.
5057         * gettext-runtime/m4/inttypes-pri.m4: Update.
5058         * gettext-runtime/m4/inttypes_h.m4: Update.
5059         * gettext-runtime/m4/lock.m4 (gl_LOCK): Invoke gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER.
5060         * gettext-runtime/m4/longlong.m4: Update.
5061         * gettext-runtime/m4/printf-posix.m4: Update.
5062         * gettext-runtime/m4/progtest.m4: Update.
5063         * gettext-runtime/m4/size_max.m4: Update.
5064         * gettext-runtime/m4/stdint_h.m4: Update.
5065         * gettext-runtime/m4/threadlib.m4 (gl_THREADLIB_BODY): Don't set
5066         PTHREAD_IN_USE_DETECTION_HARD if configuring on Solaris 10 or newer.
5067         Reported by Peter Felecan at <https://savannah.gnu.org/bugs/?32087>.
5068         * gettext-runtime/m4/uintmax_t.m4: Update.
5069         * gettext-runtime/m4/visibility.m4: Update.
5070         * gettext-runtime/m4/wchar_t.m4: Update.
5071         * gettext-runtime/m4/xsize.m4: Update.
5072         * gettext-runtime/tests/test-lock.c:
5073           * test-lock.c: On Mac OS X, use named semaphores, not unnamed
5074           semaphores.
5075           (USE_NAMED_SEMAPHORE, USE_UNNAMED_SEMAPHORE): New macros.
5076           (atomic_int_semaphore): New macro.
5077           * test-lock.c (USE_SEMAPHORE): Don't set if <semaphore.h> does not
5078           exist.
5079           * test-lock.c (USE_SEMAPHORE): New constant.
5080           (struct atomic_int, init_atomic_int, get_atomic_int_value,
5081           set_atomic_int_value) [USE_SEMAPHORE]: Define using a POSIX semaphore.
5082           Suggested by Torvald Riegel <triegel@redhat.com>.
5083
5084 2017-05-18  Bruno Haible  <bruno@clisp.org>
5085
5086         Update after gnulib changed.
5087         * gnulib-local/lib/fnmatch_loop.c.diff: Update.
5088
5089         Update gnulib
5090
5091 2017-05-16  Bruno Haible  <bruno@clisp.org>
5092
5093         Update after gnulib changed.
5094         * gnulib-local/lib/getopt-core.h.diff: New file.
5095         * gnulib-local/lib/getopt.in.h.diff: Remove file.
5096         * gnulib-local/lib/unistd.in.h.diff: Update.
5097         * gnulib-local/modules/fnmatch.diff: Update.
5098         * gnulib-local/Makefile.am (EXTRA_DIST): Add lib/getopt-core.h.diff. Remove
5099         lib/getopt.in.h.diff.
5100         * gettext-runtime/m4/wint_t.m4: Update from gnulib.
5101         * autogen.sh: In the gnulib-tool invocations, avoid gnulib test modules that
5102         depend on 'hash' (because we use a different 'hash' module).
5103         * .gitignore: Update.
5104
5105 2017-05-15  Bruno Haible  <bruno@clisp.org>
5106
5107         Update gnulib
5108
5109 2017-05-15  Bruno Haible  <bruno@clisp.org>
5110
5111         doc: Fix statement about Bulgarian.
5112         Reported by Domingo Bernardo <domingopbernardo@gmail.com>.
5113
5114         * gettext-tools/doc/gettext.texi (Plural forms): Fix classification of
5115         Bulgarian.
5116
5117 2017-05-15  Bruno Haible  <bruno@clisp.org>
5118
5119         Respect the configure option --localedir.
5120         Reported by Markus Gothe at https://savannah.gnu.org/bugs/index.php?49862 .
5121
5122         The AC_SUBSTed variable @localedir@ is supported since Autoconf 2.60.
5123
5124         * gettext-runtime/intl/Makefile.in (localedir): Set to @localedir@. Suggested
5125         by Markus Gothe <nietzsche@lysator.liu.se>.
5126         * gettext-runtime/m4/intldir.m4: Require Autoconf 2.60 or newer.
5127         * gettext-tools/doc/gettext.texi (src/Makefile): Assume Autoconf 2.60 or newer.
5128
5129 2017-05-04  Bruno Haible  <bruno@clisp.org>
5130
5131         Remove the ability to compile the Java programs to native executables.
5132         This ability relied on GCJ, and GCJ was removed from GCC in version 7.1.
5133
5134         * gnulib-local/modules/gcj: Remove file.
5135         * gnulib-local/m4/gcj.m4: Remove file.
5136         * gnulib-local/Makefile.am (EXTRA_DIST): Remove both.
5137         * gnulib-local/m4/java.m4 (gt_JAVA_CHOICE): Map value 'bytecode' to 'yes'.
5138
5139         * autogen.sh (GNULIB_MODULES_TOOLS_OTHER): Remove 'gcj'.
5140         * gettext-tools/configure.ac: Don't invoke gt_GCJ. Don't set BUILDJAVAEXE.
5141         * gettext-tools/src/Makefile.am (DEFS): Remove USEJEXE, GETTEXTJEXEDIR defines.
5142         (GCJ, GCJFLAGS): Remove variables.
5143         (USEJAVA, USEJEXE): Assume BUILDJAVAEXE is false.
5144         (all-java-*, install-data-java-*, installdirs-java-*, uninstall-java-*): Remove
5145         targets that assume BUILDJAVAEXE = true. Rename remaining targets.
5146         (install-exec-java-*): Remove targets.
5147         * gettext-tools/src/read-java.c (msgdomain_read_java: Assume USEJEXE is false.
5148         * gettext-tools/src/urlget.c (fetch): Likewise.
5149         * gettext-tools/tests/msgunfmt-java-1: Don't set GETTEXTJEXEDIR.
5150         * PACKAGING (Java support): Drop text about native executables.
5151
5152         * gettext-tools/m4/Makefile.am (examplesbuildaux_DATA): Remove gcj.m4.
5153         * gettext-tools/examples/hello-java*/autogen.sh: Don't copy gcj.m4.
5154         * gettext-tools/examples/hello-java*/autoclean.sh: Don't remove m4/gcj.m4.
5155         * gettext-tools/examples/hello-java*/m4/Makefile.am (EXTRA_DIST): Remove
5156         gcj.m4.
5157         * gettext-tools/examples/hello-java*/configure.ac: Don't invoke gt_GCJ,
5158         AC_PROG_RANLIB. Remove option --enable-java-exe. Don't set BUILDJAVAEXE. Don't
5159         set USEJEXE.
5160         * gettext-tools/examples/hello-java*/Makefile.am (GCJ, GCJFLAGS, AR, RANLIB):
5161         Remove variables.
5162         [USEJEXE]: Remove section.
5163
5164 2017-04-22  Bruno Haible  <bruno@clisp.org>
5165
5166         Avoid -Wundef warning in gettext.h.
5167         * gnulib-local/lib/gettext.h: Test the value of ENABLE_NLS only if it is defined.
5168         Reported by Tim Rühsen <tim.ruehsen@gmx.de> in
5169         <https://lists.gnu.org/archive/html/bug-gnulib/2017-04/msg00022.html>.
5170
5171 2017-04-19  Bruno Haible  <bruno@clisp.org>
5172
5173         PO mode: Fix typo.
5174         * gettext-tools/misc/po-mode.el (po-select-mark-and-mark): Fix typo in message.
5175
5176 2017-04-19  Bruno Haible  <bruno@clisp.org>
5177
5178         PO mode: Fix recognition of C and C++ modes.
5179         The variable 'mode-name' can contain a suffix, see
5180         https://www.gnu.org/software/emacs/manual/html_node/ccmode/Minor-Modes.html
5181         https://www.gnu.org/software/emacs/manual/html_node/emacs/Electric-C.html
5182         Therefore use 'major-mode' instead of 'mode-name'.
5183
5184         * gettext-tools/misc/po-mode.el (po-preset-string-functions): Test major-mode,
5185         not mode-name.
5186         (po-mode-version-string): Bump to 2.25.
5187
5188         Reported at <https://savannah.gnu.org/bugs/index.php?50830>
5189         by Peter Hull <peterhull90@gmail.com>.
5190
5191 2017-03-20  Bruno Haible  <bruno@clisp.org>
5192
5193         Fix compilation error in <libintl.h> on Cygwin.
5194         Reported by Michael Haubenwallner at https://savannah.gnu.org/bugs/?50595 .
5195
5196         * gettext-runtime/intl/libgnuintl.in.h (newlocale): Hide declaration if
5197           locale_t type is not visible on Cygwin.
5198
5199 2017-02-16  Bruno Haible  <bruno@clisp.org>
5200
5201         Support for Automake targets install-{dvi,ps,pdf,html}.
5202         Reported by Eric Blake at https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25690
5203         via Assaf Gordon.
5204
5205         * gettext-runtime/po/Makefile.in.in (install-dvi, install-ps, install-pdf,
5206         install-html): New empty targets.
5207
5208 2017-01-10  Bruno Haible  <bruno@clisp.org>
5209
5210         Update URLs in READMEs.
5211         * README: Prefer https protocol over http or ftp protocol.
5212         * DEPENDENCIES: Likewise. Point to OpenJDK instead of gcj. Point to Mono instead
5213         of pnet.
5214
5215 2017-01-02  Bruno Haible  <bruno@clisp.org>
5216
5217         lock test: Fix performance problem on multi-core machines.
5218         * gettext-runtime/tests/test-lock.c (USE_VOLATILE): New macro.
5219         (struct atomic_int): New type.
5220         (init_atomic_int, get_atomic_int_value, set_atomic_int_value): New
5221         functions.
5222         (lock_checker_done, rwlock_checker_done, reclock_checker_done): Define
5223         as 'struct atomic_int'.
5224         (lock_checker_thread, test_lock, rwlock_checker_thread, test_rwlock,
5225         reclock_checker_thread, test_recursive_lock): Use the new functions.
5226         Reported by Eric Blake in
5227         https://www.redhat.com/archives/libvir-list/2012-March/msg00854.html
5228         and by Pádraig Brady in
5229         http://lists.gnu.org/archive/html/bug-gnulib/2016-12/msg00117.html.
5230
5231 2016-12-16  Bruno Haible  <bruno@clisp.org>
5232
5233         Add comments about test failures with --disable-nls.
5234         * gettext-tools/tests/lang-bash: Add comment.
5235         * gettext-tools/tests/lang-sh: Likewise.
5236         * gettext-tools/tests/lang-c: Likewise.
5237         * gettext-tools/tests/lang-c++: Likewise.
5238         * gettext-tools/tests/lang-objc: Likewise.
5239
5240 2016-12-15  Bruno Haible  <bruno@clisp.org>
5241
5242         Polish the last commit.
5243
5244 2016-12-15  John Darrington  <john@darrington.wattle.id.au>
5245
5246         msgfmt: Remove POT-Creation-Date field from the header in the output.
5247         This helps reproducible builds.
5248         Reported at <https://savannah.gnu.org/bugs/?49654>.
5249         * gettext-tools/src/msgl-header.h (message_list_delete_header_field): New
5250         declaration.
5251         * gettext-tools/src/msgl-header.c (known_fields): New variable, extracted from
5252         msgdomain_list_set_header_field.
5253         (message_list_delete_header_field): New function.
5254         * gettext-tools/src/write-mo.c: Include msgl-header.h.
5255         (msgdomain_write_mo): Delete the POT-Creation-Date field.
5256         * gettext-tools/src/write-java.c: Include msgl-header.h.
5257         (msgdomain_write_java): Delete the POT-Creation-Date field.
5258         * gettext-tools/src/write-csharp.c: Include msgl-header.h.
5259         (msgdomain_write_csharp): Delete the POT-Creation-Date field.
5260         * gettext-tools/src/write-resources.c: Include msgl-header.h.
5261         (msgdomain_write_csharp_resources): Delete the POT-Creation-Date field.
5262         * gettext-tools/src/write-tcl.c: Include msgl-header.h.
5263         (msgdomain_write_tcl): Delete the POT-Creation-Date field.
5264         * gettext-tools/src/write-qt.c: Include msgl-header.h.
5265         (msgdomain_write_qt): Delete the POT-Creation-Date field.
5266         * gettext-tools/src/write-desktop.c: Include msgl-header.h.
5267         (msgdomain_write_desktop): Delete the POT-Creation-Date field.
5268         * gettext-tools/src/write-xml.c: Include msgl-header.h.
5269         (msgdomain_write_xml): Delete the POT-Creation-Date field.
5270         * gettext-tools/tests/msgfmt-19: New file, based on
5271         gettext-tools/tests/msgfmt-18.
5272         * gettext-tools/tests/Makefile.am (TESTS): Add it.
5273
5274 2016-12-15  Bruno Haible  <bruno@clisp.org>
5275
5276         Fix typo in comment.
5277
5278 2016-12-12  Bruno Haible  <bruno@clisp.org>
5279
5280         Fix error handling in autogen.sh.
5281         * autogen.sh: Don't invoke automake if aclocal, autoconf, or autoheader failed.
5282
5283 2016-12-11  Bruno Haible  <bruno@clisp.org>
5284
5285         Simplify .gitignore.
5286
5287         Remove files deleted by "make maintainer-clean" from version control.
5288
5289         Merge all .gitignore files into a single .gitignore file.
5290
5291         Update and organize the .gitignore files.
5292
5293 2016-12-10  Bruno Haible  <bruno@clisp.org>
5294
5295         Update to newest gnulib.
5296
5297 2016-12-09  Bruno Haible  <bruno@clisp.org>
5298
5299         Fix crash of xgettext with --its option.
5300         * gettext-tools/src/xgettext.c (main): Free contents of its_dirs only when it
5301         was initialized. Fixes bug introduced on 2016-05-16.
5302
5303 2016-12-05  KO Myung-Hun  <komh78-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
5304
5305         intl: Fix that /@unixroot prefix is not working on OS/2 kLIBC
5306         OS/2 kLIBC has a feature to rewrite some path components. For example,
5307         '/@unixroot' is replaced with a value of $UNIXROOT if it is.
5308
5309         So prepending a drive letter to the path starting with '/' makes the
5310         path starting with '/@unixroot' to 'x:/@unixroot' which is unexpected.
5311
5312         This will breaks the behavior of some programs depending on /@unixroot
5313         prefix.
5314
5315         * gettext-runtime/intl/bindtextdom.c (BINDTEXTDOMAIN): Do not touch
5316         dirname if it is started with '/@unixroot'.
5317         * gettext-runtime/intl/relocatable.c (relocate): Do not touch pathname
5318         if it is started with '/@unixroot'.
5319
5320 2016-12-05  Bruno Haible  <bruno@clisp.org>
5321
5322         Fix the last commit.
5323         * autogen.sh: Enable the code of the last commit. Force an update of
5324         build-aux/ylwrap.
5325
5326 2016-12-04  Bruno Haible  <bruno@clisp.org>
5327
5328         Always use the newest released copies of files brought in from Automake.
5329         * autogen.sh: Make sure to get new versions of files brought in by automake.
5330
5331         Make xgettext-its-2 test stronger.
5332         * gettext-tools/tests/xgettext-its-2: Set each environment variable only for
5333         the scope of a single xgettext invocation.
5334
5335         Avoid test failure in non-English locale.
5336         * gettext-tools/tests/xgettext-its-2: Set the environment variable LC_MESSAGES
5337         when we want to check for an error message in English.
5338
5339         Fix an error message when gettextize if run with option -n.
5340         * gettext-tools/misc/gettextize.in: Consider the Makevars.template file at the
5341         location where it is installed, not in $srcdir.
5342
5343         Tweak installation instructions for Windows.
5344         * README.windows: Fix the mingw32 PATH.
5345
5346 2016-11-26  Guido Flohr  <guido.flohr@cantanea.com>
5347
5348         doc: corrected argument numbers
5349
5350 2016-11-25  Guido Flohr  <guido.flohr@cantanea.com>
5351
5352         Perl supports pgettext() and similar functions
5353
5354 2016-11-24  Guido Flohr  <guido.flohr@cantanea.com>
5355
5356         xgettext-perl: detect question mark as operator
5357         After an explicit function call like "somefunc()" a question mark or
5358         slash cannot be regex delimiters.
5359
5360 2016-11-23  Bruno Haible  <bruno@clisp.org>
5361
5362         Update installation instructions for Windows.
5363         * README.windows: Assume a 64-bit Windows. Explain both 32-bit and 64-bit
5364         builds. Add instructions for the MS Visual C/C++ tool chain. Revamp instructions
5365         for Cygwin.
5366         * gettext-runtime/README.windows: Generic reference to top-level file.
5367         * gettext-runtime/intl/README.windows: Likewise.
5368         * gettext-runtime/libasprintf/README.windows: Likewise.
5369         * gettext-tools/README.windows: Likewise.
5370
5371         Drop the nickname "woe32".
5372         * README.windows: Renamed from README.woe32.
5373         * Makefile.am (EXTRA_DIST): Update.
5374         * gettext-runtime/README.windows: Renamed from gettext-runtime/README.woe32.
5375         * gettext-runtime/Makefile.am (EXTRA_DIST): Update.
5376         * gettext-runtime/intl/README.windows: Renamed from gettext-runtime/intl/README.woe32.
5377         * gettext-runtime/intl/Makefile.in (DISTFILES.gettext): Update.
5378         * gettext-runtime/libasprintf/README.windows: Renamed from gettext-runtime/libasprintf/README.woe32.
5379         * gettext-runtime/libasprintf/Makefile.am (EXTRA_DIST): Update.
5380         * gettext-tools/README.windows: Renamed from gettext-tools/README.woe32.
5381         * gettext-tools/Makefile.am (EXTRA_DIST): Update.
5382
5383 2016-11-14  Daiki Ueno  <ueno@gnu.org>
5384
5385         intl: Fix compilation on a system without alloca
5386         * gettext-runtime/intl/dcigettext.c (DCIGETTEXT): Fix typo 'tmp_dirname'
5387         -> 'resolved_dirname'.  Reported by Egor Pugin in:
5388         http://lists.gnu.org/archive/html/bug-gettext/2016-09/msg00008.html
5389
5390 2016-11-02  Daiki Ueno  <ueno@gnu.org>
5391
5392         doc: Mention new bootstrap requirements
5393         * autogen.sh: Require automake >= 1.13.
5394         * HACKING: Require automake >= 1.13, wget, and xz.
5395         Reported by Karl-P. Richter and Bruno Haible in:
5396         https://savannah.gnu.org/bugs/?49497
5397
5398 2016-10-25  Bruno Haible  <bruno@clisp.org>
5399
5400         Update iconv.m4 from Gnulib.
5401         * gettext-runtime/m4/iconv.m4: Update from Gnulib.
5402
5403         Add comments about the implementation of 'autosprintf::operator='.
5404         * gettext-runtime/libasprintf/autosprintf.in.h (autosprintf::operator=): Add
5405         comments. Rename parameter.
5406         * gettext-runtime/libasprintf/autosprintf.cc (autosprintf::operator=): Likewise.
5407
5408 2016-09-15  Daiki Ueno  <ueno@gnu.org>
5409
5410         xgettext: Fix crash with *.po file input
5411         When xgettext was given two *.po files with the same msgid_plural, it
5412         crashed with double-free.  Problem reported by Davlet Panech in:
5413         http://lists.gnu.org/archive/html/bug-gettext/2016-09/msg00001.html
5414         * gettext-tools/src/po-gram-gen.y: Don't free msgid_pluralform after
5415         calling do_callback_message, assuming that it takes ownership.
5416         * gettext-tools/src/read-catalog.c (default_add_message): Free
5417         msgid_plural after calling message_alloc.
5418         * gettext-tools/tests/xgettext-po-2: New file.
5419         * gettext-tools/tests/Makefile.am (TESTS): Add new test.
5420
5421 2016-08-27  Akinori MUSHA  <knu@idaemons.org>
5422
5423         Add autoload magic comments
5424
5425         Fix elisp package headers
5426
5427 2016-08-09  Daiki Ueno  <ueno@gnu.org>
5428
5429         gettextize: Don't add config.rpath to EXTRA_DIST
5430         The file is automatically included in the distribution by Automake,
5431         because of an AC_REQUIRE_AUX_FILE invocation.  Reported in:
5432         http://savannah.gnu.org/bugs/?48729
5433         * gettext-tools/misc/gettextize.in: Don't add config.rpath to
5434         added_extradist.
5435
5436 2016-08-03  Daiki Ueno  <ueno@gnu.org>
5437
5438         po-mode: Fix po-send-mail behaviour on Emacs 25
5439         * gettext-tools/misc/po-mode.el (po-send-mail): Don't rely on
5440         region markers.
5441         Reported by Göran Uddeborg in:
5442         http://lists.gnu.org/archive/html/bug-gettext/2016-07/msg00027.html
5443
5444 2016-07-12  Daiki Ueno  <ueno@gnu.org>
5445
5446         Update after gnulib changed
5447
5448         Update gnulib
5449
5450 2016-07-12  Michele Locati  <michele@locati.it>
5451
5452         Better description of GETTEXTCLDRDIR for msginit
5453         Let's explain better where the GETTEXTCLDRDIR should point to and where the
5454         CLDR data could be retrieved.
5455
5456 2016-07-09  Stanislav Brabec  <sbrabec@suse.com>
5457
5458         Add support for msgmerge --previous
5459         msgmerge --previous is a very useful feature that makes adjusting of
5460         translation much easier when small changes in the source code are done.
5461         msgmerge supports it for 10 years, but it is not used by most projects,
5462         as Makefile.in.in never added support for it.
5463
5464         Use msgmerge --previous as default on all systems with gettext >= 0.16.
5465
5466 2016-06-28  Daiki Ueno  <ueno@gnu.org>
5467
5468         gnulib-local: Fix the last change
5469         * gnulib-local/Makefile.am (EXTRA_DIST): Remove generated files.
5470
5471         gnulib-local: Add more files to distribution
5472         Problem reported by Xen.
5473         * gnulib-local/Makefile.am (EXTRA_DIST): Regenerate.
5474
5475 2016-06-11  Daiki Ueno  <ueno@gnu.org>
5476
5477         build: Fix unintentional soname bump
5478         * gettext-runtime/intl/Makefile.in: Revert LTV_CURRENT and increment
5479         LTV_REVISION.
5480         * gettext-tools/libgettextpo/Makefile.am: Likewise.
5481
5482 2016-06-09  Daiki Ueno  <ueno@gnu.org>
5483
5484         Update translations
5485         * gettext-runtime/po/eo.po: Update from Felipe Castro <fefcas@gmail.com>
5486         * gettext-runtime/po/hr.po: Update from Božidar Putanec <bozidarp@yahoo.com>
5487         * gettext-runtime/po/sv.po: Update from Göran Uddeborg <goeran@uddeborg.se>
5488         * gettext-tools/examples/po/eo.po: Update from Felipe Castro <fefcas@gmail.com>
5489         * gettext-tools/examples/po/hr.po: Update from Božidar Putanec <bozidarp@yahoo.com>
5490         * gettext-tools/examples/po/sv.po: Update from Göran Uddeborg <goeran@uddeborg.se>
5491         * gettext-tools/po/bg.po: Update from Roumen Petrov <transl@roumenpetrov.info>
5492         * gettext-tools/po/es.po: Update from Antonio Ceballos <aceballos@gmail.com>
5493         * gettext-tools/po/fr.po: Update from Stéphane Aulery <lkppo@free.fr>
5494         * gettext-tools/po/ja.po: Update from Masahito Yamaga <ma@yama-ga.com>
5495         * gettext-tools/po/ko.po: Update from Changwoo Ryu <cwryu@debian.org>
5496         * gettext-tools/po/nl.po: Update from Benno Schulenberg <benno@vertaalt.nl>
5497         * gettext-tools/po/pl.po: Update from Rafał Maszkowski <rzm@icm.edu.pl>
5498         * gettext-tools/po/sk.po: Update from Marcel Telka <marcel@telka.sk>
5499         * gettext-tools/po/sr.po: Update from Мирослав Николић <miroslavnikolic@rocketmail.com>
5500         * gettext-tools/po/sv.po: Update from Göran Uddeborg <goeran@uddeborg.se>
5501         * gettext-tools/po/tr.po: Update from Nilgün Belma Bugüner <nilgun@buguner.name.tr>
5502         * gettext-tools/po/uk.po: Update from Yuri Chornoivan <yurchor@ukr.net>
5503         * gettext-tools/po/vi.po: Update from Trần Ngọc Quân <vnwildman@gmail.com>
5504
5505         Update matrix
5506
5507         NEWS: Fix release date of 0.19.8
5508
5509         Prepare for 0.19.8
5510
5511         THANKS: Update
5512
5513 2016-06-08  Daiki Ueno  <ueno@gnu.org>
5514
5515         gnulib-local: Work around regcomp.c compile error
5516         * gnulib-local/Makefile.am (EXTRA_DIST): Add lib/regcomp.c.diff.
5517         * gnulib-local/lib/regcomp.c.diff: New file, partially revert Gnulib
5518         commit f97745b0.
5519
5520         tests: Use Exit instead of exit if init.sh is used
5521         * gettext-tools/tests/*: Use Exit instead of exit, as suggested by
5522         init.sh.
5523
5524 2016-06-07  Daiki Ueno  <ueno@gnu.org>
5525
5526         build: Create intl/ChangeLog
5527         * autogen.sh: Create an empty ChangeLog for gettext-runtime/intl, which
5528         is necessary when running "make dist" from the top level directory.
5529
5530 2016-06-02  Daiki Ueno  <ueno@gnu.org>
5531
5532         build: Simplify placeholder ChangeLog creation
5533         * autogen.sh: Use empty ChangeLog for placeholder.  Bail out if any
5534         error occurs in autoreconf phase.
5535
5536         maint: Update release steps
5537
5538 2016-06-01  Daiki Ueno  <ueno@gnu.org>
5539
5540         tests: Check invalid input in sentence-1-prg
5541         * gettext-tools/tests/sentence-1-prg.c (main): Check input buffer
5542         overflow, while it is not possible with the current test case.
5543
5544         tests: Fix test data for sentence-1
5545         * gettext-tools/tests/sentence-1: Use NO-BREAK SPACE instead of
5546         IDEOGRAPHIC SPACE.
5547
5548 2016-05-31  Daiki Ueno  <ueno@gnu.org>
5549
5550         tests: Fix location of valgrind suppression file
5551         * gettext-tools/tests/Makefile.am (CHECKER): Use $(abs_srcdir) instead
5552         of $(srcdir).
5553
5554         tests: Turn sentence test into a shell script
5555         For consistency with other tests.  Also it fixes a test failure when
5556         built with --disable-shared, since LOG_COMPILER set to $(SHELL) doesn't
5557         recognize binary executable.
5558         * gettext-tools/tests/Makefile.am (TESTS): Rename 'sentence' to
5559         'sentence-1'.
5560         (check_PROGRAMS): Rename 'sentence' to 'sentence-1-prg'.
5561         (sentence_1_prg_SOURCES): Rename from 'sentence_SOURCES'.
5562         (sentence_1_prg_CPPFLAGS): Rename from 'sentence_CPPFLAGS'.
5563         (sentence_1_prg_LDADD): Rename from 'sentence_LDADD'.
5564         * gettext-tools/tests/sentence-1: New file.
5565         * gettext-tools/tests/sentence-1-prg.c: Rename from sentence.c, move the
5566         test data to sentence-1.
5567         * gettext-tools/tests/.gitignore: Ignore sentence-1-prg.
5568
5569 2016-05-30  Daiki Ueno  <ueno@gnu.org>
5570
5571         maint: Update copyright year
5572
5573         xgettext: Update usage documentation
5574         * gettext-tools/src/xgettext.c (usage): Mention 'bullet-unicode' check.
5575
5576 2016-05-28  Daniel Burr  <dburr@dburr.net>  (tiny change)
5577
5578         build: Make libxml2 check tighter
5579         * gnulib-local/m4/libxml.m4 (gl_LIBXML): Try to check
5580         xmlXPathSetContextNode, which is available in libxml2 2.9.1 or later.
5581         Problem reported by Dominyk in:
5582         http://savannah.gnu.org/bugs/?46844
5583
5584 2016-05-27  Daiki Ueno  <ueno@gnu.org>
5585
5586         desktop: Add missing "extern" in header
5587         * gettext-tools/src/read-desktop.h: Add "extern" to each function
5588         declaration.
5589         Possibly related to: https://savannah.gnu.org/bugs/?45896
5590
5591         NEWS: Mention gettext.m4 change
5592
5593         m4: Rely less on internal symbols
5594         * gettext-runtime/m4/gettext.m4 (AM_GNU_GETTEXT): Skip checks for the
5595         internal symbols _nl_msg_cat_cntr, _nl_domain_bindings, and
5596         _nl_expand_alias, if __GNU_GETTEXT_SUPPORTED_REVISION is defined.
5597         Problem reported and fix suggested by Masanori Ogino in:
5598         https://lists.gnu.org/archive/html/bug-gettext/2016-04/msg00000.html
5599         The rationale behind this is: (1) those symbol checks are for detecting
5600         certain broken implementations, namely NetBSD and Solaris 7, and
5601         (2) __GNU_GETTEXT_SUPPORTED_REVISION is not defined in those
5602         implementations, while it is defined on compatible implementations, such
5603         as musl-libc which doesn't have those internal symbols.
5604
5605 2016-05-25  Daiki Ueno  <ueno@gnu.org>
5606
5607         NEWS: Add 0.19.8 changes
5608
5609         intl: Pacify pre-C99 compilers
5610         * gettext-runtime/intl/plural-exp.h (HAVE_STRUCT_INITIALIZER): New
5611         macro, based on the check previously in plural-exp.c.  Also add check
5612         for __SUNPRO_C for Solaris Studio C compiler.
5613         (GERMANIC_PLURAL): Define as 'struct expression' not 'const struct
5614         expression' if struct/union initializers are not supported by the
5615         compiler.
5616         * gettext-runtime/intl/plural-exp.c: Use HAVE_STRUCT_INITIALIZER.
5617         Reported by Dagobert Michelsen and investigated by pan7 in:
5618         https://savannah.gnu.org/support/?108743
5619
5620 2016-05-24  David Shea  <dshea@redhat.com>
5621
5622         desktop: Fix invalid memory access
5623         * gettext-tools/src/read-desktop.c (desktop_lex): Don't access memory
5624         deallocated with realloc().  Reported in:
5625         http://savannah.gnu.org/bugs/?47991
5626
5627 2016-05-23  Daiki Ueno  <ueno@gnu.org>
5628
5629         tests: Add more tests for JavaScript format string
5630         * gettext-tools/tests/format-javascript-1: Add test for multiple uses of
5631         same argument.
5632         * gettext-tools/tests/format-javascript-2: Use proper flag to activate
5633         javascript format checker.
5634
5635         javascript: Fix format type compatibility check
5636         * gettext-tools/src/format-javascript.c (format_check): Check if the two
5637         argument types are the same.
5638
5639 2016-05-20  Daiki Ueno  <ueno@gnu.org>
5640
5641         tests: Add test for ITS search path
5642         * gettext-tools/tests/Makefile.am (TESTS): Add new test.
5643         * gettext-tools/tests/xgettext-its-2: New file.
5644
5645         search-path: Fix XDG_DATA_DIRS traversal
5646         * gettext-tools/src/search-path.c (foreach_elements): Append "gettext"
5647         suffix to each element from XDG_DATA_DIRS.
5648
5649         search-path: Don't relocate dirs given as envvar
5650         * gettext-tools/src/search-path.c (foreach_function_ty): New typedef.
5651         (path_array_ty): New struct.
5652         (foreach_components, increment, fill): New functions.
5653         (get_search_path): Rewrite using those functions.  Relocate
5654         GETTEXTDATADIR here.
5655         * gettext-tools/src/search-path.h (get_search_path): Update documentation.
5656         * gettext-tools/src/msgfmt.c (main): Don't relocate directories in ITS
5657         search path.
5658         * gettext-tools/src/xgettext.c (main): Likewise.
5659
5660 2016-05-19  Daiki Ueno  <ueno@gnu.org>
5661
5662         Update after Gnulib changed
5663         * gnulib-local/lib/gettext.h: Update from gnulib.
5664         * gettext-runtime/m4/extern-inline.m4: Likewise.
5665         * gettext-runtime/m4/intdiv0.m4: Likewise.
5666
5667         Update gnulib
5668         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Explicitly pull 'gettext',
5669         as the module is now marked as obsolete.
5670         * gnulib-local/Makefile.am (EXTRA_DIST): Remove m4/hard-locale.m4.diff.
5671         * gnulib-local/m4/hard-locale.m4.diff: Remove, as it is no longer
5672         needed.
5673         * gettext-tools/gnulib-lib/.gitignore: Ignore files brought by gnulib-tool.
5674         * gettext-tools/gnulib-tests/.gitignore: Likewise.
5675         * gettext-tools/libgettextpo/.gitignore: Likewise.
5676
5677 2016-05-18  Daiki Ueno  <ueno@gnu.org>
5678
5679         maint: Add --no-git option to autogen.sh
5680         * autogen.sh: Port --no-git option from Gnulib's bootstrap.
5681
5682 2016-05-16  Daiki Ueno  <ueno@gnu.org>
5683
5684         msgfmt, xgettext: Respect XDG_DATA_DIRS
5685         Suggested in https://savannah.gnu.org/bugs/?47123
5686         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add 'xmemdup0'.
5687         * gettext-tools/gnulib-lib/.gitignore: Ignore files brought by gnulib-tool.
5688         * gettext-tools/gnulib-tests/.gitignore: Likewise.
5689         * gettext-tools/src/search-path.c: New file.
5690         * gettext-tools/src/search-path.h: New file.
5691         * gettext-tools/src/Makefile.am (noinst_HEADERS): Add search-path.h.
5692         (libgettextsrc_la_SOURCES): Add search-path.c.
5693         * gettext-tools/src/msgfmt.c: Include "search-path.h".
5694         (main): Use get_search_path to locate ITS directories.
5695         * gettext-tools/src/xgettext.c: Include "search-path.h".
5696         (main): Use get_search_path to locate ITS directories.
5697
5698         javascript: Avoid uninitialized variable
5699         * gettext-tools/src/format-javascript.c (format_check): Fix
5700         loop initialization.  Spotted by clang-analyzer.
5701
5702 2016-03-25  Hanno Boeck  <hanno@gentoo.org>  (tiny change)
5703
5704         lua: Avoid heap buffer overflow
5705         * gettext-tools/src/x-lua.c (string_end): Allocate a room for
5706         terminating NUL.  Reported in: http://savannah.gnu.org/bugs/?4753
5707
5708 2016-03-23  Daiki Ueno  <ueno@gnu.org>
5709
5710         format-python-brace: Support chained expression
5711         * gettext-tools/src/format-python-brace.c (parse_directive): Recognize
5712         chained getattr/getitem expressions.
5713         * gettext-tools/tests/format-python-brace-1: Add test for the case where
5714         both getattr and getitem are used.
5715         Reported by Paul Franklin in:
5716         https://lists.gnu.org/archive/html/bug-gettext/2016-03/msg00017.html
5717
5718         doc: Fix ngettext usage example
5719         * gettext-tools/doc/gettext.texi (Plural forms): Fix positional argument
5720         syntax in the C example.  Reported by Jonathan Leffler in:
5721         http://lists.gnu.org/archive/html/bug-gettext/2016-03/msg00002.html
5722
5723 2016-03-22  Daiki Ueno  <ueno@gnu.org>
5724
5725         javascript: Fix invalid memory access
5726         * gettext-tools/src/format-javascript.c (format_parse): Fix numbered_arg
5727         allocation for the unnumbered case.
5728
5729         Reported by Roger Mc Murtrie in: <http://savannah.gnu.org/bugs/?47492>.
5730
5731 2016-03-22  Daiki Ueno  <ueno@gnu.org>
5732
5733         maint: Clean up .gitignore
5734         * gettext-tools/gnulib-lib/.gitignore: Sort lines.
5735
5736 2016-03-02  Daiki Ueno  <ueno@gnu.org>
5737
5738         xgettext: Put --its help in the right section
5739         * gettext-tools/src/xgettext.c (usage): Move --its=FILE option under
5740         "Language specific options" from "Output details".
5741
5742 2016-02-22  Daiki Ueno  <ueno@gnu.org>
5743
5744         xgettext: Add new check bullet-unicode
5745         * gettext-tools/src/xgettext.c (main): Generalize --check option
5746         handling.
5747         * gettext-tools/src/message.h (enum syntax_check_type): New enum value
5748         sc_bullet_unicode.
5749         (NSYNTAXCHECKS): Increment.
5750         * gettext-tools/src/message.c (syntax_check_name): Add name for
5751         sc_bullet_unicode.
5752         * gettext-tools/src/msgl-check.c (struct bullet_ty, struct
5753         bullet_stack_ty): New struct.
5754         (bullet_stack): New variable.
5755         (syntax_check_bullet_unicode): New function.
5756         (sc_funcs): Register syntax_check_bullet_unicode as a check function for
5757         sc_bullet_unicode.
5758         * gettext-tools/tests/xgettext-14: Add tests for --check=bullet-unicode
5759
5760 2016-02-10  Daiki Ueno  <ueno@gnu.org>
5761
5762         doc: Mention the behavior stripping *.in
5763         * gettext-tools/doc/gettext.texi (Preparing ITS Rules): Add footnote
5764         explaining the matching behavior if the input file name has the .in
5765         suffix.  Suggested by Jan Synacek.
5766
5767 2016-02-08  Daiki Ueno  <ueno@gnu.org>
5768
5769         javascript: Support '%m$' in format strings
5770         Gjs has had support for numbered arguments in format strings since 1.40.
5771         Recognize it as well in format-javascript, so msgfmt -c doesn't fail
5772         when numbered arguments are in msgstr.  Reported by Sean Burke in:
5773         https://lists.gnu.org/archive/html/bug-gettext/2015-10/msg00002.html
5774         * gettext-tools/src/format-javascript.c (struct numbered_arg): New
5775         struct.
5776         (struct spec): Rename format_args_count to numbered_arg_count.  Add
5777         NUMBERED field in place of FORMAT_ARGS.  All callers changed.
5778         (numbered_arg_compare): New function.
5779         (format_parse): Handle numbered arguments.  Based on format-awk.c.
5780         (format_check): Add check for numbered arguments.
5781         * gettext-tools/tests/format-javascript-1: Add tests for numbered
5782         arguments.
5783         * gettext-tools/tests/lang-javascript: Use numbered argument in format
5784         strings.  Add check for Gjs version >= 1.40.
5785
5786         moopp: Revert file modes accidentally set
5787
5788 2016-01-20  KO Myung-Hun  <komh78@gmail.com>
5789
5790         gettext-tools: Use a short name for DLLs on OS/2
5791         OS/2 does not support a DLL name longer than 8 characters.
5792
5793         * gettext-tools/configure.ac (OS2): Define on OS/2.
5794         * gettext-tools/gnulib-lib/Makefile.am (libgettextlib_la_LDFLAGS):
5795         Set a DLL name to gtlib on OS/2.
5796         * gettext-tools/libgettextpo/Makefile.am (libgettextpo_la_LDFLAGS):
5797         Set a DLL name to gtpo on OS/2.
5798         * gettext-tools/src/Makefile.am (libgettextsrc_la_LDFLAGS): Set a DLL
5799         name to gtsrc on OS/2.
5800
5801 2016-01-20  KO Myung-Hun  <komh78@gmail.com>
5802
5803         libasprintf: Build a shared library on OS/2
5804         * gettext-runtime/libasprintf/configure.ac (LTNOUNDEF): Set to
5805         -no-undefined on OS/2.
5806
5807 2016-01-20  KO Myung-Hun  <komh78@gmail.com>
5808
5809         intl: Support UNIXROOT in BINDTEXTDOMAIN () on EMX
5810         $UNIXROOT is a drive on which a root of FHS is.
5811
5812         * gettext-runtime/intl/bindtextdom.c (BINDTEXTDOMAIN): Prepend
5813         $UNIXROOT to dirname if it is started '/' or it is an empty string.
5814
5815 2016-01-20  KO Myung-Hun  <komh78@gmail.com>
5816
5817         moop: Replace CR as well as LF with a space
5818         On OS/2, EOL marker is CR+LF.
5819
5820         * gnulib-local/bulid-aux/moopp (func_check_header_syntax):
5821         Replace CR as well as LF with a space.
5822
5823 2016-01-15  Bruno Haible  <bruno@clisp.org>
5824
5825         Change msgfmt to produce little-endian .mo files by default.
5826         * gettext-tools/src/msgfmt.c (main): Initialize 'byteswap' so as to
5827         produce little-endian .mo files by default.
5828         * gettext-tools/doc/gettext.texi: Update documentation.
5829         * gettext-tools/doc/msgfmt.texi (--endianness): Likewise.
5830
5831 2016-01-13  Daiki Ueno  <ueno@gnu.org>
5832
5833         maint: Revert copyright year changes in test data
5834         Some test programs started failing after mass update of copyright notice
5835         for year 2016 (commit 7fa0c277), because of embedded test data with
5836         fixed copyright dates.  Revert the commit for those files.
5837         Reported by Bruno Haible.
5838         * .x-update-copyright: Exclude test programs embedding copyright date.
5839         * gettext-tools/tests/msgcomm-22: Revert the last change.
5840         * gettext-tools/tests/msgfilter-sr-latin-1: Likewise.
5841         * gettext-tools/tests/msggrep-1: Likewise.
5842         * gettext-tools/tests/msggrep-2: Likewise.
5843         * gettext-tools/tests/msggrep-3: Likewise.
5844         * gettext-tools/tests/msggrep-4: Likewise.
5845         * gettext-tools/tests/msggrep-5: Likewise.
5846         * gettext-tools/tests/msggrep-9: Likewise.
5847         * gettext-tools/tests/msggrep-11: Likewise.
5848         * gettext-tools/tests/msgmerge-14: Likewise.
5849
5850 2016-01-07  Daiki Ueno  <ueno@gnu.org>
5851
5852         its: Recognize *.glade as a GtkBuilder file too
5853
5854 2016-01-05  Santiago Vila  <sanvila@unex.es>  (tiny change)
5855
5856         * PACKAGING: List version specific files
5857
5858 2016-01-02  Daiki Ueno  <ueno@gnu.org>
5859
5860         maint: Update copyright year
5861
5862         Update gnulib
5863
5864         maint: Use maintainer-makefile from gnulib
5865         * autogen.sh: Pull GNUmakefile, maint.mk, and dependency scripts in
5866         build-aux.
5867         * cfg.mk (update-copyright-env): Adjust for gettext.
5868         * .x-update-copyright: New file.
5869         * .gitignore: Ignore files brought in by gnulib-tool.
5870
5871 2015-12-28  Daiki Ueno  <ueno@gnu.org>
5872
5873         maint: Update release-steps to current practice
5874         * Admin/release-steps: Split document into two sections ('Making a
5875         snapshot release' and 'Making an official release'), reorder some steps,
5876         and remove mention of manual generation of PO/POT files.
5877
5878 2015-12-27  Daiki Ueno  <ueno@gnu.org>
5879
5880         Update translations
5881         * gettext-runtime/po/fr.po: Update from Stéphane Aulery <lkppo@free.fr>.
5882         * gettext-runtime/po/nb.po: Update from Johnny A. Solbu <johnny@solbu.net>.
5883         * gettext-runtime/po/pt_BR.po: Update from Rafael Ferreira <rffontenelle@gmail.com>.
5884         * gettext-runtime/po/sr.po: Update from Мирослав Николић <miroslavnikolic@rocketmail.com>.
5885         * gettext-runtime/po/zh_TW.po: Update from Wei-Lun Chao <bluebat@member.fsf.org>.
5886         * gettext-tools/examples/po/fr.po: Update from Stéphane Aulery <lkppo@free.fr>.
5887         * gettext-tools/examples/po/nb.po: Update from Johnny A. Solbu <johnny@solbu.net>.
5888         * gettext-tools/examples/po/pt_BR.po: Update from Rafael Ferreira <rffontenelle@gmail.com>.
5889         * gettext-tools/examples/po/sr.po: Update from Мирослав Николић <miroslavnikolic@rocketmail.com>.
5890         * gettext-tools/examples/po/zh_TW.po: Update from Wei-Lun Chao <bluebat@member.fsf.org>.
5891         * gettext-tools/po/bg.po: Update from Roumen Petrov <transl@roumenpetrov.info>.
5892         * gettext-tools/po/es.po: Update from Antonio Ceballos <aceballos@gmail.com>.
5893         * gettext-tools/po/fr.po: Update from Stéphane Aulery <lkppo@free.fr>.
5894         * gettext-tools/po/ja.po: Update from Masahito Yamaga <ma@yama-ga.com>.
5895         * gettext-tools/po/nl.po: Update from Benno Schulenberg <benno@vertaalt.nl>.
5896         * gettext-tools/po/pt_BR.po: Update from Rafael Fontenelle <rffontenelle@gmail.com>.
5897         * gettext-tools/po/sk.po: Update from Marcel Telka <marcel@telka.sk>.
5898         * gettext-tools/po/sl.po: Update from Primoz PETERLIN <primozz.peterlin@gmail.com>.
5899         * gettext-tools/po/sr.po: Update from Мирослав Николић <miroslavnikolic@rocketmail.com>.
5900         * gettext-tools/po/uk.po: Update from Yuri Chornoivan <yurchor@ukr.net>.
5901         * gettext-tools/po/vi.po: Update from Trần Ngọc Quân <vnwildman@gmail.com>.
5902
5903         Prepare for 0.19.7
5904
5905         doc: Regenerate translation matrix
5906         * gettext-runtime/ABOUT-NLS: Regenerate for 0.19.7.
5907         * gettext-runtime/doc/matrix.texi: Regenerate for 0.19.7.
5908
5909         NEWS: Add 0.19.7 changes
5910
5911         Update gnulib
5912
5913         Ignore file brought by gnulib-tool
5914         * gettext-tools/gnulib-tests/.gitignore: Ignore file brought by
5915         gnulib-tool.
5916
5917 2015-12-23  Daiki Ueno  <ueno@gnu.org>
5918
5919         term-ostream-tests: Add test data for FreeBSD 10.1
5920         * gnulib-local/modules/term-ostream-tests: Add
5921         test-term-ostream-xterm-freebsd101.out.
5922         * gnulib-local/tests/test-term-ostream-xterm: Use new test data.
5923         * gnulib-local/tests/test-term-ostream-xterm-freebsd101.out: New file.
5924
5925 2015-12-21  Daiki Ueno  <ueno@gnu.org>
5926
5927         cldr-plurals: Fix errors from clang-analyzer
5928         * gettext-tools/src/cldr-plurals.c (extract_rules): Add extra null
5929         checks for NODE and BUFFER.  Don't add NUL byte to the end of buffer
5930         manually.
5931
5932 2015-12-17  Daiki Ueno  <ueno@gnu.org>
5933
5934         po: Prefer to use host tools when cross compiling
5935         * gettext-runtime/po/Makefile.in.in (CROSS_COMPILING): New substitute
5936         variable.
5937         (.nop.po-update): Don't prepend ../src to $PATH when cross compiling.
5938         * gettext-runtime/po/Rules-quot (.insert-header.po-update-en): Likewise.
5939
5940         its: Allow CDATA and comments in translatable node
5941         * gettext-tools/src/its.c (its_rule_list_is_translatable): Don't return
5942         false on CDATA and comments.
5943
5944         its: Fix typo in GSettings rule
5945         * gettext-tools/its/gsettings.its: Fix typo in escape rule.
5946
5947 2015-12-15  Daiki Ueno  <ueno@gnu.org>
5948
5949         gnulib-local: Fix link error due to symbol dupes
5950         * gnulib-local/lib/libxml/trionan.c (minus_zerod): Mark as static.
5951
5952         gnulib-local: Pull more functions for libxml
5953         * gettext-tools/gnulib-lib/.gitignore: Ignore files brought by
5954         gnulib-tool.
5955         * gettext-tools/gnulib-tests/.gitignore: Likewise.
5956         * gnulib-local/modules/libxml (Depends-on): Add 'pow', 'log10', and
5957         'fabs'.
5958
5959         gnulib-local: Replace libxml2 trio with Gnulib
5960         * gettext-tools/gnulib-lib/.gitignore: Ignore files brought by
5961         gnulib-tool.
5962         * gettext-tools/gnulib-tests/.gitignore: Likewise.
5963         * gnulib-local/lib/libxml/triodef.h: Remove.
5964         * gnulib-local/lib/libxml/trionan.c: Replace it with Gnulib functions.
5965         * gnulib-local/lib/libxml/trionan.h: Remove.
5966         * gnulib-local/modules/libxml (Depends-on): Add 'isinf', 'isnan', and
5967         'signbit'.
5968
5969 2015-12-14  Daiki Ueno  <ueno@gnu.org>
5970
5971         gnulib-local: Update included libxml2 to 2.9.3
5972         * gnulib-local/lib/libxml/*: Update from libxml2 2.9.3.  Add buf.[ch],
5973         enc.h, save.h, triodef.h, trionan.[ch].  Enable XPath and XPointer
5974         support.
5975         * gnulib-local/modules/libxml (Files): Add new files from libxml2 2.9.3.
5976
5977 2015-12-10  Daiki Ueno  <ueno@gnu.org>
5978
5979         gettext-tools: Update POTFILES.in
5980         * gettext-tools/po/POTFILES.in: Add newly added files.
5981
5982         gnulib-local: Make markup.c translator friendly
5983         * gnulib-local/lib/markup.c: Reuse strings.
5984
5985         its: Mark some attributes as escape="no"
5986         * gettext-tools/its/glade2.its: Mark "comments" attribute as
5987         escape="no".
5988         * gettext-tools/its/gsettings.its: Mark "context" attribute as
5989         escape="no".
5990         * gettext-tools/its/gtkbuilder.its: Mark "comments" attribute as
5991         escape="no".
5992
5993         xgettext: Respect ITS escape rule for attributes
5994         * gettext-tools/src/its.c (its_rule_list_extract_text): Check for
5995         "escape" value for an attribute node.
5996         * gettext-tools/tests/xgettext-its-1: Add tests for gt:escapeRule.
5997
5998 2015-12-10  KO Myung-Hun  <komh78@gmail.com>  (tiny change)
5999
6000         intl: Fix name resolution failures on kLIBC
6001         kLIBC already has _nl_default_dirname and _nl_msg_cat_cntr in its own
6002         gettext implmenetation.
6003         * gettext-runtime/intl/dcigettext.c: Do not declare _nl_default_dirname
6004         on kLIBC.
6005         * gettext-runtime/intl/gettextP.h: Define _nl_msg_cat_cntr to
6006         libintl_nl_msg_cat_cntr on kLIBC.
6007
6008         build: Do not include os2compat.[ch]
6009         kLIBC does not need os2compat.[ch]
6010         * gettext-runtime/configure.ac (AH_BOTTOM): Do not include
6011         intl/os2compat.h on kLIBC.
6012         * gettext-runtime/intl/osdep.c: Do not include os2compat.c on kLIBC.
6013         * gettext-tools/configure.ac (AH_BOTTOM): Do not include
6014         intl/os2compat.h on kLIBC.
6015
6016         test-lock: Do not include sched.h on kLIBC
6017         * gettext-runtime/tests/test-lock.c: Do not include sched.h on kLIBC,
6018         since kLIBC does not have sched.h.
6019
6020 2015-12-10  Daiki Ueno  <ueno@gnu.org>
6021
6022         kde: Fix KUIT error handling when libxml2 is used
6023         * gettext-tools/src/format-kde-kuit.c (format_parse): Return NULL if
6024         xmlReadMemory returns NULL.
6025
6026         xgettext: Add --its option for ease of testing
6027         * gettext-tools/doc/xgettext.texi (Output details): Mention --its
6028         option.
6029         * gettext-tools/src/xgettext.c (long_options): Add --its option.
6030         (main): Handle --its option.  Suggested by Sébastien Wilmet.
6031
6032         xgettext: Improve error reporting when ITS is used
6033         * gettext-tools/src/xgettext.c (main): Print error when an ITS file is
6034         designated through a locating rule, but the file does not exist.
6035
6036 2015-12-09  Daiki Ueno  <ueno@gnu.org>
6037
6038         build: Update DEPENDENCIES
6039         * DEPENDENCIES: Remove duplicate entry for libxml2.
6040
6041         build: Remove expat dependency
6042         * DEPENDENCIES: Suggest libxml2 instead of expat.
6043         * gnulib-local/lib/markup.c: New file.
6044         * gnulib-local/lib/markup.h: New file.
6045         * gnulib-local/modules/markup: New file.
6046         * autogen.sh (GNULIB_MODULES_LIBGETTEXTPO): Add markup module.
6047         * gettext-tools/configure.ac: Remove checks for expat.
6048         * gettext-tools/gnulib-lib/.gitignore: Ignore modules pulled by
6049         gnulib-tool due to the markup module usage.
6050         * gettext-tools/gnulib-tests/.gitignore: Likewise.
6051         * gettext-tools/libgettextpo/.gitignore: Likewise.
6052         * gettext-tools/libgettextpo/Makefile.am (libgettextpo_la_AUXSOURCES):
6053         Remove ../src/libexpat-compat.c.
6054         (libgettextpo_la_LDFLAGS): Remove @LTLIBEXPAT@.
6055         * gettext-tools/src/Makefile.am (noinst_HEADERS): Remove
6056         libexpat-compat.h.
6057         (libgettextsrc_la_SOURCES): Remove libexpat-compat.c.
6058         (libgettextsrc_la_LDFLAGS): Remove @LTLIBEXPAT@.
6059         * gettext-tools/src/format-kde-kuit.c: Use functions from markup.h, when
6060         the file is being compiled as part of libgettextpo.  Otherwise use
6061         libxml2.
6062         * gettext-tools/src/libexpat-compat.c: Remove.
6063         * gettext-tools/src/libexpat-compat.h: Remove.
6064
6065 2015-12-08  Daiki Ueno  <ueno@gnu.org>
6066
6067         build: Fix texi2html failure with perl 5.22
6068         * gettext-runtime/libasprintf/texi2html (update_sec_num): Don't use
6069         "defined" against an array ref.
6070         * gettext-tools/doc/texi2html (update_sec_num): Likewise.
6071
6072         Update gnulib
6073
6074         xgettext: Ignore --from-code when XML mode
6075         * gettext-tools/src/xgettext.c (extract_from_xml_file): Forcibly set
6076         current source encoding to UTF-8, on XML mode.
6077
6078         build: Suppress compiler warning
6079         * gettext-tools/src/its.c (its_rule_list_extract_text): Remove unused
6080         local variable "message".
6081
6082 2015-12-04  Daiki Ueno  <ueno@gnu.org>
6083
6084         msgfmt: Support XML file merging
6085         * gettext-tools/src/Makefile.am (noinst_HEADERS): Add write-xml.h.
6086         (msgfmt_SOURCES): Add write-xml.c.
6087         * gettext-tools/src/its.c (its_merge_context_merge_node): New function.
6088         (its_merge_context_merge): New function.
6089         (its_merge_context_alloc): New function.
6090         (its_merge_context_write): New function.
6091         (its_merge_context_free): New function.
6092         * gettext-tools/src/its.h (its_merge_context_ty): New type.
6093         * gettext-tools/src/msgfmt.c: Include "its.h", "locating-rule.h", and
6094         "write-xml.h".
6095         (SIZEOF): New macro.
6096         (xml_mode, xml_locale_name, xml_template_name, xml_base_directory,
6097         xml_language, xml_its_rules): New variable.
6098         (long_options): Add --language and --xml.
6099         (main): Handle new options.
6100         (usage): Document new options.
6101         (msgfmt_xml_bulk): New function.
6102         * gettext-tools/src/write-xml.c: New file.
6103         * gettext-tools/src/write-xml.h: New file.
6104         * gettext-tools/doc/gettext.texi: Mention XML file merging use-case.
6105         * gettext-tools/doc/msgfmt.texi: Mention --xml option.
6106         * gettext-tools/tests/msgfmt-xml-1: New file.
6107         * gettext-tools/tests/msgfmt-xml-2: New file.
6108         * gettext-tools/tests/Makefile.am (TESTS): Add new tests.
6109
6110         xgettext: Rewrite Glade scanner in ITS
6111         * gettext-tools/its/glade.loc: New file.
6112         * gettext-tools/its/glade1.its: New file.
6113         * gettext-tools/its/glade2.its: New file.
6114         * gettext-tools/its/gtkbuilder.its: New file.
6115         * gettext-tools/its/Makefile.am (dist_its_DATA): Add new files.
6116         * gettext-tools/src/Makefile.am (xgettext_SOURCES): Remove x-glade.c.
6117         * gettext-tools/src/x-glade.c: Remove.
6118         * gettext-tools/src/x-glade.h (EXTENSIONS_GLADE): Set language field to
6119         NULL.
6120         (SCANNERS_GLADE): Set func field to NULL.
6121         * gettext-tools/po/POTFILES.in: Remove x-glade.c
6122
6123         xgettext: Rewrite GSettings scanner in ITS
6124         * gettext-tools/its/gsettings.its: New file.
6125         * gettext-tools/its/gsettings.loc: New file.
6126         * gettext-tools/its/Makefile.am (dist_its_DATA): Add new files.
6127         * gettext-tools/src/Makefile.am (xgettext_SOURCES): Remove x-gsettings.c.
6128         * gettext-tools/src/x-gsettings.c: Remove.
6129         * gettext-tools/src/x-gsettings.h (EXTENSIONS_GSETTINGS): Set language
6130         field to NULL.
6131         (SCANNER_GSETTINGS): Set func field to NULL.
6132
6133         xgettext: Rewrite AppData scanner in ITS
6134         * gettext-tools/its/appdata.loc: New file.
6135         * gettext-tools/its/appdata.its: New file.
6136         * gettext-tools/its/Makefile.am (dist_its_DATA): Add new files.
6137         * gettext-tools/src/Makefile.am (xgettext_SOURCES): Remove x-appdata.c.
6138         * gettext-tools/src/x-appdata.c: Remove.
6139         * gettext-tools/src/x-appdata.h (EXTENSIONS_APPDATA): Set language
6140         field to NULL.
6141         (SCANNERS_APPDATA): Set func field to NULL.
6142
6143         xgettext: Add support for generic XML files
6144         * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC): Add trim module.
6145         * gettext-tools/src/locating-rule.h: New file.
6146         * gettext-tools/src/locating-rule.c: New file.
6147         * gettext-tools/src/its.h: New file.
6148         * gettext-tools/src/its.c: New file.
6149         * gettext-tools/src/xgettext.c: Include "locating-rule.h" and "its.h".
6150         (its_locators): New variable.
6151         (long_options): Add --itstool option.
6152         (extract_from_xml_file): New function.
6153         (main): Handle --itstool option.
6154         (usage): Document --itstool option.
6155         * gettext-tools/src/Makefile.am (noinst_HEADERS): Add locating-rule.h
6156         and its.h.
6157         (libgettextsrc_la_CPPFLAGS): Add $(INCXML).
6158         (libgettextsrc_la_SOURCES): Add locating-rule.c and its.c.
6159         * gettext-tools/Makefile.am (SUBDIRS): Add its directory.
6160         * gettext-tools/configure.ac: Output its/Makefile.
6161         * gettext-tools/doc/gettext.texi (Preparing ITS Rules): New section.
6162         * gettext-tools/doc/xgettext.texi: Mention --itstool option.
6163         * gettext-tools/tests/Makefile.am (TESTS): Add new tests.
6164         * gettext-tools/tests/xgettext-its-1: New file
6165         * gettext-tools/tests/init-env.in: Set GETTEXTDATADIR for ITS tests.
6166
6167 2015-11-18  Daiki Ueno  <ueno@gnu.org>
6168
6169         cldr-plurals: Add sanity checks for input
6170         * gettext-tools/src/cldr-plurals.c (extract_rules): Add null checks and
6171         element type checks.
6172
6173 2015-11-17  Daiki Ueno  <ueno@gnu.org>
6174
6175         cldr-plurals: Rewrite XML handling using libxml2
6176         * src/cldr-plurals.c: Include <libxml/tree.h> and
6177         <libxml/parser.h>, instead of "libexpat-compat.h".
6178         (extract_locale, extracted_rules, parser, logical_file_name)
6179         (struct element_state, stack, stack_size, stack_depth)
6180         (ensure_stack_size, start_element_handler, end_element_handler)
6181         (character_data_handler): Remove.
6182         (extract_rules): Rename from extract_rule and rewrite using DOM.
6183         (main): Use extract_rules.
6184         * src/Makefile.am (cldr_plurals_CFLAGS): Add $(INCXML).
6185
6186         cldr-plurals: Fix a trivial leak
6187         * src/cldr-plural.y (sample_range): Free unused operand value.
6188
6189 2015-11-17  Phil Davis  <phil.davis@inf.org>  (tiny change)
6190
6191         doc: Fix typo in gettext_noop example
6192         * doc/gettext.texi (Special cases): Add missing ')' to
6193         a gettext_noop call.
6194
6195 2015-10-29  Daiki Ueno  <ueno@gnu.org>
6196
6197         maint: Ignore more generated ChangeLogs
6198         * .gitignore: Add gettext-runtime/intl/ChangeLog,
6199         gettext-runtime/po/ChangeLog, and gettext-tools/po/ChangeLog.
6200
6201         m4: Fix typo in usage comment
6202         * gettext-runtime/m4/gettext.m4: Remove duplicate words.
6203         * gettext-runtime/m4/intl.m4: Likewise.
6204         * gettext-runtime/m4/intldir.m4: Likewise.
6205         * gettext-runtime/m4/intlmacosx.m4: Likewise.
6206         * gettext-runtime/m4/lcmessage.m4: Likewise.
6207         * gettext-runtime/m4/nls.m4: Likewise.
6208         * gettext-runtime/m4/po.m4: Likewise.
6209         * gettext-runtime/m4/progtest.m4: Likewise.
6210         Reported by Jakub Wilk in:
6211         https://lists.gnu.org/archive/html/bug-gettext/2015-10/msg00026.html.
6212
6213         doc: Fix typo in msgfmt invocation
6214         * gettext-tools/doc/msgfmt.texi: Fix the documentation of -d option,
6215         used in the Desktop Entry mode.
6216
6217 2015-10-15  Daiki Ueno  <ueno@gnu.org>
6218
6219         build: Generate ChangeLogs for intl and po
6220         * autogen.sh: Create empty ChangeLog files under intl and po.
6221         * Makefile.am (gen-ChangeLogs): Rename from gen-ChangeLog.  Generate
6222         ChangeLog files for */intl and */po as well as top-level.
6223         * gettext-runtime/intl/ChangeLog.0: Rename from ChangeLog.
6224         * gettext-runtime/po/ChangeLog.0: Rename from ChangeLog.
6225         * gettext-tools/po/ChangeLog.1: Rename from ChangeLog.
6226
6227         build: Distribute old ChangeLogs in tarball
6228         * Makefile.am (changelog_etc): Remove non-existent ChangeLog files
6229         under intl and po.
6230         (EXTRA_DIST): Add $(changelog_etc).
6231
6232 2015-10-14  Mike Frysinger  <vapier@chromium.org>
6233
6234         tests: use check_PROGRAMS
6235         The noinst_xxx targets will be compiled all the time.  For test programs,
6236         the check_xxx targets make more sense as they'll only be built when the
6237         user runs `make check`.
6238
6239         * gettext-runtime/tests/Makefile.am (noinst_PROGRAMS): Rename to ...
6240         (check_PROGRAMS): ... this.
6241
6242 2015-10-14  Mike Frysinger  <vapier@chromium.org>
6243
6244         intl/localename: control langinfo.h inclusion
6245         This header is only used to work around buggy behavior in old versions
6246         of glibc, so do not include it all the time.  Otherwise we get build
6247         failures on systems that do not provide langinfo.h.
6248
6249         * gettext-runtime/intl/localename.c: Wrap langinfo.h include with same
6250         ifdefs used in the source later on.
6251
6252 2015-10-14  Daiki Ueno  <ueno@gnu.org>
6253
6254         build: Remove ChangeLogs
6255         Generate ChangeLog files at "make dist" time, using
6256         gitlog-to-changelog.  We still keep ChangeLog files under "po" and
6257         "intl" directories, since those files are copied as part of gettext
6258         infrastructure and it is still meaningful to have them there.
6259         * .gitignore: Add ChangeLog files.
6260         * Admin/release-steps: Remove mention of running update-changelog
6261         script.
6262         * Admin/update-changelog: Remove.
6263         * Makefile.am (gen-ChangeLog): New rule.
6264         * autogen.sh: Copy gitlog-to-changelog from gnulib.  Create empty
6265         ChangeLog files to suppress Automake errors.
6266         * gettext-tools/doc/Makefile.am (EXTRA_DIST): Remove ChangeLog.0.
6267         * gettext-tools/man/Makefile.am (EXTRA_DIST): Remove ChangeLog.0.
6268         * gettext-tools/src/Makefile.am (EXTRA_DIST): Remove ChangeLog.0.
6269         * gettext-tools/tests/Makefile.am (EXTRA_DIST): Remove ChangeLog.0.
6270         * gnulib-local/Makefile.am (EXTRA_DIST): Remove ChangeLog files.
6271         * */ChangeLog: Rename to ChangeLog.0 or ChangeLog.1.
6272         * HACKING: Add brief guideline to submit patches.