1 2005-04-11 Bruno Haible <bruno@clisp.org>
3 * gettext-0.14.4 released.
5 2005-04-11 Bruno Haible <bruno@clisp.org>
7 * gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number.
9 2005-03-14 Bruno Haible <bruno@clisp.org>
11 * gettext-0.14.3 released.
13 2005-03-08 Bruno Haible <bruno@clisp.org>
15 * gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number.
17 2005-02-26 Bruno Haible <bruno@clisp.org>
19 * format-scheme.c (format_arg_type): Add FAT_COMPLEX. Remove
21 (make_intersected_element): Simplify also the intersection with
23 (make_union_element): Simplify also the union with FAT_COMPLEX.
25 (nocheck_params): Remove function.
26 (parse_upto): Remove handling of ~W, ~<, ~>.
27 Implement non-CL handling of ~C, ~I, ~_, ~/, ~T.
28 Implement handling of ~Y, ~!, ~Q, ~K.
30 2005-02-26 Bruno Haible <bruno@clisp.org>
32 * format-scheme.c (parse_upto): Remove support for ~!.
33 Reported by Kevin Ryde <user42@zip.com.au>.
35 2005-02-24 Bruno Haible <bruno@clisp.org>
37 * gettext-0.14.2 released.
39 2005-02-12 Bruno Haible <bruno@clisp.org>
41 * Makefile.msvc (gettextpo.lib): Link with intl.lib as well.
43 2005-02-12 Bruno Haible <bruno@clisp.org>
45 * Makefile.msvc (msginit_OBJECTS): Add plural-count.obj.
46 * Makefile.vms (msginit_OBJECTS): Add plural-count.obj.
48 2005-02-10 Bruno Haible <bruno@clisp.org>
50 * gettext-po.h (po_header_set_field): New declaration.
51 * gettext-po.c (po_header_set_field): New function.
52 Suggested by Ross Golder <ross@golder.org>.
54 2005-02-10 Bruno Haible <bruno@clisp.org>
56 * gettext-po.h (LIBGETTEXTPO_VERSION): New macro.
57 (libgettextpo_version): New declaration.
58 * gettext-po.c (libgettextpo_version): New variable.
60 2005-02-10 Bruno Haible <bruno@clisp.org>
62 * gettext-po.h (po_message_remove_filepos, po_message_add_filepos): New
64 * gettext-po.c (po_message_remove_filepos, po_message_add_filepos): New
66 Suggested by Asgeir Frimannsson <asgeirf@redhat.com>.
68 2005-02-10 Bruno Haible <bruno@clisp.org>
70 * gettext-po.h (po_message_set_extracted_comments): New declaration.
71 * gettext-po.c (po_message_set_extracted_comments): New function.
72 Suggested by Asgeir Frimannsson <asgeirf@redhat.com>.
74 2005-02-08 Bruno Haible <bruno@clisp.org>
76 * msginit.c (get_user_email): Cast _() to 'char *', to avoid compiler
79 2005-02-07 Bruno Haible <bruno@clisp.org>
81 Make the tools work in the tr_TR locale.
82 * po-charset.c: Include c-strcase.h instead of strcase.h.
83 (po_charset_canonicalize): Use c_strcasecmp.
84 * msgcmp.c: Include c-strcase.h instead of strcase.h.
85 (compare): Use c_strncasecmp.
86 * msginit.c: Include c-strcase.h instead of strcase.h.
87 (content_type): Use c_strcasecmp.
88 * msgmerge.c: Include c-strcase.h instead of strcase.h.
89 (message_merge, merge): Use c_strncasecmp.
90 * xgettext.c: Include c-strcase.h instead of strcase.h.
91 (language_to_extractor): Use c_strcasecmp.
92 Reported by Recai Oktaş <roktas@omu.edu.tr>.
94 2005-02-07 Bruno Haible <bruno@clisp.org>
96 * project-id: Use LC_ALL=C to protect range expression against
99 2005-02-06 Bruno Haible <bruno@clisp.org>
101 Leave #: lines with unknown syntax alone instead of turning them into
103 * po-hash.h: Remove file.
104 * po-hash-gen.y: Remove file.
105 * read-po-abstract.c: Don't include po-hash.h.
106 (po_parse_comment_filepos, po_parse_comment_solaris_filepos): New
108 (po_callback_comment_dispatcher): Call them instead of the old
109 po_parse_comment_filepos.
110 * read-stringtable.c: Don't include po-hash.h.
111 * Makefile.am (noinst_HEADERS): Remove po-hash.h, po-hash-gen.h.
112 (COMMON_SOURCE): Remove po-hash-gen.y.
113 (BUILT_SOURCES): Remove po-hash-gen.c, po-hash-gen.h.
114 * Makefile.msvc (OBJECTS): Remove po-hash-gen.obj.
115 (po-hash-gen.obj): Remove rule.
116 * Makefile.vms (OBJECTS): Remove po-hash-gen.obj.
117 (po-hash-gen.obj): Remove rule.
119 Reported by David Fraser <davidf@sjsoft.com>.
121 2005-02-04 Bruno Haible <bruno@clisp.org>
123 * plural-table.c (plural_table): Add an entry about Vietnamese.
124 Explanations by Clytie Siddall <clytie@riverland.net.au>.
126 2005-01-29 Bruno Haible <bruno@clisp.org>
128 * Makefile.am (msgcmp_LDADD, msgfmt_LDADD, msgmerge_LDADD,
129 msgunfmt_LDADD, xgettext_LDADD, msgattrib_LDADD, msgcat_LDADD,
130 msgcomm_LDADD, msgconv_LDADD, msgen_LDADD, msgexec_LDADD,
131 msgfilter_LDADD, msggrep_LDADD, msguniq_LDADD): Add INTL_MACOSX_LIBS.
133 2005-01-27 Bruno Haible <bruno@clisp.org>
135 * msgfmt.c (formatstring_error_logger): Cast the fprrintf argument,
136 to make it work on big-endian 64-bit machines.
138 2005-01-16 Bruno Haible <bruno@clisp.org>
141 * message.h (format_type): New enum value 'format_scheme'.
142 (NFORMATS): Increment.
143 * message.c (format_language): Add format_scheme entry.
144 (format_language_pretty): Likewise.
145 * format.h (formatstring_scheme): New declaration.
146 * format-scheme.c: New file, based on format-lisp.c.
147 * format.c (formatstring_parsers): Add formatstring_scheme.
148 * x-scheme.h: New file.
149 * x-scheme.c: New file.
150 * xgettext.c: Include x-scheme.h.
151 (flag_table_scheme): New variable.
152 (main): Invoke init_flag_table_scheme, x_scheme_extract_all,
154 (usage): Mention Scheme source language.
155 (xgettext_record_flag): Handle format_scheme.
156 (language_to_extractor): Add Scheme rule.
157 (extension_to_language): Add Scheme rule.
158 * Makefile.am (noinst_HEADERS): Add x-scheme.h.
159 (FORMAT_SOURCE): Add format-scheme.c.
160 (xgettext_SOURCES): Add x-scheme.c.
161 * Makefile.msvc (OBJECTS): Add format-scheme.obj.
162 (xgettext_OBJECTS): Add x-scheme.obj.
163 (format-scheme.obj, x-scheme.obj): New rules.
164 * Makefile.vms (OBJECTS): Add format-scheme.obj.
165 (xgettext_OBJECTS): Add x-scheme.obj.
166 (format-scheme.obj, x-scheme.obj): New rules.
169 2005-01-08 Bruno Haible <bruno@clisp.org>
171 * msggrep.c (grep_args, grep_path, grep_argv): Remove variables.
172 (struct grep_task): New type.
173 (grep_task): New variable.
174 (main): Initialize grep_task instead of grep_args. Change processing
175 of options 'E', 'F' to set a matcher, of 'e', 'f' to append to the
176 pattern string, and of 'i' to set a boolean. Compile the patterns.
177 (is_string_selected): Execute a compiled pattern instead of calling
179 (is_message_selected): Update.
180 * Makefile.am (AM_CPPFLAGS): Add -I option for libgrep.
181 (LIBGREP): New variable.
182 (msggrep_LDADD): Add $(LIBGREP).
183 * Makefile.msvc (INCLUDES): Add libgrep directory.
184 (msggrep.exe): Link with libgrep.
185 * Makefile.vms (INCLUDES): Add libgrep directory.
186 (msggrep.exe): Link with libgrep.
188 2005-01-09 Bruno Haible <bruno@clisp.org>
190 * msgl-ascii.h (is_ascii_msgdomain_list): New declaration.
191 * msgl-ascii.c (is_ascii_msgdomain_list): New function.
192 * x-po.c (header_charset): New variable.
193 (extract_add_message): When seeing the header entry, store the charset
195 (extract): Store the value of header_charset in the new constructed
197 * xgettext.c (main): Convert the existing PO file to UTF-8 if it was
199 Reported by Jörg Schilling <schilling@fokus.fraunhofer.de>.
201 2005-01-08 Bruno Haible <bruno@clisp.org>
203 * msggrep.c (usage): Explain COMMENT-PATTERN syntax as well.
205 2005-01-06 Bruno Haible <bruno@clisp.org>
207 * x-tcl.c (read_word): Ignore non-space whitespace at the beginning.
208 Reported by William J Poser <wjposer@ldc.upenn.edu>.
210 2005-01-06 Bruno Haible <bruno@clisp.org>
212 * write-csharp.c (msgdomain_write_csharp): Don't call fclose after
214 * write-java.c (msgdomain_write_java): Likewise.
215 * write-mo.c (msgdomain_write_mo): Likewise.
216 * write-po.c (msgdomain_list_print): Likewise.
217 * write-qt.c (msgdomain_write_qt): Likewise.
218 * write-resources.c (execute_writing_input): Likewise.
219 * write-tcl.c (msgdomain_write_tcl): Likewise.
221 2005-01-05 Bruno Haible <bruno@clisp.org>
223 * msgattrib.c (main): Update year in --version output.
224 * msgcat.c (main): Likewise.
225 * msgcmp.c (main): Likewise.
226 * msgcomm.c (main): Likewise.
227 * msgconv.c (main): Likewise.
228 * msgen.c (main): Likewise.
229 * msgexec.c (main): Likewise.
230 * msgfilter.c (main): Likewise.
231 * msgfmt.c (main): Likewise.
232 * msggrep.c (main): Likewise.
233 * msginit.c (main): Likewise.
234 * msgmerge.c (main): Likewise.
235 * msgunfmt.c (main): Likewise.
236 * msguniq.c (main): Likewise.
237 * xgettext.c (main): Likewise.
239 2005-01-07 Bruno Haible <bruno@clisp.org>
241 * gettext-po.c (po_file_read): Interpret "-" and "/dev/stdin" as
243 Suggested by Asgeir Frimannsson <asgeirf@redhat.com>.
245 2004-11-29 Bruno Haible <bruno@clisp.org>
247 * Makefile.am (libgettextpo_la_LDFLAGS): Add @LTLIBINTL@ @LTLIBICONV@.
248 Reported by Sam Steingold <sds@gnu.org>.
250 2004-10-01 Guido Flohr <guido@imperia.net>
252 * x-perl.c (x_perl_prelex): Recognize function names starting with '-'.
253 Reported by Ryan Anderson <ryan@autoweb.net>.
255 2004-09-16 Bruno Haible <bruno@clisp.org>
257 * format.h (formatstring_error_logger_t): Modify decl for GCC <= 3.0.
258 Reported by Jens A. Tkotz <jens@peino.de>.
260 2004-09-11 Bruno Haible <bruno@clisp.org>
262 * Makefile.am (msginit_SOURCES): Add plural-count.c.
263 * msginit.c (update_msgstr_plurals): New function.
265 * msgmerge.c (match_domain): Provide the appropriate number of plural
266 forms for messages that don't occur in the Def.po file.
267 Reported by Jens A. Tkotz <jens@peino.de>.
269 2004-09-06 Bruno Haible <bruno@clisp.org>
271 * format.h (formatstring_error_logger_t): New type.
272 (struct formatstring_parser): Change calling convention of 'check'
274 (check_msgid_msgstr_format): New declaration.
275 * format-awk.c (format_check): Use error_logger argument instead of
276 noisy and error_at_line.
277 * format-c.c (format_check): Likewise.
278 * format-csharp.c (format_check): Likewise.
279 * format-elisp.c (format_check): Likewise.
280 * format-gcc-internal.c (format_check): Likewise.
281 * format-java.c (format_check): Likewise.
282 * format-librep.c (format_check): Likewise.
283 * format-lisp.c (format_check): Likewise.
284 * format-pascal.c (format_check): Likewise.
285 * format-perl.c (format_check): Likewise.
286 * format-perl-brace.c (format_check): Likewise.
287 * format-php.c (format_check): Likewise.
288 * format-python.c (format_check): Likewise.
289 * format-qt.c (format_check): Likewise.
290 * format-sh.c (format_check): Likewise.
291 * format-tcl.c (format_check): Likewise.
292 * format-ycp.c (format_check): Likewise.
293 * format.c (check_msgid_msgstr_format): New function, extracted from
295 * msgfmt.c (curr_msgid_pos): New variable.
296 (formatstring_error_logger): New function.
297 (check_pair): Use check_msgid_msgstr_format, formatstring_error_logger.
298 * msgmerge.c (msgfmt_check_pair_fails): Update.
299 * gettext-po.h (po_message_check_format): New declaration.
300 * gettext-po.c (po_error_logger, po_message_check_format): New
303 2004-09-05 Bruno Haible <bruno@clisp.org>
305 * po-error.h: New file.
306 * po-error.c: New file.
307 * po-charset.c: Include po-error.h.
308 (po_lex_charset_set): Use po_multiline_warning instead of
310 * po-lex.h: Include po-error.h.
311 (po_gram_error): Use po_error instead of error.
312 (po_gram_error_at_line): Use po_error_at_line instead of error_at_line.
313 * po-lex.c (po_gram_error): Use po_error instead of error.
314 (po_gram_error_at_line): Use po_error_at_line instead of error_at_line.
315 (mbfile_getc, lex_getc): Use po_error instead of error.
316 * read-po-abstract.c (po_scan): Likewise.
317 * write-po.c: Include po-error.h instead of error.h.
318 (wrap): Use po_error instead of error.
319 (message_print, message_print_obsolete): Use po_multiline_warning
320 instead of multiline_warning.
321 (msgdomain_list_print): Use po_error instead of error, po_error_at_line
322 instead of error_at_line.
323 * str-list.h (string_list_join): New declaration.
324 * str-list.c (string_list_join): New function.
325 * message.h (message_list_insert_at): New declaration.
326 * message.c (message_list_insert_at): New function.
327 * gettext-po.h (po_filepos_t): New type.
328 (struct po_error_handler, po_error_handler_t): New types.
329 (po_file_create): New declaration.
330 (po_file_read): Add handler argument.
331 (po_file_write, po_message_insert, po_message_create,
332 po_message_set_msgid, po_message_set_msgid_plural,
333 po_message_set_msgstr, po_message_set_msgstr_plural,
334 po_message_comments, po_message_set_comments,
335 po_message_extracted_comments, po_message_filepos,
336 po_message_set_obsolete, po_message_set_fuzzy, po_message_set_format,
337 po_filepos_file, po_filepos_start_line): New declarations.
338 * gettext-po.c (po_file_create): New function.
339 (po_file_read): Add handler argument. Keep an old version for backward
341 (po_file_write): New function.
342 (po_message_iterator): Store more information, to make
343 po_message_insert possible.
344 (po_message_iterator_free): Update.
345 (po_next_message): Don't crash if iterator->mlp is NULL.
346 (po_message_insert): New function.
347 (po_message_create): New function.
348 (po_message_set_msgid, po_message_set_msgid_plural,
349 po_message_set_msgstr, po_message_set_msgstr_plural,
350 po_message_comments, po_message_set_comments,
351 po_message_extracted_comments, po_message_filepos,
352 po_message_set_obsolete, po_message_set_fuzzy, po_message_set_format,
353 po_filepos_file, po_filepos_start_line): New functions.
354 * Makefile.am (noinst_HEADERS): Add po-error.h.
355 (COMMON_SOURCE): Add po-error.c.
356 * Makefile.msvc (OBJECTS): Add po-error.obj.
357 (po-error.obj): New rule.
358 * Makefile.vms (OBJECTS): Add po-error.obj.
359 (po-error.obj): New rule.
362 2004-09-03 Bruno Haible <bruno@clisp.org>
364 * Makefile.am (msginit_LDADD): Use the INTL_MACOSX_LDFLAGS.
366 2004-08-30 Bruno Haible <bruno@clisp.org>
368 * plural-table.c (plural_table): Czech is now like Slovak.
369 Reported by Stepan Kasal <kasal@ucw.cz>.
371 2004-06-23 Bruno Haible <bruno@clisp.org>
373 * x-c.c (phase1_getc): Fix phase0_getc invocation.
374 Reported by Matt Dreezer <matthew.dreezer@edl.uk.eds.com>.
376 2004-05-14 Bruno Haible <bruno@clisp.org>
378 * format-java.c (message_format_parse): Fix argument of freesa() calls.
380 2004-03-19 Bruno Haible <bruno@clisp.org>
382 * Makefile.am (install-exec-clean): Don't remove libgettextsrc.a on
384 Reported by Kouichi Hashikawa <z01a7ksy@cs.ecip.tohoku.ac.jp>.
386 2004-03-14 Bruno Haible <bruno@clisp.org>
388 * format-lisp.c (parse_upto): Add integer restriction for the dispatch
391 2004-03-02 Bruno Haible <bruno@clisp.org>
393 * read-csharp.c (msgdomain_read_csharp): Extend the lang -> frobbedlang
394 mapping so as to support Serbian and Uzbek locales.
395 * write-csharp.c (msgdomain_write_csharp): Likewise.
396 Reported by Jorn Baayen <jbaayen@dds.nl>.
398 2004-02-27 Bruno Haible <bruno@clisp.org>
400 * plural-table.c (plural_table): Add an entry about Serbian.
401 Reported by Danilo Segan <danilo@gnome.org>.
403 2004-01-29 Bruno Haible <bruno@clisp.org>
405 * gettext-0.14.1 released.
407 2004-01-28 Bruno Haible <bruno@clisp.org>
409 * gettext-0.14 released.
411 2004-01-18 Bruno Haible <bruno@clisp.org>
413 * msginit.c (catalogname_for_locale): Add entries for Akan, Avaric,
414 Bambara, Cree, Divehi (Maldivian), Éwé, Igbo, Kongo, Kanuri, Ganda,
415 Luba-Katanga, Ojibwa, Venda.
416 (englishname_of_language): Likewise, and also for Fulah (Fulfulde).
418 2004-01-09 Bruno Haible <bruno@clisp.org>
420 * format.h (struct formatstring_parser): Add 'translated' argument to
422 (get_sysdep_c_format_directives): Renamed from
423 get_c99_format_directives. Add 'translated' argument. Change meaning
424 of endpos in returned array.
425 * format-c.c (struct spec): Rename field c99_directives to
426 sysdep_directives, and c99_directives_count to sysdep_directives_count.
427 (format_parse): Add 'translated' argument. Handle 'I' flag. Store the
428 pointer past the '>' character instead of the pointer to the '>'.
429 (format_c_parse, format_objc_parse): Add 'translated' argument.
430 (get_sysdep_c_format_directives): Renamed from
431 get_c99_format_directives. Add 'translated' argument.
432 * format-awk.c (format_parse): Add 'translated' argument.
433 * format-csharp.c (format_parse): Likewise.
434 * format-elisp.c (format_parse): Likewise.
435 * format-gcc-internal.c (format_parse): Likewise.
436 * format-java.c (format_parse): Likewise.
437 * format-librep.c (format_parse): Likewise.
438 * format-lisp.c (format_parse): Likewise.
439 * format-pascal.c (format_parse): Likewise.
440 * format-perl-brace.c (format_parse): Likewise.
441 * format-perl.c (format_parse): Likewise.
442 * format-php.c (format_parse): Likewise.
443 * format-python.c (format_parse): Likewise.
444 * format-qt.c (format_parse): Likewise.
445 * format-sh.c (format_parse): Likewise.
446 * format-tcl.c (format_parse): Likewise.
447 * format-ycp.c (format_parse): Likewise.
448 * msgfmt.c (check_pair): Update.
449 * msgmerge.c (msgfmt_check_pair_fails): Likewise.
450 * read-mo.c (get_sysdep_string): Don't add '<'...'>' around segments
452 (read_mo_file): Treat major revision 1 like major revision 0.
453 * write-mo.c (write_table): Update. Use major revision 1 if "I" occurs
454 among the sysdep segments.
455 * xgettext.c (set_format_flags_from_context, remember_a_message,
456 remember_a_message_plural): Update.
458 2004-01-14 Bruno Haible <bruno@clisp.org>
460 * msginit.c (fill_header): Avoid a NULL pointer access when the header
461 has no comment attached to it.
462 Reported by Josep Puigdemont <baldrick@terra.es>.
464 2004-01-09 Bruno Haible <bruno@clisp.org>
466 * msgattrib.c (main): Update year in --version output.
467 * msgcat.c (main): Likewise.
468 * msgcmp.c (main): Likewise.
469 * msgcomm.c (main): Likewise.
470 * msgconv.c (main): Likewise.
471 * msgen.c (main): Likewise.
472 * msgexec.c (main): Likewise.
473 * msgfilter.c (main): Likewise.
474 * msgfmt.c (main): Likewise.
475 * msggrep.c (main): Likewise.
476 * msginit.c (main): Likewise.
477 * msgmerge.c (main): Likewise.
478 * msgunfmt.c (main): Likewise.
479 * msguniq.c (main): Likewise.
480 * xgettext.c (main): Likewise.
482 2003-12-29 Bruno Haible <bruno@clisp.org>
484 * xgettext.h: Include stdlib.h, str-list.h.
485 (struct refcounted_string_list_ty): New type.
486 (add_reference, drop_reference): New functions.
487 (savable_comment, savable_comment_add, savable_comment_reset,
488 savable_comment_to_xgettext_comment): New declarations.
489 * xgettext.c (savable_comment): New variable.
490 (savable_comment_add, savable_comment_reset,
491 savable_comment_to_xgettext_comment): New functions.
492 * x-java.c (struct refcounted_string_list_ty, comment, add_reference,
493 drop_reference, x_java_comment_add, x_java_comment_reset,
494 x_java_comment_to_xgettext_comment): Remove. Use replacement from
495 xgettext.{h,c} instead.
496 * x-csharp.c (struct refcounted_string_list_ty, comment, add_reference,
497 drop_reference, x_csharp_comment_add, x_csharp_comment_reset,
498 x_csharp_comment_to_xgettext_comment): Remove. Use replacement from
499 xgettext.{h,c} instead.
500 * x-c.c (comment_line_end): Call savable_comment_add instead of
501 xgettext_comment_add.
502 (struct token_ty): Add 'comment' field.
503 (free_token): Free it.
504 (phase5_get): Initialize token's 'comment' field.
505 (phase6_get): Call savable_comment_reset instead of
506 xgettext_comment_reset.
507 (phase8a_get): Initialize token's 'comment' field.
508 (phase8b_get): Call savable_comment_reset instead of
509 xgettext_comment_reset.
510 (phase8c_get): In @"...", use the comment of the first token, not of
512 (struct xgettext_token_ty): Add 'comment' field.
513 (x_c_lex): Deal with the token's comment.
514 (extract_parenthesized): Call savable_comment_to_xgettext_comment and
515 savable_comment_reset. Free the token's comment field.
516 * x-python.c (comment_line_end): Call savable_comment_add instead of
517 xgettext_comment_add.
518 (struct token_ty): Add 'comment' field.
519 (phase5_get): Call savable_comment_reset instead of
520 xgettext_comment_reset. Initialize token's 'comment' field.
521 (extract_parenthesized): Call savable_comment_to_xgettext_comment and
522 savable_comment_reset. Free the token's comment field.
524 2003-12-28 Bruno Haible <bruno@clisp.org>
526 * read-mo.h (read_mo_file): Change 'fn' into 'filename'.
527 * read-mo.c (read_mo_file): Likewise.
529 2003-12-28 Bruno Haible <bruno@clisp.org>
531 * write-resources.h: New file.
532 * write-resources.c: New file.
533 * msgfmt.cs: New file.
534 * msgfmt.c: Include write-resources.h.
535 (csharp_resources_mode): New variable.
536 (long_options): Add --csharp-resources.
537 (main): Handle --csharp-resources. More generic code for detection of
538 contradicting modes. Invoke msgdomain_write_csharp_resources.
539 (usage): Document --csharp-resources option.
540 (msgfmt_set_domain): Update.
541 * read-resources.h: New file.
542 * read-resources.c: New file.
543 * msgunfmt.cs (DumpResource): Add a constructor that dumps a .resources
545 (Main): Invoke it when only one argument is given.
546 * msgunfmt.c: Include read-resources.h.
547 (csharp_resources_mode): New variable.
548 (long_options): Add --csharp-resources.
549 (main): Handle --csharp-resources. More generic code for detection of
550 contradicting modes. Invoke read_one_file instead of read_mo_file.
551 (usage): Document --csharp-resources option.
552 (read_one_file): New function.
553 * Makefile.am (noinst_HEADERS): Add read-resources.h and
555 (msgfmt_SOURCES): Add write-resources.c.
556 (msgunfmt_SOURCES): Add read-resources.c.
557 (EXTRA_DIST): Add msgfmt.cs.
558 (CLEANFILES): Add msgfmt.net.exe.
559 (msgfmt.net.exe): New rule.
560 (all-csharp-yes): Depend on it.
561 (install-exec-csharp-yes): Also install msgfmt.net.exe.
562 (uninstall-csharp-yes): Also uninstall msgfmt.net.exe.
563 * Makefile.msvc (msgfmt_OBJECTS): Add write-resources.obj.
564 (msgunfmt_OBJECTS): Add read-resources.obj.
565 (write-resources.obj, read-resources.obj): New rules.
566 * Makefile.vms (msgfmt_OBJECTS): Add write-resources.obj.
567 (msgunfmt_OBJECTS): Add read-resources.obj.
568 (write-resources.obj, read-resources.obj): New rules.
571 2003-12-26 Bruno Haible <bruno@clisp.org>
574 * write-csharp.h: New file.
575 * write-csharp.c: New file.
576 * msgfmt.c: Include write-csharp.h.
577 (csharp_mode, csharp_resource_name, csharp_locale_name,
578 csharp_base_directory): New variables.
579 (long_options): Add option --csharp.
580 (main): Handle option --csharp. Initialize csharp_resource_name,
581 csharp_locale_name, csharp_base_directory. Perform checks for C# mode.
582 Invoke msgdomain_write_csharp.
583 (usage): Document --csharp option and C# mode.
584 (msgfmt_set_domain): Ignore in C# mode.
585 * read-csharp.h: New file.
586 * read-csharp.c: New file.
587 * msgunfmt.cs: New file.
588 * msgunfmt.c: Include read-csharp.h.
589 (csharp_mode, csharp_resource_name, csharp_locale_name,
590 csharp_base_directory): New variables.
591 (long_options): Add option --csharp.
592 (main): Handle option --csharp. Initialize csharp_resource_name,
593 csharp_locale_name, csharp_base_directory. Perform checks for C# mode.
594 Invoke msgdomain_read_csharp.
595 (usage): Document --csharp option and C# mode.
596 * Makefile.am (noinst_HEADERS): Add read-csharp.h, write-csharp.h.
597 (CSHARPCOMP, CSHARPCOMPFLAGS): New variables.
598 (msgfmt_SOURCES): Add write-csharp.c.
599 (msgunfmt_SOURCES): Add read-csharp.c.
600 (EXTRA_DIST): Add msgunfmt.cs.
601 (CLEANFILES): Add msgunfmt.net.exe.
602 (all-csharp-yes, all-csharp-no): New rules.
603 (all-local): Depend on them.
604 (msgunfmt.net.exe): New rule.
605 (install-exec-csharp-yes, install-exec-csharp-no): New rules.
606 (install-exec-local): Depend on them.
607 (installdirs-csharp): New rule.
608 (installdirs-local): Depend on it.
609 (uninstall-csharp-yes, uninstall-csharp-no): New rules.
610 (uninstall-local): Depend on it.
611 * Makefile.msvc (msgfmt_OBJECTS): Add write-csharp.obj.
612 (msgunfmt_OBJECTS): Add read-csharp.obj.
613 (write-csharp.obj, read-csharp.obj): New rules.
614 * Makefile.vms (msgfmt_OBJECTS): Add write-csharp.obj.
615 (msgunfmt_OBJECTS): Add read-csharp.obj.
616 (write-csharp.obj, read-csharp.obj): New rules.
619 2003-12-26 Bruno Haible <bruno@clisp.org>
621 * read-java.c (msgdomain_read_java): Relocate also the GETTEXTJAR
623 * urlget.c (fetch): Likewise.
625 2003-12-26 Bruno Haible <bruno@clisp.org>
627 * write-java.c (write_java_code): Emit a static method
628 'get_msgid_plural_table' instead of a static field 'plural'.
629 * gnu/gettext/DumpResource.java (DumpResource.dump): Exploit a
630 'get_msgid_plural_table' method if it exists.
632 2003-12-14 Bruno Haible <bruno@clisp.org>
634 * message.h (format_type): New enum value 'format_csharp'.
635 (NFORMATS): Increment.
636 * message.c (format_language): Add format_csharp entry.
637 (format_language_pretty): Likewise.
638 * format.h (formatstring_csharp): New declaration.
639 * format-csharp.c: New file.
640 * format.c (formatstring_parsers): Add formatstring_csharp.
641 * x-csharp.h: New file.
642 * x-csharp.c: New file.
643 * xgettext.c: Include x-csharp.h.
644 (flag_table_csharp): New variable.
645 (main): Invoke init_flag_table_csharp, x_csharp_extract_all,
647 (usage): Mention C# source language.
648 (xgettext_record_flag): Handle format_csharp.
649 (language_to_extractor): Add C# rule.
650 (extension_to_language): Add C# rule.
651 * Makefile.am (noinst_HEADERS): Add x-csharp.h.
652 (FORMAT_SOURCE): Add format-csharp.c.
653 (xgettext_SOURCES): Add x-csharp.c.
654 * Makefile.msvc (OBJECTS): Add format-csharp.obj.
655 (xgettext_OBJECTS): Add x-csharp.obj.
656 (format-csharp.obj, x-csharp.obj): New rules.
657 * Makefile.vms (OBJECTS): Add format-csharp.obj.
658 (xgettext_OBJECTS): Add x-csharp.obj.
659 (format-csharp.obj, x-csharp.obj): New rules.
662 2003-12-28 Bruno Haible <bruno@clisp.org>
664 * msgexec.c (process_string): Pass ignore_sigpipe = false.
665 * msgfilter.c (process_string): Likewise.
666 * msggrep.c (is_string_selected): Likewise.
667 * msginit.c (project_id, project_id_version, get_user_email,
668 language_team_address): Likewise.
669 * read-java.c (execute_and_read_po_output): Likewise.
670 * read-tcl.c (msgdomain_read_tcl): Likewise.
671 * urlget.c (execute_it): Pass ignore_sigpipe = true.
672 (fetch): Pass ignore_sigpipe = true when fetching the file, = false
675 2003-12-14 Bruno Haible <bruno@clisp.org>
677 * x-c.c (SIZEOF): New macro.
678 (phase1_ungetc): Verify that the pushback buffer's size is sufficient.
679 (phase2_ungetc): Likewise.
680 (phase3_ungetc): Likewise.
681 (phase5_unget): Likewise.
682 (phase6_unget): Likewise.
683 * x-java.c (SIZEOF): New macro.
684 (phase1_ungetc): Verify that the pushback buffer's size is sufficient.
685 (phase2_ungetc): Likewise.
686 (phase3_ungetc): Likewise.
687 (phase5_unget): Likewise.
688 (phase6_unget): Likewise.
689 * x-php.c (SIZEOF): New macro.
690 (phase1_ungetc): Verify that the pushback buffer's size is sufficient.
691 (phase2_ungetc): Likewise.
692 (phase3_ungetc): Likewise.
693 * x-python.c (SIZEOF): New macro.
694 (phase1_ungetc): Verify that the pushback buffer's size is sufficient.
695 (phase5_unget): Likewise.
696 * x-sh.c (SIZEOF): New macro.
697 (phase1_ungetc): Verify that the pushback buffer's size is sufficient.
698 (phase2_ungetc): Likewise.
699 * x-smalltalk.c (SIZEOF): New macro.
700 (phase2_unget): Verify that the pushback buffer's size is sufficient.
701 * x-tcl.c (SIZEOF): New macro.
702 (phase1_ungetc): Verify that the pushback buffer's size is sufficient.
703 (phase2_ungetc): Likewise.
704 * x-ycp.c (SIZEOF): New macro.
705 (phase2_unget): Verify that the pushback buffer's size is sufficient.
707 2003-12-14 Bruno Haible <bruno@clisp.org>
709 * x-c.c (phase1_pushback): Reduce size to 2.
710 (phase2_pushback): Reduce size to 1.
711 (phase3_pushback): Reduce size to 2.
712 (phase5_pushback): Reduce size to 1.
713 (phase6_pushback): Reduce size to 2.
714 * x-java.c (phase2_pushback): Reduce size to 1.
715 (phase3_pushback): Reduce size to 2.
716 (phase5_pushback): Reduce size to 3.
717 (phase6_pushback): Reduce size to 2.
718 * x-php.c (phase1_pushback): Reduce size to 2.
719 * x-python.c (max): New macro.
720 (phase1_pushback): Reduce size to UNINAME_MAX + 3.
721 (phase5_pushback): Reduce size to 1.
722 * x-sh.c (phase1_pushback): Reduce size to 1.
723 (phase2_pushback): Reduce size to 2.
724 * x-smalltalk.c (phase2_pushback): Reduce size to 1.
725 * x-tcl.c (phase1_pushback): Reduce size to 1.
726 (phase2_pushback): Reduce size to 2.
728 2003-12-12 Bruno Haible <bruno@clisp.org>
731 * Makefile.am (install-exec-local): Renamed from install-exec-am.
733 2003-11-30 Bruno Haible <bruno@clisp.org>
735 * format-java.c: Include xallocsa.h.
736 (message_format_parse): Use xallocsa instead of alloca.
737 (choice_format_parse): Likewise.
738 * msgl-cat.c: Include xallocsa.h.
739 (catenate_msgdomain_list): Use xallocsa instead of alloca.
740 * msgl-charset.c: Include xallocsa.h.
741 (compare_po_locale_charsets): Use xallocsa instead of alloca.
742 * msgl-iconv.c: Include xallocsa.h.
743 (iconv_message_list): Use xallocsa instead of alloca.
744 * po-charset.c: Include xallocsa.h.
745 (po_lex_charset_set): Use xallocsa instead of alloca.
746 * read-tcl.c: Include xallocsa.h.
747 (msgdomain_read_tcl): Use xallocsa instead of alloca.
748 * write-java.c: Include xallocsa.h.
749 (compute_hashsize, msgdomain_write_java): Use xallocsa instead of
751 * write-mo.c: Include xallocsa.h.
752 (write_table): Use xallocsa instead of alloca.
753 * write-po.c: Include xallocsa.h.
754 (msgdomain_list_print_po): Use xallocsa instead of alloca.
755 * write-tcl.c: Include xallocsa.h.
756 (msgdomain_write_tcl): Use xallocsa instead of alloca.
757 * msggrep.c: Include xallocsa.h.
758 (is_message_selected): Use xallocsa instead of alloca.
759 * msginit.c: Include xallocsa.h.
760 (subst_string): Use xallocsa instead of alloca.
761 * msgmerge.c: Include obstack.h.
762 (obstack_chunk_alloc, obstack_chunk_free): New macros.
763 (message_merge): Use obstack_alloc instead of alloca.
764 * xgettext.c: Include xallocsa.h.
765 (flag_context_list_table_insert): Use xallocsa instead of alloca.
767 2003-12-17 Bruno Haible <bruno@clisp.org>
769 * gettext-0.13.1 released.
771 2003-12-14 Bruno Haible <bruno@clisp.org>
773 * x-sh.c (phase2_getc): Call phase1_ungetc instead of phase2_ungetc:
774 The next phase2_getc invocation must return QUOTED('"'), not '"'.
776 2003-12-14 Bruno Haible <bruno@clisp.org>
778 * x-c.c (phase7_getc): Remove dead code.
779 * x-java.c (accumulate_escaped): More precise error message.
781 2003-12-02 Bruno Haible <bruno@clisp.org>
783 * msginit.c (catalogname_for_locale): Treat sr_CS like sr_YU.
785 2003-11-30 Bruno Haible <bruno@clisp.org>
787 * gettext-0.13 released.
789 2003-11-28 Bruno Haible <bruno@clisp.org>
791 * xgettext.c (set_format_flags_from_context): Add casts, to make it
794 2003-11-22 Bruno Haible <bruno@clisp.org>
796 * x-c.c (phase4_getc): Skip leading whitespace in C++ style comments
798 * x-sh.c (read_word): Skip leading whitespace in comments.
799 * x-lisp.c (read_object): Skip leading whitespace in single-line
801 * x-elisp.c (read_object): Skip leading whitespace in comments.
802 * x-librep.c (read_object): Skip leading whitespace in single-line
804 * x-java.c (phase4_getc): Skip leading whitespace in C++ style comments
806 * x-awk.c (phase2_getc): Skip leading whitespace in comments.
807 * x-ycp.c (phase2_getc): Skip leading whitespace in single-line
809 * x-tcl.c (read_command): Skip leading whitespace in comments.
811 2003-11-24 Bruno Haible <bruno@clisp.org>
813 * format-lisp.c (check_params): Use ngettext for one of the messages.
814 Reported by Rafał Maszkowski <rzm@icm.edu.pl>.
816 2003-11-15 Bruno Haible <bruno@clisp.org>
818 * Makefile.am (AM_CPPFLAGS): Renamed from INCLUDES.
820 2003-11-09 Bruno Haible <bruno@clisp.org>
822 * msginit.c (main): Drop the blank line in --no-translator mode.
824 2003-11-07 Bruno Haible <bruno@clisp.org>
826 * xgettext.c (remember_a_message): Omit the programmer comments of a
827 duplicated msgid only if they are redundant.
828 Reported by Christian Neumair <chris@gnome-de.org>.
830 2003-11-05 Bruno Haible <bruno@clisp.org>
832 * user-email.sh.in: Renamed from user-email.in. Internationalize, use
833 localedir and gettext.
836 2003-10-23 Bruno Haible <bruno@clisp.org>
838 * read-stringtable.c (read_string, stringtable_parse): Cast
839 gram_pos.line_number to 'unsigned long'.
840 * x-sh.c (read_word): Case line_number to 'unsigned long'.
842 2003-10-21 Bruno Haible <bruno@clisp.org>
844 * message.h (message_list_msgids_changed): New declaration.
845 * message.c (message_list_msgids_changed): New function.
846 * msgl-iconv.c (iconv_message_list): Update the message list's hash
847 table if it happens to contain non-ASCII msgids.
849 2003-10-19 Bruno Haible <bruno@clisp.org>
851 * message.h (format_type): New enum value 'format_qt'.
852 (NFORMATS): Increment.
853 * message.c (format_language): Add format_qt entry.
854 (format_language_pretty): Likewise.
855 * format.h (formatstring_qt): New declaration.
856 * format-qt.c: New file.
857 * format.c (formatstring_parsers): Add formatstring_qt.
858 * xgettext.c (recognize_format_qt): New variable.
859 (long_options): Add option "--qt".
860 (main): Handle --qt option. Determine the extractor only after option
861 processing is complete.
862 (usage): Document --qt option.
863 (xgettext_record_flag): Handle format_qt.
864 (language_to_extractor): For C++, return a different extractor when
866 * write-qt.h: New file.
867 * write-qt.c: New file.
868 * msgfmt.c: Include write-qt.h.
869 (qt_mode): New variable.
870 (long_options): Add option "--qt".
871 (main): Handle --qt option. More checks for contradicting options.
872 Call msgdomain_write_qt.
873 (usage): Mention Qt mode.
874 (format_directive_domain): Ignore domain directive if in Qt mode.
875 * Makefile.am (noinst_HEADERS): Add write-qt.h.
876 (FORMAT_SOURCE): Add format-qt.c.
877 (msgfmt_SOURCES): Add write-qt.c.
878 * Makefile.msvc (OBJECTS): Add format-qt.obj.
879 (msgfmt_OBJECTS): Add write-qt.obj.
880 (format-qt.obj, write-qt.obj): New rules.
881 * Makefile.vms (OBJECTS): Add format-qt.obj.
882 (msgfmt_OBJECTS): Add write-qt.obj.
883 (format-qt.obj, write-qt.obj): New rules.
886 2003-10-14 Bruno Haible <bruno@clisp.org>
888 Fix compilation errors in C++ mode.
889 * msgfilter.c (process_string): Cast the xrealloc expression.
890 * xgettext.c (language_to_extractor, extension_to_language): Move the
891 typedef after the struct definition.
893 2003-10-13 Bruno Haible <bruno@clisp.org>
895 Support CR/LF line terminators in C sources even on Unix.
896 * x-c.c (phase0_getc, phase0_ungetc): New functions.
897 (phase1_getc): Use them instead of calling getc/ungetc directly.
898 Reported by Christoph Thielecke <u15119@hs-harz.de>.
900 2003-10-13 Bruno Haible <bruno@clisp.org>
902 Support and recognize Objective C specific format strings.
903 * message.h (enum format_type): New item format_objc.
904 (NFORMATS): Increment.
905 * message.c (format_language): Add an entry for format_objc.
906 (format_language_pretty): Likewise.
907 * format.h (formatstring_objc): New declaration.
908 * format-c.c (enum format_arg_type): New item FAT_OBJC_OBJECT.
909 (format_parse): Add objc_extensions argument. Handle %@ in ObjC mode.
910 (format_c_parse, format_objc_parse): New functions.
911 (formatstring_c): Use format_c_parse instead of format_parse.
912 (formatstring_objc): New variable.
913 (get_c99_format_directives): Update.
914 * format.c (formatstring_parsers): Add an entry for format_objc.
915 * write-mo.c (write_table): Look for system dependent strings also in
916 ObjectiveC format strings.
917 * x-c.h (SCANNERS_C): Use separate flag_table for ObjectiveC.
918 (x_objc_keyword, init_flag_table_objc): New declarations.
919 (x_c_any_keywords): Remove declaration.
920 * x-c.c (c_keywords): Renamed from keywords.
921 (objc_keywords): New variable.
922 (add_keyword): Renamed from x_c_keyword. Add keywords table argument.
923 (x_c_keyword, x_objc_keyword): New functions.
924 (x_c_any_keywords): Remove function.
925 (init_keywords): Also initialize ObjectiveC keyword table.
926 (init_flag_table_objc): New function.
927 (enum token_type_ty): New item token_type_colon.
928 (phase5_get): Recognize colon.
929 (enum xgettext_token_type_ty): New item xgettext_token_type_colon.
930 (x_c_lex): Use keywords table depending on objc_extensions. Handle
932 (extract_parenthesized): Change the context_iter and inner_context
933 after a keyword/symbol followed by a colon was seen.
934 * xgettext.c (flag_table_objc): New variable.
935 (main): Invoke init_flag_table_objc, x_objc_keyword. Watch out for
936 keywords arguments, instead of calling x_c_any_keywords().
937 (flag_context_list_table_insert): New function, extracted from
938 xgettext_record_flag.
939 (xgettext_record_flag): Call it. For format_c, insert the flags also
940 in the flag_table_objc. Handle format_objc.
941 (remember_a_message): Don't add a heuristic c-format flag to an entry
942 that already carries objc-format.
943 (remember_a_message_plural): Likewise.
945 2003-10-18 Bruno Haible <bruno@clisp.org>
947 Support for GNUstep .strings format.
948 * read-stringtable.h: New file.
949 * read-stringtable.c: New file.
950 * read-po-abstract.h (enum input_syntax_ty): New item
952 (po_callback_comment_dispatcher): Renamed from po_callback_comment.
953 (po_callback_comment, po_callback_comment_special): New declarations.
954 * read-po-abstract.c: Include read-stringtable.h.
955 (po_scan): Add support for syntax_stringtable.
956 (po_callback_comment_dispatcher): Renamed from po_callback_comment.
957 (po_callback_comment, po_callback_comment_dot): New functions.
958 (po_callback_comment_special): New function.
959 * read-po.c (read_po): Set mdlp->encoding for syntax_stringtable too.
960 * po-gram-gen.y: Update po_callback_comment_dispatcher call.
961 * read-properties.c (properties_parse): Likewise.
962 * write-stringtable.h: New file.
963 * write-stringtable.c: New file.
964 * write-po.h (make_format_description_string, significant_format_p):
966 (message_print_syntax_stringtable): New declaration.
967 * write-po.c: Include write-stringtable.h.
968 (make_format_description_string, significant_format_p): Make
970 (use_syntax_stringtable): New variable.
971 (message_print_syntax_stringtable): New function.
972 (msgdomain_list_print): Add check for plural forms for
973 syntax_stringtable too. Add support for writing the .strings format.
974 * msgattrib.c (long_options): Add --stringtable-input/output.
976 (usage): Document options --stringtable-input/output.
977 * msgcat.c (long_options): Add --stringtable-input/output.
978 (main): Handle them. If option --stringtable-output is used, convert to
979 UTF-8 and ignore the to_code.
980 (usage): Document options --stringtable-input/output.
981 * msgcmp.c (long_options): Add --stringtable-input.
983 (usage): Document option --stringtable-input.
984 * msgcomm.c (long_options): Add --stringtable-input/output.
986 (usage): Document options --stringtable-input/output.
987 * msgconv.c (long_options): Add --stringtable-input/output.
988 (main): Handle them. If option --stringtable-output is used, ignore the
990 (usage): Document options --stringtable-input/output.
991 * msgen.c (long_options): Add --stringtable-input/output.
993 (usage): Document options --stringtable-input/output.
994 * msgexec.c: Include limits.h.
995 (long_options): Add --stringtable-input.
997 (usage): Document option --stringtable-input.
998 * msgfilter.c (long_options): Add --stringtable-input/output.
1000 (usage): Document options --stringtable-input/output.
1001 * msgfmt.c (long_options): Add --stringtable-input.
1003 (usage): Document option --stringtable-input.
1004 * msggrep.c (long_options): Add --stringtable-input/output.
1005 (main): Handle them.
1006 (usage): Document options --stringtable-input/output.
1007 * msginit.c (long_options): Add --stringtable-input/output.
1008 (main): Handle them.
1009 (usage): Document options --stringtable-input/output.
1010 * msgmerge.c (long_options): Add --stringtable-input/output.
1011 (main): Handle them. In update mode, --stringtable-input implies
1012 --stringtable-output.
1013 (usage): Document options --stringtable-input/output.
1014 * msgunfmt.c (long_options): Add --stringtable-output.
1016 (usage): Document option --stringtable-output.
1017 * msguniq.c (long_options): Add --stringtable-input/output.
1018 (main): Handle them.
1019 (usage): Document options --stringtable-input/output.
1020 * x-stringtable.h: New file.
1021 * x-po.c: Include x-stringtable.h.
1022 (extract_stringtable): New function.
1023 * xgettext.c: Include x-stringtable.h.
1024 (long_options): Add --stringtable-output.
1026 (usage): Document options -L NXStringTable and --stringtable-output.
1027 (finalize_header): If --stringtable-output was given, set the charset.
1028 (language_to_extractor): Add support for .strings format.
1029 (extension_to_language): Likewise.
1030 * Makefile.am (noinst_HEADERS): Add read-stringtable.h,
1031 write-stringtable.h, x-stringtable.h.
1032 (COMMON_SOURCE): Add read-stringtable.c.
1033 (libgettextsrc_la_SOURCES): Add write-stringtable.c.
1034 * Makefile.msvc (OBJECTS): Add read-stringtable.obj,
1035 write-stringtable.obj.
1036 (read-stringtable.obj, write-stringtable.obj): New rules.
1037 * Makefile.vms (OBJECTS): Add read-stringtable.obj,
1038 write-stringtable.obj.
1039 (read-stringtable.obj, write-stringtable.obj): New rules.
1042 2003-10-21 Bruno Haible <bruno@clisp.org>
1044 * hostname.c (xgethostname): Add support for native Woe32 API.
1046 2003-10-21 Bruno Haible <bruno@clisp.org>
1048 * message.c (message_list_search): Avoid casting a pointer to a local
1049 variable; it violated strict aliasing.
1051 2003-10-21 Bruno Haible <bruno@clisp.org>
1053 * write-java.c (mkdir): Redefine on mingw.
1055 2003-10-12 Bruno Haible <bruno@clisp.org>
1057 Improved ObjectiveC support.
1058 * x-c.h (extract_objc): New declaration.
1059 (SCANNERS_C): For ObjectiveC, use extract_objc.
1060 * x-c.c (objc_extensions): New variable.
1061 (enum token_type_ty): New item token_type_objc_special.
1062 (phase5_get): Recognize '@' for ObjectiveC.
1063 (phase8b_get, phase8b_unget): New functions. Handle
1064 token_type_white_space and token_type_eoln here instead of in x_c_lex.
1065 (phase8c_get, phase8c_unget): New functions.
1066 (phase8_get): Rely on phase8c, not phase8a. No more need to care about
1067 token_type_white_space and token_type_eoln.
1068 (x_c_lex): Drop handling of token_type_white_space and token_type_eoln.
1069 (extract_whole_file): Renamed from extract_c.
1070 (extract_c, extract_objc): New functions.
1072 2003-10-20 Bruno Haible <bruno@clisp.org>
1074 * x-java.c (phase3_getc): Fix typo: Use phase2_ungetc, not phase2_getc.
1076 2003-10-20 Bruno Haible <bruno@clisp.org>
1078 Portability to AIX with cc.
1079 * xgettext.h (struct flag_context_ty): Define the bitfields of type
1082 2003-10-20 Bruno Haible <bruno@clisp.org>
1084 Portability to Solaris with cc.
1085 * x-java.c (string_buffer_append): Avoid aggregate initializer
1086 containing non-constant expressions.
1087 * xgettext.c (flag_context_list_iterator): Likewise.
1088 (language_to_extractor): Likewise.
1090 2003-10-11 Bruno Haible <bruno@clisp.org>
1092 * xgettext.c (main): Drop suffix ".in" from input file name, if
1093 present, before looking at the file extension.
1095 2003-10-09 Bruno Haible <bruno@clisp.org>
1097 * format-awk.c: Include xalloc.h instead of xmalloc.h.
1098 * format-c.c: Likewise.
1099 * format-elisp.c: Likewise.
1100 * format-gcc-internal.c: Likewise.
1101 * format-java.c: Likewise.
1102 * format-librep.c: Likewise.
1103 * format-lisp.c: Likewise.
1104 * format-pascal.c: Likewise.
1105 * format-perl.c: Likewise.
1106 * format-perl-brace.c: Likewise.
1107 * format-php.c: Likewise.
1108 * format-python.c: Likewise.
1109 * format-sh.c: Likewise.
1110 * format-tcl.c: Likewise.
1111 * format-ycp.c: Likewise.
1112 * gettext-po.c: Likewise.
1113 * hostname.c: Likewise.
1114 * message.c: Likewise.
1115 * msgexec.c: Likewise.
1116 * msgfilter.c: Likewise.
1117 * msgfmt.c: Likewise.
1118 * msggrep.c: Likewise.
1119 * msginit.c: Likewise.
1120 * msgl-cat.c: Likewise.
1121 * msgl-english.c: Likewise.
1122 * msgl-iconv.c: Likewise.
1123 * msgmerge.c: Likewise.
1124 * open-po.c: Likewise.
1125 * po-gram-gen.y: Likewise.
1126 * po-hash-gen.y: Likewise.
1127 * po-lex.c: Likewise.
1128 * read-mo.c: Likewise.
1129 * read-po-abstract.c: Likewise.
1130 * read-po.c: Likewise.
1131 * read-properties.c: Likewise.
1132 * str-list.c: Likewise.
1133 * write-java.c: Likewise.
1134 * write-mo.c: Likewise.
1135 * write-po.c: Likewise.
1136 * write-properties.c: Likewise.
1137 * write-tcl.c: Likewise.
1138 * x-awk.c: Likewise.
1140 * x-elisp.c: Likewise.
1141 * x-glade.c: Likewise.
1142 * x-java.c: Likewise.
1143 * x-librep.c: Likewise.
1144 * x-lisp.c: Likewise.
1145 * x-perl.c: Likewise.
1146 * x-php.c: Likewise.
1148 * x-python.c: Likewise.
1149 * x-rst.c: Likewise.
1151 * x-smalltalk.c: Likewise.
1152 * x-tcl.c: Likewise.
1153 * x-ycp.c: Likewise.
1154 * xgettext.c: Likewise.
1156 2003-10-07 Bruno Haible <bruno@clisp.org>
1158 More reliable subprocess cleanup.
1159 * msgexec.c (process_string): Pass slave_process = true to
1160 create_pipe_out() and wait_subprocess().
1161 * msgfilter.c (process_string): Pass slave_process = true to
1162 create_pipe_bidi() and wait_subprocess().
1163 * msggrep.c (is_string_selected): Pass slave_process = true to
1164 create_pipe_out() and wait_subprocess().
1165 * msginit.c (project_id, project_id_version, get_user_email,
1166 language_team_address): Pass slave_process = true to create_pipe_in()
1167 and wait_subprocess().
1168 * read-java.c (execute_and_read_po_output): Likewise.
1169 * read-tcl.c (msgdomain_read_tcl): Likewise.
1170 * urlget.c (execute_it, fetch): Pass slave_process = true to execute().
1172 2003-10-05 Bruno Haible <bruno@clisp.org>
1174 * write-java.c: Include fatal-signal.h, not signal.h.
1175 (uninstall_handlers): Remove function.
1176 (cleanup): Remove signal argument. Don't execute the signal's default
1177 action; leave that to the caller.
1178 (install_handlers, init_signal_set, block, unblock): Remove functions.
1179 (msgdomain_write_java): Invoke at_fatal_signal instead of
1180 install_handlers/uninstall_handlers. Invoke [un]block_fatal_signals
1181 instead of [un]block.
1183 2003-10-05 Bruno Haible <bruno@clisp.org>
1185 * xgettext.c (substring_match): Remove variable.
1186 (long_options): Remove --keyword-substring option.
1187 (main): Remove handling of --keyword-substring option.
1189 2003-10-05 Bruno Haible <bruno@clisp.org>
1191 * message.h (enum is_format): New item yes_according_to_context.
1192 * message.c (possible_format_p): Handle also yes_according_to_context.
1193 * write-po.c (make_format_description_string): Likewise.
1195 * xgettext.h (struct flag_context_ty): New type.
1196 (null_context, passthrough_context): New declarations.
1197 (inherited_context): New declaration.
1198 (struct flag_context_list_ty): New type.
1199 (struct flag_context_list_iterator_ty): New type.
1200 (null_context_list_iterator, passthrough_context_list_iterator): New
1202 (flag_context_list_iterator): New declaration.
1203 (flag_context_list_iterator_advance): New declaration.
1204 (flag_context_list_table_ty): New type.
1205 (flag_context_list_table_lookup): New declaration.
1206 (xgettext_record_flag): New declaration.
1207 (remember_a_message, remember_a_message_plural): Add context argument.
1208 * xgettext.c: Include alloca.h.
1209 (flag_table_c, flag_table_gcc_internal, flag_table_sh,
1210 flag_table_python, flag_table_lisp, flag_table_elisp,
1211 flag_table_librep, flag_table_java, flag_table_awk, flag_table_ycp,
1212 flag_table_tcl, flag_table_perl, flag_table_php): New variables.
1213 (long_options): Add option --flag.
1214 (extractor_func): Add argument flag_table.
1215 (struct extractor_ty): New type.
1216 (main): Use type 'extractor_ty' instead of 'extractor_func'.
1217 Invoke init_flag_table_c(), init_flag_table_gcc_internal(),
1218 init_flag_table_sh(), init_flag_table_python(), init_flag_table_lisp(),
1219 init_flag_table_elisp(), init_flag_table_librep(),
1220 init_flag_table_java(), init_flag_table_awk(), init_flag_table_ycp(),
1221 init_flag_table_tcl(), init_flag_table_perl(), init_flag_table_php().
1222 Implement option --flag.
1223 (usage): Rename a section to "Language specific options". Document
1224 the languages to which --extract-all, --keyword, --trigraphs are
1225 applicable. Document option --flag.
1226 (null_context): New variable.
1227 (passthrough_context): New variable.
1228 (inherited_context): New function.
1229 (null_context_list_iterator): New variable.
1230 (passthrough_context_circular_list, passthrough_context_list_iterator):
1232 (flag_context_list_iterator): New function.
1233 (flag_context_list_iterator_advance): New function.
1234 (flag_context_list_table_lookup): New function.
1235 (xgettext_record_flag): New function.
1236 (extract_from_file): Change argument type to 'extractor_ty' instead of
1237 'extractor_func'. Set current_formatstring_parser{1,2} before invoking
1239 (set_format_flags_from_context): New function.
1240 (remember_a_message): Add context argument. Set some *-format flag if
1241 the context specifies it.
1242 (remember_a_message_plural): Likewise.
1243 (language_to_extractor): Change return type to 'extractor_ty' instead
1244 of 'extractor_func'.
1246 * x-awk.h (SCANNERS_AWK): Refer to flag_table_awk.
1247 (extract_awk): Add argument flag_table.
1248 (init_flag_table_awk): New declaration.
1249 * x-awk.c (init_flag_table_awk): New function.
1250 (enum token_type_ty): New enum item token_type_semicolon.
1251 (x_awk_lex): Recognize semicolon.
1252 (flag_context_list_table): New variable.
1253 (extract_parenthesized): Add arguments outer_context, context_iter.
1254 Implement context handling depending on symbol before '('. Also
1255 recognize argument lists that start without '(', but only up to the
1257 (extract_awk): Add argument flag_table. Initialize
1258 flag_context_list_table.
1260 * x-c.h (SCANNERS_C): Refer to flag_table_c, flag_table_gcc_internal.
1261 (extract_c): Add argument flag_table.
1262 (init_flag_table_c): New declaration.
1263 (init_flag_table_gcc_internal): New declaration.
1264 * x-c.c (init_flag_table_c): New function.
1265 (init_flag_table_gcc_internal): New function.
1266 (enum xgettext_token_type_ty): New item xgettext_token_type_other.
1267 (x_c_lex): For token_type_name, put the string into the resulting
1268 token instead of freeing it. Return token type
1269 xgettext_token_type_other instead of xgettext_token_type_symbol in
1271 (flag_context_list_table): New variable.
1272 (extract_parenthesized): Add arguments outer_context, context_iter.
1273 Implement context handling depending on symbol before '('.
1274 (extract_c): Add argument flag_table. Initialize
1275 flag_context_list_table.
1277 * x-elisp.h (SCANNERS_ELISP): Refer to flag_table_elisp.
1278 (extract_elisp): Add argument flag_table.
1279 (init_flag_table_elisp): New declaration.
1280 * x-elisp.c (init_flag_table_elisp): New function.
1281 (flag_context_list_table): New variable.
1282 (read_object): Add argument outer_context. Implement context handling
1283 depending on first symbol after '('.
1284 (extract_elisp): Add argument flag_table. Initialize
1285 flag_context_list_table.
1287 * x-glade.h (SCANNERS_GLADE): Update.
1288 (extract_glade): Add argument flag_table.
1289 * x-glade.c (start_element_handler, end_element_handler): Pass null
1290 context to remember_a_message.
1291 (extract_glade): Add argument flag_table.
1293 * x-java.h (SCANNERS_JAVA): Refer to flag_table_java.
1294 (extract_java): Add argument flag_table.
1295 (init_flag_table_java): New declaration.
1296 * x-java.c (init_flag_table_java): New function.
1297 (flag_context_list_table): New variable.
1298 (extract_parenthesized): Add arguments outer_context, context_iter.
1299 Implement context handling depending on symbol before '('.
1300 (extract_java): Add argument flag_table. Initialize
1301 flag_context_list_table.
1303 * x-librep.h (SCANNERS_ELISP): Refer to flag_table_librep.
1304 (extract_librep): Add argument flag_table.
1305 (init_flag_table_librep): New declaration.
1306 * x-librep.c (init_flag_table_librep): New function.
1307 (flag_context_list_table): New variable.
1308 (read_object): Add argument outer_context. Implement context handling
1309 depending on first symbol after '('.
1310 (extract_librep): Add argument flag_table. Initialize
1311 flag_context_list_table.
1313 * x-lisp.h (SCANNERS_LISP): Refer to flag_table_lisp.
1314 (extract_lisp): Add argument flag_table.
1315 (init_flag_table_lisp): New declaration.
1316 * x-lisp.c (init_flag_table_lisp): New function.
1317 (flag_context_list_table): New variable.
1318 (read_object): Add argument outer_context. Implement context handling
1319 depending on first symbol after '('.
1320 (extract_lisp): Add argument flag_table. Initialize
1321 flag_context_list_table.
1323 * x-perl.h (SCANNERS_PERL): Refer to flag_table_perl.
1324 (extract_perl): Add argument flag_table.
1325 (init_flag_table_perl): New declaration.
1326 * x-perl.c (init_flag_table_java): New function.
1327 (flag_context_list_table): New variable.
1328 (extract_variable): Update. Implement context handling depending on
1329 symbol before '{'...'}'.
1330 (interpolate_keywords): Implement context handling depending on symbol
1331 before '->' or '{'...'}'.
1332 (extract_balanced): Add arguments outer_context, context_iter.
1333 Implement context handling depending on symbol before '('. Also
1334 recognize argument lists that start without '('.
1335 (extract_perl): Add argument flag_table. Initialize
1336 flag_context_list_table.
1338 * x-php.h (SCANNERS_PHP): Refer to flag_table_php.
1339 (extract_php): Add argument flag_table.
1340 (init_flag_table_php): New declaration.
1341 * x-php.c (init_flag_table_php): New function.
1342 (flag_context_list_table): New variable.
1343 (extract_parenthesized): Add arguments outer_context, context_iter.
1344 Implement context handling depending on symbol before '('.
1345 (extract_php): Add argument flag_table. Initialize
1346 flag_context_list_table.
1348 * x-po.h (SCANNERS_PO): Update.
1349 (extract_po): Add argument flag_table.
1350 * x-properties.h (SCANNERS_PROPERTIES): Update.
1351 (extract_properties): Add argument flag_table.
1352 * x-po.c (extract_po): Add argument flag_table.
1353 (extract_properties): Add argument flag_table.
1355 * x-python.h (SCANNERS_PYTHON): Refer to flag_table_python.
1356 (extract_python): Add argument flag_table.
1357 (init_flag_table_python): New declaration.
1358 * x-python.c (init_flag_table_python): New function.
1359 (flag_context_list_table): New variable.
1360 (extract_parenthesized): Add arguments outer_context, context_iter.
1361 Implement context handling depending on symbol before '('.
1362 (extract_python): Add argument flag_table. Initialize
1363 flag_context_list_table.
1365 * x-rst.h (SCANNERS_RST): Update.
1366 (extract_rst): Add argument flag_table.
1367 * x-rst.c (extract_rst): Add argument flag_table.
1369 * x-sh.h (SCANNERS_SH): Refer to flag_table_sh.
1370 (extract_sh): Add argument flag_table.
1371 (init_flag_table_sh): New declaration.
1372 * x-sh.c (init_flag_table_sh): New function.
1373 (flag_context_list_table): New variable.
1374 (read_word): Add context argument.
1375 (read_command): Add outer_context argument. Implement context handling
1376 depending on first symbol of command.
1377 (read_command_list): Add outer_context argument.
1378 (extract_sh): Add argument flag_table. Initialize
1379 flag_context_list_table.
1381 * x-smalltalk.h (SCANNERS_SMALLTALK): Update.
1382 (extract_smalltalk): Add argument flag_table.
1383 * x-smalltalk.c (extract_smalltalk): Add argument flag_table.
1385 * x-tcl.h (SCANNERS_TCL): Refer to flag_table_tcl.
1386 (extract_tcl): Add argument flag_table.
1387 (init_flag_table_tcl): New declaration.
1388 * x-tcl.c (init_flag_table_tcl): New function.
1389 (flag_context_list_table): New variable.
1390 (accumulate_word): Add context argument.
1391 (read_word): Add context argument.
1392 (read_command): Add outer_context argument. Implement context handling
1393 depending on first symbol of command.
1394 (read_command_list): Add outer_context argument.
1395 (extract_tcl): Add argument flag_table. Initialize
1396 flag_context_list_table.
1398 * x-ycp.h (SCANNERS_YCP): Refer to flag_table_ycp.
1399 (extract_ycp): Add argument flag_table.
1400 (init_flag_table_ycp): New declaration.
1401 * x-ycp.c (init_flag_table_ycp): New function.
1402 (flag_context_list_table): New variable.
1403 (extract_parenthesized): New function, split off from extract_ycp.
1404 Implement context handling depending on symbol before '('.
1405 (extract_ycp): Add argument flag_table. Initialize
1406 flag_context_list_table. Call extract_parenthesized to do the work.
1408 * po-lex.c (mbfile_getc, control_sequence): Remove explicit marking of
1409 strings as c-format, now done by xgettext.
1411 2003-09-23 Bruno Haible <bruno@clisp.org>
1413 * x-awk.c (extract_parenthesized): Remove optimization of the
1415 * x-c.c (extract_parenthesized): Likewise.
1416 * x-elisp.c (read_object): Likewise.
1417 * x-librep.c (read_object): Likewise.
1418 * x-lisp.c (read_object): Likewise.
1419 * x-perl.c (x_perl_prelex, extract_balanced): Likewise.
1420 * x-php.c (extract_parenthesized): Likewise.
1421 * x-python.c (extract_parenthesized): Likewise.
1422 * x-sh.c (read_command): Likewise.
1424 2003-10-08 Bruno Haible <bruno@clisp.org>
1426 * msgmerge.c (main): Make option -N work.
1427 Reported by Liu Garfield <jackliu9999@hotmail.com>.
1429 2003-10-04 Bruno Haible <bruno@clisp.org>
1432 * x-java.c: New file.
1433 * x-java.l: Remove file.
1434 * Makefile.am (xgettext_SOURCES): Add x-java.c, remove x-java.l.
1435 (x-java.c): Remove rule.
1438 2003-09-22 Bruno Haible <bruno@clisp.org>
1440 * x-glade.c (start_element_handler): Implement extract_all behaviour.
1442 2003-10-04 Bruno Haible <bruno@clisp.org>
1444 * x-glade.c (do_extract_glade): Initialize stack_depth.
1445 * x-perl.c (extract_perl): Initialize linesize and linepos.
1447 * x-python.c (phase2_getc): Set last_comment_line.
1448 (phase5_get): Set last_non_comment_line.
1450 2003-10-04 Bruno Haible <bruno@clisp.org>
1452 * x-glade.c: Don't include msgl-ascii.h and msgl-iconv.h.
1453 * x-python.c: Likewise.
1454 * x-tcl.c: Likewise.
1456 2003-10-06 Guido Flohr <guido@imperia.net>
1457 Bruno Haible <bruno@clisp.org>
1459 * x-perl.c (enum symbol_type_ty): New enum.
1460 (struct token_ty): Rename field string_type to sub_type and change its
1462 (extract_quotelike_pass3, interpolate_keywords): Update.
1463 (x_perl_prelex): Set sub_type also for symbol tokens.
1464 (x_perl_lex): Special handling of prototype argument lists.
1465 Reported by Crispin Flowerday <cflowerday@zeus.com>.
1467 2003-09-22 Bruno Haible <bruno@clisp.org>
1469 * x-sh.c (read_word): Warn about $"...".
1471 2003-09-18 Bruno Haible <bruno@clisp.org>
1473 * gettext-po.h (po_file_domain_header, po_header_field,
1474 po_message_is_obsolete, po_message_is_fuzzy, po_message_is_format): New
1476 * gettext-po.c (po_file_domain_header, po_header_field,
1477 po_message_is_obsolete, po_message_is_fuzzy, po_message_is_format): New
1479 * Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 1:0:1.
1481 2003-09-14 Bruno Haible <bruno@clisp.org>
1483 * plural-count.c: Include plural-count.h.
1484 * x-po.c: Include x-properties.h.
1485 * x-java.l (append_strings): Change argument type to 'const char *'.
1487 2003-09-14 Bruno Haible <bruno@clisp.org>
1489 * msgfmt.c (check_plural_eval): Mark some strings as c-format.
1490 (msgfmt_add_message): Make static.
1491 * po-lex.c (mbfile_getc, control_sequence): Mark some strings as
1494 2003-09-18 Bruno Haible <bruno@clisp.org>
1498 2003-09-14 Bruno Haible <bruno@clisp.org>
1500 More reliable checking for read errors.
1501 * po-lex.c (mbfile_getc): Diagnose read errors also in the middle of
1502 multibyte characters.
1503 (lex_getc): Diagnose read errors also right after backslash.
1504 * x-rst.c (extract_rst): Diagnose read errors also inside ConstName
1505 and immediately after #.
1507 2003-09-14 Bruno Haible <bruno@clisp.org>
1509 * write-mo.c: Include fwriterror.h.
1510 (msgdomain_write_mo): Use fwriteerror, to get right errno value in
1511 error message about write error.
1512 * write-po.c: Include fwriterror.h.
1513 (msgdomain_list_print): Use fwriteerror, to get right errno value in
1514 error message about write error.
1515 * write-java.c: Include fwriterror.h.
1516 (msgdomain_write_java): Use fwriteerror, to get right errno value in
1517 error message about write error.
1518 * write-tcl.c: Include fwriterror.h.
1519 (msgdomain_write_tcl): Use fwriteerror, to get right errno value in
1520 error message about write error.
1522 2003-09-18 Bruno Haible <bruno@clisp.org>
1524 * xgettext.c (from_current_source_encoding): Use multiline_error,
1525 for a prettier error message.
1527 * x-perl.c (extract_quotelike_pass1): Store counter_delim instead of
1528 EOF as delimiter, to avoid error during from_current_source_encoding.
1529 Reported by Crispin Flowerday <cflowerday@zeus.com>.
1531 2003-09-13 Bruno Haible <bruno@clisp.org>
1533 * format-sh.c (INVALID_SHELL_SYNTAX,
1534 INVALID_CONTEXT_DEPENDENT_VARIABLE): New macros.
1535 (format_parse): Reject constructs like ${variable-default} and $?.
1537 2003-09-13 Bruno Haible <bruno@clisp.org>
1539 Fix behaviour of "<program> --help > /dev/full".
1540 * hostname.c: Include closeout.h.
1541 (main): Register close_stdout for execution at program exit.
1542 * msgattrib.c: Include closeout.h.
1543 (main): Register close_stdout for execution at program exit.
1544 * msgcat.c: Include closeout.h.
1545 (main): Register close_stdout for execution at program exit.
1546 * msgcmp.c: Include closeout.h.
1547 (main): Register close_stdout for execution at program exit.
1548 * msgcomm.c: Include closeout.h.
1549 (main): Register close_stdout for execution at program exit.
1550 * msgconv.c: Include closeout.h.
1551 (main): Register close_stdout for execution at program exit.
1552 * msgen.c: Include closeout.h.
1553 (main): Register close_stdout for execution at program exit.
1554 * msgexec.c: Include closeout.h.
1555 (main): Register close_stdout for execution at program exit.
1556 * msgfilter.c: Include closeout.h.
1557 (main): Register close_stdout for execution at program exit.
1558 * msgfmt.c: Include closeout.h.
1559 (main): Register close_stdout for execution at program exit.
1560 * msggrep.c: Include closeout.h.
1561 (main): Register close_stdout for execution at program exit.
1562 * msginit.c: Include closeout.h.
1563 (main): Register close_stdout for execution at program exit.
1564 * msgmerge.c: Include closeout.h.
1565 (main): Register close_stdout for execution at program exit.
1566 * msgunfmt.c: Include closeout.h.
1567 (main): Register close_stdout for execution at program exit.
1568 * msguniq.c: Include closeout.h.
1569 (main): Register close_stdout for execution at program exit.
1570 * urlget.c: Include closeout.h.
1571 (main): Register close_stdout for execution at program exit.
1572 * xgettext.c: Include closeout.h.
1573 (main): Register close_stdout for execution at program exit.
1574 * write-po.c (msgdomain_list_print): Don't fclose (stdout) here.
1576 2003-09-11 Bruno Haible <bruno@clisp.org>
1578 * po-lex.c (mbfile_getc): Handle unexpected return value of
1579 u8_mbtouc(). Reported by Jochen Hein <jochen@jochen.org>.
1581 2003-09-09 Bruno Haible <bruno@clisp.org>
1583 * read-properties.c (phase4_getuc): Cast line_number to 'unsigned long'
1584 before outputting it.
1586 2003-09-09 Bruno Haible <bruno@clisp.org>
1588 * po-lex.c: Test HAVE_DECL_GETC_UNLOCKED instead of HAVE_GETC_UNLOCKED.
1589 * write-po.c: Test HAVE_DECL_PUTC_UNLOCKED instead of
1592 2003-09-09 Guido Flohr <guido@imperia.net>
1594 * x-perl.c (extract_quotelike_pass3): Change \l handling to no longer
1595 eat up non-uppercase characters; likewise for \u. Also make \l and \u
1596 work on characters written using hex or octal escape sequence. Fix \Q
1597 handling. With option --extract-all, avoid "invalid variable
1598 interpolation" warnings.
1599 (x_perl_prelex): With option --extract-all, keep variables inside
1600 double-quoted strings untouched.
1602 2003-09-03 Bruno Haible <bruno@clisp.org>
1606 * xgettext.c: Include x-sh.h.
1607 (main): Call x_sh_extract_all, x_sh_keyword.
1608 (usage): Mention Shell language.
1609 (language_to_extractor): Add Shell rule.
1610 (extension_to_language): Add Shell rule.
1611 * Makefile.am (noinst_HEADERS): Add x-sh.h.
1612 (xgettext_SOURCES): Add x-sh.c.
1613 * Makefile.msvc (xgettext_OBJECTS): Add x-sh.obj.
1614 (x-sh.obj): New rule.
1615 * Makefile.vms (xgettext_OBJECTS): Add x-sh.obj.
1616 (x-sh.obj): New rule.
1618 2003-08-31 Bruno Haible <bruno@clisp.org>
1620 * format-sh.c: New file.
1621 * message.h (format_sh): New enum value.
1622 (NFORMATS): Increment.
1623 * format.h (formatstring_sh): New declaration.
1624 * format.c (formatstring_parsers): Add entry for sh.
1625 * message.c (format_language, format_language_pretty): Likewise.
1626 * Makefile.am (FORMAT_SOURCE): Add format-sh.c.
1627 * Makefile.msvc (OBJECTS): Add format-sh.obj.
1628 (format-sh.obj): New rule.
1629 * Makefile.vms (OBJECTS): Add format-sh.obj.
1630 (format-sh.obj): New rule.
1632 2003-08-31 Bruno Haible <bruno@clisp.org>
1634 * format-gcc-internal.c (isdigit): Remove unused macro.
1635 * format-perl-brace.c (isdigit): Likewise.
1637 2003-09-01 Guido Flohr <guido@imperia.net>
1639 * x-perl.c (extract_balanced): Access the global last_token.
1640 Initialize last_token and prefer_division_over_regexp here.
1641 (extract_perl): Not here.
1643 2003-08-29 Bruno Haible <bruno@clisp.org>
1645 * x-perl.c: Include getline.h.
1647 2003-08-24 Bruno Haible <bruno@clisp.org>
1649 * Makefile.msvc (format.obj, msgmerge.obj, xgettext.obj, msgattrib.obj,
1650 msgcat.obj, msgcomm.obj, msgconv.obj, msgen.obj, msgfilter.obj,
1651 msggrep.obj, msguniq.obj): Compile these in C++ mode. This works around
1652 the "non-constant initializer" error that we get for addresses of
1653 variables in DLLs in C mode.
1655 2003-08-24 Bruno Haible <bruno@clisp.org>
1657 * msgfilter.c (process_message): Cast xrealloc() result.
1659 2003-08-24 Bruno Haible <bruno@clisp.org>
1661 * msgfilter.c: On Windows, include <io.h> instead of <unistd.h>.
1662 * msggrep.c: Likewise.
1664 2003-08-24 Bruno Haible <bruno@clisp.org>
1666 * plural-count.h: New file.
1667 * plural-count.c: New file, extracted from msgmerge.c.
1668 * msgmerge.c: Include plural-count.h instead of plural-exp.h.
1669 (match_domain): Use function get_plural_count().
1670 * Makefile.am (noinst_HEADERS): Add plural-count.h.
1671 (msgmerge_SOURCES): Add plural-count.c.
1672 * Makefile.msvc (msgmerge_OBJECTS): Add plural-count.obj.
1673 (plural-count.obj): New rule.
1674 * Makefile.vms (msgmerge_OBJECTS): Add plural-count.obj.
1675 (plural-count.obj): New rule.
1677 2003-08-24 Bruno Haible <bruno@clisp.org>
1679 Support for building DLLs on Windows.
1680 * format.h (formatstring_c, formatstring_python, formatstring_lisp,
1681 formatstring_elisp, formatstring_librep, formatstring_smalltalk,
1682 formatstring_java, formatstring_awk, formatstring_pascal,
1683 formatstring_ycp, formatstring_tcl, formatstring_perl,
1684 formatstring_perl_brace, formatstring_php, formatstring_gcc_internal,
1685 formatstring_parsers): Add DLL_VARIABLE attribute.
1686 * message.h (format_language, format_language_pretty): Likewise.
1687 * msgl-cat.h (more_than, less_than, use_first, msgcomm_mode,
1688 omit_header): Likewise.
1689 * plural-table.h (plural_table, plural_table_size): Likewise.
1690 * po-charset.h (po_charset_ascii, po_charset_utf8, po_lex_charset,
1691 po_lex_iconv, po_lex_weird_cjk): Likewise.
1692 * po-lex.h (gram_pos, gram_pos_column, gram_max_allowed_errors,
1693 pass_obsolete_entries): Likewise.
1694 * read-po.h (line_comment, allow_duplicates, input_syntax): Likewise.
1695 * write-mo.h (alignment, no_hash_table): Likewise.
1696 * Makefile.am (po-gram-gen2.h): Likewise.
1698 2003-08-24 Bruno Haible <bruno@clisp.org>
1700 * Makefile.msvc (gettext-po.obj, gettextpo.lib, gettextpo.res): New
1702 (all): Depend on gettextpo.lib.
1703 (install, installdirs, uninstall): Install/uninstall gettext-po.h,
1704 gettextpo.dll and gettextpo.lib.
1705 * Makefile.vms (gettext-po.obj, gettextpo.olb): New rules.
1706 (all): Depend on gettextpo.olb.
1707 (install, installdirs, uninstall): Install/uninstall gettext-po.h,
1710 2003-08-24 Bruno Haible <bruno@clisp.org>
1712 * dir-list.h: Make this file includable in C++ mode: add extern "C".
1713 * file-list.h: Likewise.
1714 * format.h: Likewise.
1715 * message.h: Likewise.
1716 * msgl-ascii.h: Likewise.
1717 * msgl-cat.h: Likewise.
1718 * msgl-charset.h: Likewise.
1719 * msgl-english.h: Likewise.
1720 * msgl-equal.h: Likewise.
1721 * msgl-iconv.h: Likewise.
1722 * open-po.h: Likewise.
1723 * po-charset.h: Likewise.
1724 * po-lex.h: Likewise.
1725 * po-time.h: Likewise.
1726 * read-po-abstract.h: Likewise.
1727 * str-list.h: Likewise.
1728 * write-po.h: Likewise.
1729 * xgettext.h: Likewise.
1730 * read-po.h: Likewise.
1731 (this): Redefine to a different symbol.
1732 * xgettext.c: Add extern "C" around all "x-*.h" includes.
1734 2003-08-22 Bruno Haible <bruno@clisp.org>
1736 * format-awk.c: Include error-progname.h instead of progname.h.
1737 * format-c.c: Likewise.
1738 * format-elisp.c: Likewise.
1739 * format-gcc-internal.c: Likewise.
1740 * format-java.c: Likewise.
1741 * format-librep.c: Likewise.
1742 * format-lisp.c: Likewise.
1743 * format-pascal.c: Likewise.
1744 * format-perl.c: Likewise.
1745 * format-perl-brace.c: Likewise.
1746 * format-php.c: Likewise.
1747 * format-python.c: Likewise.
1748 * format-tcl.c: Likewise.
1749 * format-ycp.c: Likewise.
1750 * po-lex.h: Likewise.
1751 * read-properties.c: Likewise.
1752 * write-po.c: Likewise.
1753 * x-awk.c: Likewise.
1755 * x-perl.c: Likewise.
1756 * x-python.c: Likewise.
1757 * x-rst.c: Likewise.
1758 * hostname.c: Include error-progname.h.
1759 * msgattrib.c: Likewise.
1760 * msgcat.c: Likewise.
1761 * msgcmp.c: Likewise.
1762 * msgcomm.c: Likewise.
1763 * msgconv.c: Likewise.
1764 * msgen.c: Likewise.
1765 * msgexec.c: Likewise.
1766 * msgfilter.c: Likewise.
1767 * msgfmt.c: Likewise.
1768 * msggrep.c: Likewise.
1769 * msginit.c: Likewise.
1770 * msgmerge.c: Likewise.
1771 * msgunfmt.c: Likewise.
1772 * msguniq.c: Likewise.
1773 * urlget.c: Likewise.
1774 * xgettext.c: Likewise.
1775 * po-lex.c: Include error-progname.h and pos.h.
1777 2003-08-15 Bruno Haible <bruno@clisp.org>
1779 * msginit.c (catalogname_for_locale): Add entries for Aragonese,
1780 Haitian, Sichuan Yi, Limburgish.
1781 (englishname_of_language): Likewise.
1783 2003-08-08 Bruno Haible <bruno@clisp.org>
1785 * format-gcc-internal.c: New file.
1786 * message.h (format_gcc_internal): New enum value.
1787 (NFORMATS): Increment.
1788 * format.h (formatstring_gcc_internal): New declaration.
1789 * format.c (formatstring_parsers): Add entry for gcc_internal.
1790 * message.c (format_language, format_language_pretty): Likewise.
1791 * x-c.h (SCANNERS_C): Add an entry for GCC-source.
1792 * xgettext.c (usage): Mention GCC-source language.
1793 * Makefile.am (FORMAT_SOURCE): Add format-gcc-internal.c.
1794 * Makefile.msvc (OBJECTS): Add format-gcc-internal.obj.
1795 (format-gcc-internal.obj): New rule.
1796 * Makefile.vms (OBJECTS): Add format-gcc-internal.obj.
1797 (format-gcc-internal.obj): New rule.
1799 2003-08-04 Bruno Haible <bruno@clisp.org>
1801 * x-perl.c (extract_quotelike_pass3): Fix \x handling.
1802 Reported by Guido Flohr.
1804 2003-07-05 Bruno Haible <bruno@clisp.org>
1806 * format-perl-brace.c: Renamed from format-perl-bracket.c. Recognize
1807 braces instead of brackets.
1808 * format.h (formatstring_perl_brace): Renamed from
1809 formatstring_perl_bracket.
1810 * format.c (formatstring_parsers): Add formatstring_perl_brace, remove
1811 formatstring_perl_bracket.
1812 * message.h (enum format_type): Add format_perl_brace, remove
1813 format_perl_bracket.
1814 * message.c (format_language, format_language_pretty): Update.
1815 * x-perl.h (SCANNERS_PERL): Update.
1816 * Makefile.am (FORMAT_SOURCE): Add format-perl-brace.c, remove
1817 format-perl-bracket.c.
1818 * Makefile.msvc (OBJECTS): Add format-perl-brace.obj, remove
1819 format-perl-bracket.obj.
1820 (format-perl-brace.obj): Renamed from format-perl-bracket.obj.
1821 * Makefile.vms (OBJECTS): Add format-perl-brace.obj, remove
1822 format-perl-bracket.obj.
1823 (format-perl-brace.obj): Renamed from format-perl-bracket.obj.
1825 2003-07-03 Bruno Haible <bruno@clisp.org>
1827 Support for PHP >= 4.2.0.
1828 * x-php.c (init_keywords): Add ngettext, dngettext, dcngettext to the
1830 Reported by A. Sopicki <a.sopicki@gmx.de>.
1832 2003-06-27 Bruno Haible <bruno@clisp.org>
1834 * xgettext.h (from_current_source_encoding): New declaraction.
1835 * xgettext.c (from_current_source_encoding): New function.
1836 (CONVERT_STRING): Use it.
1837 * x-perl.c: Include po-charset.h.
1838 (get_here_document): Convert each line to UTF-8.
1839 (phase2_getc): Convert each comment to UTF-8. Tell xgettext_comment_add
1841 (extract_quotelike_pass1_utf8): New function.
1842 (extract_quotelike): Use extract_quotelike_pass1_utf8.
1843 (extract_triple_quotelike): Likewise.
1844 (extract_variable): Tell remember_a_message to not convert the string.
1845 (interpolate_keywords): Likewise.
1846 (extract_balanced): Tell remember_a_message, remember_a_message_plural
1847 to not convert the string.
1849 2003-06-23 Guido Flohr <guido@imperia.net>
1851 * x-perl.c (extract_quotelike_pass3): Fix handling of doubled
1852 backslashes in single-quoted strings.
1854 2003-06-23 Bruno Haible <bruno@clisp.org>
1856 * format-perl-bracket.c (format_check): Allow additional bracketed
1857 items in the msgstr.
1859 2003-06-22 Bruno Haible <bruno@clisp.org>
1861 * write-properties.c: Don't include exit.h and gettext.h.
1863 2003-06-22 Bruno Haible <bruno@clisp.org>
1865 * x-php.c (phase3_ungetc): Comment out unused function.
1867 2003-06-21 Bruno Haible <bruno@clisp.org>
1869 * format-perl.c: Complete rewrite.
1870 * format-perl-bracket.c: New file.
1871 * message.h (format_perl_bracket): New enum value.
1872 (NFORMATS): Increment.
1873 * format.h (formatstring_perl_bracket): New declaration.
1874 * format.c (formatstring_parsers): Add entry for perl_bracket.
1875 * message.c (format_language, format_language_pretty): Likewise.
1876 * x-perl.h (SCANNERS_PERL): Use formatstring_perl and
1877 formatstring_perl_bracket.
1878 * Makefile.am (FORMAT_SOURCE): Add format-perl-bracket.c.
1879 * Makefile.msvc (OBJECTS): Add format-perl.obj,format-perl-bracket.obj.
1880 (xgettext_OBJECTS): Add x-perl.obj.
1881 (format-perl.obj, format-perl-bracket.obj, x-perl.obj): New rules.
1882 * Makefile.vms (OBJECTS): Add format-perl.obj, format-perl-bracket.obj.
1883 (xgettext_OBJECTS): Add x-perl.obj.
1884 (format-perl.obj, format-perl-bracket.obj, x-perl.obj): New rules.
1886 * x-perl.c (extract_quotelike_pass3): Don't give an invalid
1887 interpolation error for a backslashed dollar sign.
1889 2003-06-21 Bruno Haible <bruno@clisp.org>
1891 * x-perl.c (extract_quotelike_pass3): Fix handling of double backslash.
1893 2003-06-19 Bruno Haible <bruno@clisp.org>
1895 * x-perl.c (enum string_type_ty): Remove trailing comma.
1896 (interpolate_keywords::enum parser_state): Likewise.
1897 (extract_quotelike_pass3): Cast first argument of u8_uctomb().
1899 2003-06-15 Bruno Haible <bruno@clisp.org>
1901 * x-awk.c: Reorder definitions.
1902 * x-c.c: Reorder definitions.
1903 * x-perl.c: Reorder definitions.
1904 * x-php.c: Reorder definitions.
1905 * x-python.c: Reorder definitions.
1906 * x-smalltalk.c: Reorder definitions.
1907 * x-ycp.c: Reorder definitions.
1909 2003-06-15 Bruno Haible <bruno@clisp.org>
1911 * x-perl.c (struct stack_entry): Remove type.
1912 (struct stack): Remove type.
1913 (struct token_stack_ty): New type.
1914 (token_stack): Change type to 'struct token_stack_ty'.
1915 (token_stack_dump): Renamed from stack_dump. Update.
1916 (token_stack_push): Renamed from stack_unshift. Rewritten.
1917 (token_stack_pop): Renamed from stack_shift. Rewritten.
1918 (token_stack_peek): Renamed from stack_head. Rewritten.
1919 (token_stack_free): Renamed from stack_free. Rewritten.
1920 (x_perl_lex, x_perl_unlex, extract_perl): Update.
1922 2003-06-15 Bruno Haible <bruno@clisp.org>
1924 * x-perl.c (DEBUG_MEMORY): Remove macro.
1925 (remember_a_message_debug, remember_a_message_plural_debug,
1926 xmalloc_debug, xrealloc_debug, xrealloc_static_debug, xstrdup_debug,
1927 free_debug): Remove functions.
1928 (xrealloc_static): Remove macro. Use xrealloc instead.
1930 2003-06-15 Bruno Haible <bruno@clisp.org>
1932 * x-awk.c (phase2_getc, x_awk_lex): Increase bufmax proportionally.
1933 * x-c.c (comment_add, comment_line_end, phase5_get, phase6_get):
1935 * x-elisp.c (comment_add, comment_line_end): Likewise.
1936 * x-librep.c (comment_add, comment_line_end): Likewise.
1937 * x-lisp.c (comment_add, comment_line_end): Likewise.
1938 * x-php.c (comment_add, comment_line_end, x_php_lex): Likewise.
1939 * x-python.c (comment_add, comment_line_end, phase5_get): Likewise.
1940 * x-rst.c (extract_rst): Likewise.
1941 * x-smalltalk.c (comment_add, comment_line_end, phase2_get): Likewise.
1942 * x-tcl.c (comment_add, comment_line_end): Likewise.
1943 * x-ycp.c (phase2_getc, x_ycp_lex): Likewise.
1945 2003-06-15 Bruno Haible <bruno@clisp.org>
1947 * xgettext.c (current_formatstring_parser1,
1948 current_formatstring_parser2): New variables, replacing
1949 current_formatstring_parser.
1950 (remember_a_message, remember_a_message_plural): Try both
1951 formatstring parsers.
1952 (language_to_extractor): Allow two formatstring parsers per language,
1954 * x-perl.h (SCANNERS_PERL): Add formatstring_c as secondary format
1956 * x-awk.h (SCANNERS_AWK): Update.
1957 * x-c.h (SCANNERS_C): Update.
1958 * x-elisp.h (SCANNERS_ELISP): Update.
1959 * x-glade.h (SCANNERS_GLADE): Update.
1960 * x-java.h (SCANNERS_JAVA): Update.
1961 * x-librep.h (SCANNERS_LIBREP): Update.
1962 * x-lisp.h (SCANNERS_LISP): Update.
1963 * x-php.h (SCANNERS_PHP): Update.
1964 * x-po.h (SCANNERS_PO): Update.
1965 * x-properties.h (SCANNERS_PROPERTIES): Update.
1966 * x-python.h (SCANNERS_PYTHON): Update.
1967 * x-rst.h (SCANNERS_RST): Update.
1968 * x-smalltalk.h (SCANNERS_SMALLTALK): Update.
1969 * x-tcl.h (SCANNERS_TCL): Update.
1970 * x-ycp.h (SCANNERS_YCP): Update.
1972 2003-06-15 Bruno Haible <bruno@clisp.org>
1974 * x-perl.c (case_whitespace): New macro.
1975 (is_whitespace): New function.
1976 (interpolate_keywords): Add lineno argument. Track newlines to update
1977 lineno while processing the string. Use is_whitespace.
1978 (extract_triple_quotelike): Update. Use is_whitespace.
1979 (extract_variable): Simplify: add final NUL byte only when done. Use
1981 (x_perl_prelex): Use is_whitespace. After reading a here document, use
1982 line_number+1, not line_number. Fix buffer overrun in <<XYZ handling.
1983 (collect_message): Use is_whitespace.
1984 (extract_balanced): Call free_token at the end of the loop, not at the
1987 2003-06-14 Bruno Haible <bruno@clisp.org>
1989 * x-perl.c (enum token_type_ty): Reorder, so as to simplify the
1990 function free_token().
1991 (struct token_ty): Fix comments.
1992 (token2string): Add const.
1993 (token_stack): Make static.
1994 (*_debug, stack_dump): Remove all fflushs.
1995 (linebuf, linesize, linepos, linebuf_size, last_token, here_eaten,
1996 end_of_file): Make static.
1997 (last_string, last_string_finished): Remove unused variables.
1998 (phase1_getc, get_here_document, skip_pod): Test getline() result
1999 for being < 0, not == EOF.
2000 (phase1_ungetc): Signal internal error through abort(), not exit().
2001 (get_here_document): Tweak. Increase bufmax proportionally.
2002 (phase2_getc): Increase bufmax proportionally.
2003 (prefer_division_over_regexp): Fix comment.
2004 (extract_hex, extract_oct): Add const. Simplify.
2005 (extract_quotelike): Add a safety check.
2006 (extract_quotelike_pass1): Increase bufmax proportionally. Fix
2007 insufficient memory allocation at "bufpos + len >= bufmax".
2008 (extract_quotelike_pass3): Increase bufmax proportionally. Make crs
2009 const. After \x{ABC} position crs after the closing brace. Simplify \c
2010 code. Reduce memory allocation when \N{ABC} is seen. Fix bug in \l and
2011 \u. Fix error message when $ or @ is seen.
2012 (extract_variable): Increase bufmax proportionally.
2013 (interpolate_keywords): Likewise. Convert c's value to unsigned char.
2014 (x_perl_prelex): Increase bufmax proportionally. Compute 4th argument
2015 to extract_triple_quotelike completely.
2016 (extract_perl): Initialize token_stack correctly.
2018 2003-06-13 Bruno Haible <bruno@clisp.org>
2020 * msgexec.c (process_string): Pass null_stderr=false.
2021 * msgfilter.c (process_string): Likewise.
2022 * msggrep.c (is_string_selected): Likewise.
2023 * read-java.c (execute_and_read_po_output): Likewise.
2024 * read-tcl.c (msgdomain_read_tcl): Likewise.
2025 * msginit.c (project_id, project_id_version, get_user_email,
2026 language_team_address): Return a default value if the subprocess
2027 fails, instead of exiting.
2029 2003-06-12 Bruno Haible <bruno@clisp.org>
2031 * Makefile.am (noinst_HEADERS): Add x-perl.h.
2032 (FORMAT_SOURCE): Add format-perl.c.
2033 (xgettext_SOURCES): Add x-perl.c.
2034 * message.h (enum format_type): Mention perl between tcl and php.
2035 * message.c (format_language, format_language_pretty): Likewise.
2036 * format.h (formatstring_perl): Likewise.
2037 * format.c (formatstring_parsers): Likewise.
2038 * format-perl.c: Use GNU coding style. Prefer xmalloc over xcalloc.
2039 * x-perl.h: Assume ANSI C.
2040 * x-perl.c: Assume ANSI C. Use GNU coding style. Prefer xmalloc over
2042 (token_buf): Remove unused variable.
2043 (xcalloc_debug, stack_push, stack_pop): Remove unused functions.
2044 * xgettext.c: Mention perl between tcl and php.
2046 2003-06-11 Guido Flohr <guido@imperia.net>
2048 * message.h (enum format_type): New enum value 'format_perl'.
2049 (NFORMATS): Increment.
2050 * message.c (format_language, format_language_pretty): Add entry
2052 * format.h (formatstring_perl): New declaration.
2053 * format-perl.c: New file.
2054 * format.c (formatstring_parsers): Add entry for perl.
2055 * x-perl.h: New file.
2056 * x-perl.c: New file.
2057 * xgettext.c: Include x-perl.h.
2058 (main): Call x_perl_extract_all, x_perl_keyword.
2059 (usage): Mention Perl language.
2060 (language_to_extractor): Add Perl rule.
2061 (extension_to_language): Add Perl rule.
2063 2003-06-08 Bruno Haible <bruno@clisp.org>
2065 * Makefile.vms (LDADD): Take options from .opt files.
2066 (libiconv.opt): New rule.
2067 (msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe, xgettext.exe,
2068 msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe,
2069 msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe):
2071 * plural-eval.c: Include "eval-plural.h" without a path, rely on the
2072 Makefile's -I options instead.
2073 * read-properties.c (conv_from_java): Change type of q to
2075 Reported by Jouk Jansen <joukj@hrem.stm.tudelft.nl>.
2077 2003-05-27 Bruno Haible <bruno@clisp.org>
2079 * plural-table.c (plural_table): Correct entry for Slovak.
2080 Reported by Marcel Telka <marcel@telka.sk>.
2082 2003-05-24 Bruno Haible <bruno@clisp.org>
2084 * x-glade.h (EXTENSIONS_GLADE): Also recognize the .glade2 extension.
2085 * x-glade.c (start_element_handler): Also extract strings according to
2086 Glade 2 conventions.
2088 2003-05-22 Bruno Haible <bruno@clisp.org>
2090 * gettext-0.12.1 released.
2092 2003-05-21 Bruno Haible <bruno@clisp.org>
2094 * msggrep.c (main) [Solaris]: Fix syntax error.
2095 Reported by Valery Beaud <valery.beaud@art.alcatel.fr>.
2097 2003-05-21 Bruno Haible <bruno@clisp.org>
2099 * xgettext.c (output_syntax): New variable.
2101 (finalize_header): If --properties-output was given, set the charset.
2103 2003-05-18 Bruno Haible <bruno@clisp.org>
2105 * Makefile.msvc (DEBUGFLAGS): New variable.
2106 (gettextsrc.lib): Use it.
2107 (msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe, xgettext.exe,
2108 msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe,
2109 msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe):
2110 Use it, and MFLAGS too.
2112 2003-05-17 Bruno Haible <bruno@clisp.org>
2114 * gettext-0.12 released.
2116 2003-05-17 Bruno Haible <bruno@clisp.org>
2118 * Makefile.msvc (msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe,
2119 msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe,
2120 msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe):
2121 Link with iconv.lib, needed by intl.lib.
2123 2003-05-12 Bruno Haible <bruno@clisp.org>
2125 * msginit.c (F_OK): Provide a fallback value.
2126 Reported by Perry Rapp.
2128 2003-05-10 Bruno Haible <bruno@clisp.org>
2130 * msgl-iconv.c (iconv_string): Don't return -1 just because the string
2131 is longer than 4 KB.
2132 Reported by Denis Barbier <barbier@linuxfr.org>.
2134 2003-05-04 Bruno Haible <bruno@clisp.org>
2136 * po-lex.h (po_gram_error): Don't use ISO C 99 feature on DEC C.
2137 * po-lex.c (po_gram_error): LIkewise.
2139 2003-05-03 Bruno Haible <bruno@clisp.org>
2141 * msgfilter.c: Include <sys/select.h> also on EMX.
2142 Reported by Andreas Buening <andreas.buening@nexgo.de>.
2144 2003-04-26 Bruno Haible <bruno@clisp.org>
2146 * message.h (msgdomain_list_ty): Add field 'encoding'.
2147 * message.c (msgdomain_list_alloc): Initialize it.
2148 * read-properties.h: New file.
2149 * read-properties.c: New file.
2150 * read-po-abstract.h (abstract_po_reader_class_ty): In
2151 directive_message field, add force_fuzzy argument.
2152 (po_scan_start, po_scan_end): Remove declarations.
2153 (input_syntax_ty): New type.
2154 (po_callback_message): Add force_fuzzy argument.
2155 * read-po-abstract.c (call_directive_message, po_callback_message):
2156 Add force_fuzzy argument.
2157 (po_scan_start, po_scan_end): Make static.
2158 (po_scan): Add support for syntax_properties. Move
2159 error_message_count handling to here.
2160 (po_callback_message): Move po_lex_charset_set invocation away.
2161 * read-po.h (default_po_reader_class_ty): In add_message field, add
2162 force_fuzzy argument.
2163 (default_directive_message, default_add_message): Add force_fuzzy
2165 (inout_syntax): New declaration.
2166 * read-po.c (call_add_message): Add force_fuzzy argument.
2167 (default_directive_message, default_add_message): Likewise.
2168 (input_syntax): New variable.
2169 (read_po): Pass input_syntax to po_scan(). Set mdlp->encoding if
2171 * po-gram-gen.y: Pass force_fuzzy = false.
2172 (do_callback_message): New function. Move po_lex_charset_set
2174 * po-lex.c (lex_end): Move error_message_count handling away.
2175 * write-properties.h: New file.
2176 * write-properties.c: New file.
2177 * write-po.h (message_print_syntax_properties): New declaration.
2178 * write-po.c (use_syntax_properties): New variable.
2179 (message_print_syntax_properties): New function.
2180 (msgdomain_list_print_po): New function, extracted from
2181 msgdomain_list_print.
2182 (msgdomain_list_print): Add check for plural forms. Add support for
2183 writing the .properties format.
2184 (extract_po): Renamed from extract.
2185 * write-java.h (msgdomain_write_java): Add canon_encoding argument.
2186 * write-java.c (msgdomain_write_java): Likewise.
2187 * write-tcl.h (msgdomain_write_tcl): Likewise.
2188 * write-tcl.c (msgdomain_write_tcl): Likewise.
2189 * msgl-cat.c (catenate_msgdomain_list): Use mdlp->encoding if there
2190 is no header entry. Set total_mdlp->encoding if possible.
2191 * msgl-iconv.c (iconv_msgdomain_list): Use mdlp->encoding if there
2192 is no header entry. Set mdlp->encoding.
2193 * msgattrib.c (long_options): Add --properties-input/output.
2194 (main): Handle them.
2195 (usage): Document options -P and -p.
2196 * msgcat.c (long_options): Add --properties-input/output.
2197 (main): Handle them. If option -p is used, convert to UTF-8 and
2199 (usage): Document options -P and -p.
2200 * msgcomm.c (long_options): Add --properties-input/output.
2201 (main): Handle them.
2202 (usage): Document options -P and -p.
2203 * msgconv.c (long_options): Add --properties-input/output.
2204 (main): Handle them. If option -p is used, ignore the to_code.
2205 (usage): Document options -P and -p.
2206 * msgen.c (long_options): Add --properties-input/output.
2207 (main): Handle them.
2208 (usage): Document options -P and -p.
2209 * msgfilter.c (long_options): Add --properties-input/output.
2210 (main): Handle them.
2211 (usage): Document options -P and -p.
2212 * msggrep.c (long_options): Add --properties-input/output.
2213 (main): Handle them.
2214 (usage): Document options -P and -p.
2215 * msginit.c (long_options): Add --properties-input/output.
2216 (main): Handle them.
2217 (usage): Document options -P and -p.
2218 * msgmerge.c (long_options): Add --properties-input/output.
2219 (main): Handle them. In update mode, --properties-input implies
2220 --properties-output.
2221 (usage): Document options -P and -p.
2222 (merge): Set result->encoding if possible.
2223 * msguniq.c (long_options): Add --properties-input/output.
2224 (main): Handle them.
2225 (usage): Document options -P and -p.
2226 * msgcmp.c (long_options): Add --properties-input.
2228 (usage): Document option -P.
2229 * msgexec.c (long_options): Add --properties-input.
2231 (usage): Document option -P.
2232 * msgfmt.c (long_options): Add --properties-input.
2233 (main): Handle it. Pass the known canon_encoding to
2234 msgdomain_write_java and msgdomain_write_tcl.
2235 (usage): Document option -P.
2236 (msgfmt_add_message): Add force_fuzzy argument.
2237 (read_po_file_msgfmt): Pass input_syntax to po_scan().
2238 * msgunfmt.c (long_options): Add --properties-output.
2240 (usage): Document option -p.
2241 * x-properties.h: New file.
2242 * x-po.c (extract_add_message): Add force_fuzzy argument.
2243 (extract): Renamed from extract_po. Pass input_syntax to po_scan().
2244 (extract_po): New function.
2245 (extract_properties): New function.
2246 * xgettext.h: Include read-po.h.
2247 * xgettext.c (long_options): Add --properties-output.
2249 (usage): Document options -L JavaProperties and --properties-output.
2250 (exclude_directive_message): Add force_fuzzy argument.
2251 (read_exclusion_file): Pass input_syntax to po_scan().
2252 (table): Add support for .properties format.
2253 * Makefile.am (noinst_HEADERS): Add read-properties.h,
2254 write-properties.h, x-properties.h.
2255 (COMMON_SOURCE): Add read-properties.c.
2256 (libgettextsrc_la_SOURCES): Add write-properties.c.
2257 * Makefile.msvc (OBJECTS): Add read-properties.obj,
2258 write-properties.obj.
2259 (read-properties.obj, write-properties.obj): New rules.
2260 * Makefile.vms (OBJECTS): Add read-properties.obj,
2261 write-properties.obj.
2262 (read-properties.obj, write-properties.obj): New rules.
2265 2003-04-21 Bruno Haible <bruno@clisp.org>
2267 * read-po-abstract.h (po_scan_file): Remove declaration.
2268 * read-po-abstract.c (po_scan_file): Remove function.
2269 * read-po.c (read_po_file): Call read_po.
2270 * msgfmt.c (read_po_file_msgfmt): Call open_po_file. Invoke po_scan
2271 instead of po_scan_file.
2272 * xgettext.c (read_exclusion_file): Call open_po_file. Invoke po_scan
2273 instead of po_scan_file.
2275 2003-04-20 Bruno Haible <bruno@clisp.org>
2277 * open-po.h (open_po_file): Add argument 'exit_on_error'.
2278 * open-po.c (try_open_po_file): Renamed from open_po_file.
2279 (open_po_file): New function.
2280 * po-lex.h (lex_end): Change return type to void.
2281 (lex_open, lex_close): Remove declarations.
2282 * po-lex.c (lex_end): Change return type to void.
2283 (lex_open, lex_close): Remove functions.
2284 * read-po-abstract.c (po_scan_file): Inline lex_open and lex_close.
2287 2003-04-14 Bruno Haible <bruno@clisp.org>
2289 * hostname.c (usage): Split strings: use one string per option
2291 * msgattrib.c (usage): Likewise.
2292 * msgcat.c (usage): Likewise.
2293 * msgcmp.c (usage): Likewise.
2294 * msgcomm.c (usage): Likewise.
2295 * msgconv.c (usage): Likewise.
2296 * msgen.c (usage): Likewise.
2297 * msgexec.c (usage): Likewise.
2298 * msgfilter.c (usage): Likewise.
2299 * msgfmt.c (usage): Likewise.
2300 * msggrep.c (usage): Likewise.
2301 * msginit.c (usage): Likewise.
2302 * msgmerge.c (usage): Likewise.
2303 * msgunfmt.c (usage): Likewise.
2304 * msguniq.c (usage): Likewise.
2305 * urlget.c (usage): Likewise.
2306 * xgettext.c (usage): Likewise.
2308 2003-04-13 Bruno Haible <bruno@clisp.org>
2310 Unify three PO file parsers.
2311 * read-po-abstract.h: Renamed from po.h.
2312 (abstract_po_reader_class_ty): Renamed from po_method_ty.
2313 (abstract_po_reader_ty): Renamed from po_ty.
2314 (ABSTRACT_PO_READER_TY): Renamed from PO_BASE_TY.
2315 (po_reader_alloc): Renamed from po_alloc.
2316 (po_reader_free): Renamed from po_free.
2317 * read-po-abstract.c: Renamed from po.c.
2318 (po_reader_alloc): Renamed from po_alloc.
2319 (po_reader_free): Renamed from po_free.
2320 (call_parse_brief): Renamed from po_parse_brief.
2321 (call_parse_debrief): Renamed from po_parse_debrief.
2322 (call_directive_domain): Renamed from po_directive_domain.
2323 (call_directive_message): Renamed from po_directive_message.
2324 (call_comment): Renamed from po_comment.
2325 (call_comment_dot): Renamed from po_comment_dot.
2326 (call_comment_filepos): Renamed from po_comment_filepos.
2327 (call_comment_special): Renamed from po_comment_special.
2328 * read-po.h: Include read-po-abstract.h.
2329 (default_po_reader_class_ty, default_po_reader_ty): New types.
2330 (ABSTRACT_PO_READER_TY): New macro.
2331 (default_constructor, default_destructor, default_parse_brief,
2332 default_parse_debrief, default_directive_domain,
2333 default_directive_message, default_comment, default_comment_dot,
2334 default_comment_filepos, default_comment_special, default_set_domain,
2335 default_add_message): New declarations.
2336 (default_po_reader_alloc): New declaration.
2337 * read-po.c (default_po_reader_ty): Renamed from readall_class_ty.
2338 Add fields handle_comments, handle_filepos_comments,
2339 allow_domain_directives, allow_duplicates,
2340 allow_duplicates_if_same_msgstr.
2341 (call_set_domain, call_add_message, call_frob_new_message): New
2343 (default_constructor): Renamed from readall_constructor. Don't set
2344 this->mdlp and this->mlp.
2345 (default_destructor): Renamed from readall_destructor.
2346 (default_parse_brief): Renamed from readall_parse_brief.
2347 (default_parse_debrief): New function.
2348 (default_copy_comment_state, default_reset_comment_state): New
2350 (default_directive_domain): Renamed from readall_directive_domain.
2351 Call set_domain method.
2352 (default_directive_message): Renamed from readall_directive_message.
2353 Call add_message method.
2354 (default_comment): Renamed from readall_comment.
2355 (default_comment_dot): Renamed from readall_comment_dot.
2356 (default_comment_filepos): Renamed from readall_comment_filepos.
2357 (default_comment_special): Renamed from readall_comment_special.
2358 (default_set_domain, default_add_message): New functions.
2359 (default_methods): Renamed from readall_methods.
2360 (default_po_reader_alloc): New function.
2361 (read_po, read_po_file): Update.
2362 * msgfmt.c: Include read-po.h instead of po.h.
2363 (msgfmt_po_reader_ty): Renamed from msgfmt_class_ty. Inherit
2364 from default_po_reader_ty.
2365 (main): Drop po_lex_pass_comments call, done by default_parse_brief.
2366 (msgfmt_constructor): Renamed from format_constructor. Call superclass
2368 (msgfmt_parse_debrief): Renamed from format_debrief. Call superclass
2370 (format_directive_domain): Remove function.
2371 (msgfmt_set_domain): New function.
2372 (format_directive_message): Remove function.
2373 (msgfmt_add_message, msgfmt_frob_new_message): New functions.
2374 (msgfmt_comment_special): Renamed from format_comment_special.
2375 (msgfmt_methods): Renamed from format_methods.
2376 (read_po_file_msgfmt): Renamed from read_po_file.
2377 * x-po.c: Include read-po.h instead of po.h.
2378 (extract_class_ty, extract_constructor, extract_directive_domain,
2379 extract_directive_message, extract_parse_brief, extract_comment,
2380 extract_comment_dot, extract_comment_filepos, extract_comment_special):
2382 (extract_add_message): New function.
2383 (extract_methods): Update.
2384 (extract_po): Update.
2385 * xgettext.c: Include read-po-abstract.h instead of po.h.
2386 (exclude_directive_domain, exclude_directive_message, exclude_methods,
2387 read_exclusion_file): Update.
2388 * msgcmp.c: Don't include po.h.
2389 * msgmerge.c: Likewise.
2390 * po-gram-gen.y: Include read-po-abstract.h instead of po.h.
2391 * po-hash-gen.y: Likewise.
2392 (po_parse_comment_filepos): Renamed from po_hash.
2393 * po-hash.h (po_parse_comment_filepos): Renamed from po_hash.
2394 * Makefile.am (noinst_HEADERS): Remove po.h, add read-po-abstract.h.
2395 (COMMON_SOURCE): Remove po.c, add read-po-abstract.c.
2396 * Makefile.msvc (OBJECTS): Remove po.obj, add read-po-abstract.obj.
2397 (read-po-abstract.obj): Renamed from po.obj.
2398 * Makefile.vms (OBJECTS): Remove po.obj, add read-po-abstract.obj.
2399 (read-po-abstract.obj): Renamed from po.obj.
2401 2003-04-13 Bruno Haible <bruno@clisp.org>
2403 * read-po.c (readall_directive_message): Separate accumulation and
2405 * x-po.c (extract_directive_message): Likewise.
2407 2003-04-13 Bruno Haible <bruno@clisp.org>
2409 * write-po.h (message_print_comment, message_print_comment_dot,
2410 message_print_comment_filepos, message_print_comment_flags): New
2412 * write-po.c: Reorder functions.
2413 (message_print_comment, message_print_comment_dot,
2414 message_print_comment_filepos, message_print_comment_flags): New
2415 functions, extracted from message_print.
2416 (message_print): Use them.
2417 (message_print_obsolete): Use message_print_comment.
2419 2003-04-22 Bruno Haible <bruno@clisp.org>
2421 * plural-table.c (plural_table): Add an entry about Faroese.
2422 Reported by Jacob Sparre Andersen <sparre@crs4.it>.
2424 2003-04-13 Bruno Haible <bruno@clisp.org>
2426 * po.h (po_scan_start, po_scan_end): New declarations.
2427 * po.c: Reorder functions.
2428 (po_scan_start, po_scan_end): New functions.
2429 (po_scan, po_scan_file): Use them.
2431 2003-04-12 Bruno Haible <bruno@clisp.org>
2433 * Makefile.vms: New variables ABIFLAGS, DEFS. Avoid rules with no
2434 lines. Don't use the force target. Correct wildcard syntax.
2435 Suggested by Jouk Jansen <joukj@hrem.stm.tudelft.nl>.
2437 2003-04-13 Bruno Haible <bruno@clisp.org>
2439 * xgettext.c (construct_header): Remove spurious comma.
2441 2003-03-30 Bruno Haible <bruno@clisp.org>
2443 * Makefile.vms: New file.
2444 * Makefile.am (EXTRA_DIST): Add Makefile.vms.
2445 (x-java.c): Prepend a few VMS specific lines.
2446 * po-lex.c (mbfile_getc): Change element type of scatchbuf to
2448 * write-java.c (string_hashcode, write_java_string): Cast argument of
2450 * write-tcl.c (write_tcl_string): Likewise.
2451 * x-python.c (phase7_getuc): Cast argument of unicode_name_character.
2452 * msgfilter.c (write): #undef before redefining it. Needed for VMS.
2455 2003-03-30 Bruno Haible <bruno@clisp.org>
2457 * Makefile.am (noinst_HEADERS): Add po-gram-gen2.h.
2458 (BUILT_SOURCES): Add po-gram-gen2.h.
2459 (DISTCLEANFILES): Remove po-gram-gen2.h.
2460 (po-gram-gen2.h): Simplify rule.
2462 2003-03-17 Bruno Haible <bruno@clisp.org>
2464 Native Woe32/MSVC support.
2465 * Makefile.msvc: New file.
2466 * Makefile.am (EXTRA_DIST): Add it.
2467 * msgfilter.c: Include <sys/time.h> only if it exists.
2468 (process_string): Mark as NYI on Woe32.
2469 * msgfmt.c (sigjmp_buf, sigsetjmp, siglongjmp): Provide fallback
2470 definitions for Woe32.
2471 * msginit.c: Include <fcntl.h>, for F_OK. Include <pwd.h> only if it
2473 (get_user_pwd, get_user_fullname): Adapt for when <pwd.h> is missing.
2474 (project_id, project_id_version, get_user_email,
2475 language_team_address): Use DEV_NULL instead of "/dev/null".
2476 * msggrep.c (is_string_selected): Likewise.
2477 * read-java.c (execute_and_read_po_output): Likewise.
2478 * read-tcl.c (msgdomain_read_tcl): Likewise.
2479 * write-mo.c: Include <sys/param.h> only if it exists.
2481 2003-03-28 Bruno Haible <bruno@clisp.org>
2483 * msgmerge.c (main): Use copy_file_preserving instead of copy_file.
2485 2003-03-16 Bruno Haible <bruno@clisp.org>
2487 * str-list.h (string_list_join): Comment out.
2488 * str-list.c (string_list_join): Comment out.
2490 2003-03-10 Bruno Haible <bruno@clisp.org>
2492 * msggrep.c (no_pass): Mention option -C.
2493 (usage): Document option -C completely.
2494 Reported by Martin Quinson <Martin.Quinson@tuxfamily.org>.
2496 2003-02-28 Bruno Haible <bruno@clisp.org>
2498 Support for relocatable installation.
2499 * msgattrib.c: Include relocatable.h.
2500 (main): Relocate LOCALEDIR value.
2501 * msgcat.c: Include relocatable.h.
2502 (main): Relocate LOCALEDIR value.
2503 * msgcmp.c: Include relocatable.h.
2504 (main): Relocate LOCALEDIR value.
2505 * msgcomm.c: Include relocatable.h.
2506 (main): Relocate LOCALEDIR value.
2507 * msgconv.c: Include relocatable.h.
2508 (main): Relocate LOCALEDIR value.
2509 * msgen.c: Include relocatable.h.
2510 (main): Relocate LOCALEDIR value.
2511 * msgexec.c: Include relocatable.h.
2512 (main): Relocate LOCALEDIR value.
2513 * msgfilter.c: Include relocatable.h.
2514 (main): Relocate LOCALEDIR value.
2515 * msgfmt.c: Include relocatable.h.
2516 (main): Relocate LOCALEDIR value.
2517 * msggrep.c: Include relocatable.h.
2518 (main): Relocate LOCALEDIR value.
2519 * msginit.c: Include relocatable.h.
2520 (main): Relocate LOCALEDIR value.
2521 (project_id, project_id_version, get_user_email): Relocate LIBDIR
2523 (language_team_address): Relocate LIBDIR and PROJECTSDIR values.
2524 * msgmerge.c: Include relocatable.h.
2525 (main): Relocate LOCALEDIR value.
2526 * msgunfmt.c: Include relocatable.h.
2527 (main): Relocate LOCALEDIR value.
2528 * msguniq.c: Include relocatable.h.
2529 (main): Relocate LOCALEDIR value.
2530 * xgettext.c: Include relocatable.h.
2531 (main): Relocate LOCALEDIR value.
2532 * read-java.c: Include relocatable.h.
2533 (msgdomain_read_java): Relocate GETTEXTJEXEDIR value.
2534 * read-tcl.c: Include relocatable.h.
2535 (msgdomain_read_tcl): Relocate GETTEXTDATADIR value.
2536 * hostname.c: Include relocatable.h.
2537 (main): Relocate LOCALEDIR value. Update copyright year.
2538 * urlget.c: Include relocatable.h.
2539 (main): Relocate LOCALEDIR value. Update copyright year.
2540 (fetch): Relocate GETTEXTJEXEDIR value.
2541 * user-email.in: Relocate $libdir.
2542 * Makefile.am (aliaspath): New variable.
2543 (DEFS): Define LOCALE_ALIAS_PATH.
2544 (msginit_SOURCES): Add .../localealias.c.
2545 (msginit_LDADD): Remove .../localealias.lo.
2546 (msgcmp_CFLAGS, msgfmt_CFLAGS, msgmerge_CFLAGS, msgunfmt_CFLAGS,
2547 xgettext_CFLAGS, msgattrib_CFLAGS, msgcat_CFLAGS, msgcomm_CFLAGS,
2548 msgconv_CFLAGS, msgen_CFLAGS, msgexec_CFLAGS, msgfilter_CFLAGS,
2549 msggrep_CFLAGS, msginit_CFLAGS, msguniq_CFLAGS, hostname_CFLAGS,
2550 urlget_CFLAGS): New variables.
2551 (msgcmp_LDFLAGS, msgfmt_LDFLAGS, msgmerge_LDFLAGS, msgunfmt_LDFLAGS,
2552 xgettext_LDFLAGS, msgattrib_LDFLAGS, msgcat_LDFLAGS, msgcomm_LDFLAGS,
2553 msgconv_LDFLAGS, msgen_LDFLAGS, msgexec_LDFLAGS, msgfilter_LDFLAGS,
2554 msggrep_LDFLAGS, msginit_LDFLAGS, msguniq_LDFLAGS, hostname_LDFLAGS,
2555 urlget_LDFLAGS): New variables.
2556 (install-exec-java-yes): Don't ignore INSTALL_PROGRAM_ENV.
2557 (RELOCATABLE_LIBRARY_PATH, RELOCATABLE_SRC_DIR, RELOCATABLE_BUILD_DIR,
2558 RELOCATABLE_CONFIG_H_DIR): New variables.
2560 2003-03-13 Bruno Haible <bruno@clisp.org>
2562 * msggrep.c (main): On Solaris, prefer /usr/xpg4/bin/grep to
2563 /usr/bin/grep. Needed for Solaris 2.8 and 2.9.
2564 Reported by Sven Utcke <utcke@informatik.uni-hamburg.de>.
2566 2003-03-03 Bruno Haible <bruno@clisp.org>
2568 * msgen.c (usage): Don't say that the entries are marked fuzzy.
2569 Reported by Karl Eichwalder <ke@suse.de>.
2571 2003-02-23 Bruno Haible <bruno@clisp.org>
2573 Improve error messages for invalid format strings.
2574 * format-invalid.h: New file.
2575 * format.h (struct formatstring_parser): Add invalid_reason argument
2577 * format-awk.c: Include c-ctype.h, xerror.h, format-invalid.h.
2578 (format_parse): Add invalid_reason argument.
2579 * format-c.c: Include c-ctype.h, xerror.h, format-invalid.h.
2580 (INVALID_C99_MACRO): New macro.
2581 (format_parse): Add invalid_reason argument.
2582 (get_c99_format_directives): Update.
2583 * format-elisp.c: Include c-ctype.h, xerror.h, format-invalid.h.
2584 (format_parse): Add invalid_reason argument.
2585 * format-java.c: Include xerror.h, format-invalid.h.
2586 (message_format_parse, choice_format_parse, format_parse): Add
2587 invalid_reason argument.
2588 (choice_format_parse): Return false if a choice contains an empty
2590 * format-librep.c: Include c-ctype.h, xerror.h, format-invalid.h.
2591 (format_parse): Add invalid_reason argument.
2592 * format-lisp.c: Include xerror.h, format-invalid.h.
2593 (check_params, nocheck_params): Add directives, invalid_reason
2595 (parse_upto, format_parse): Add invalid_reason argument.
2596 * format-pascal.c: Include xerror.h, format-invalid.h.
2597 (format_parse): Add invalid_reason argument.
2598 * format-php.c: Include c-ctype.h, xerror.h, format-invalid.h.
2599 (format_parse): Add invalid_reason argument.
2600 * format-python.c: Include c-ctype.h, xerror.h, format-invalid.h.
2601 (INVALID_MIXES_NAMED_UNNAMED): New macro.
2602 (format_parse): Add invalid_reason argument.
2603 * format-tcl.c: Include c-ctype.h, xerror.h, format-invalid.h.
2604 (format_parse): Add invalid_reason argument.
2605 * format-ycp.c: Include c-ctype.h, xerror.h, format-invalid.h.
2606 (format_parse): Add invalid_reason argument.
2607 * msgfmt.c (check_pair): Output invalid_reason returned for msgstr.
2608 * msgmerge.c (msgfmt_check_pair_fails): Update.
2609 * xgettext.c (remember_a_message, remember_a_message_plural): Update.
2610 * Makefile.am (FORMAT_SOURCE): Add format-invalid.h.
2612 2003-02-22 Bruno Haible <bruno@clisp.org>
2614 * x-python.c (init_keywords): Add u*gettext variants and plural
2615 handling functions added in Python 2.3.
2617 2003-02-22 Bruno Haible <bruno@clisp.org>
2619 * Makefile.am (installdirs): Remove dependency, redundant with
2622 2003-02-20 Bruno Haible <bruno@clisp.org>
2624 * Makefile.am (libgettextpo_la_DEPENDENCIES): New variable.
2625 Reported by Jim Meyering <jim@meyering.net>.
2627 2003-02-19 Bruno Haible <bruno@clisp.org>
2629 * Makefile.am (xgettext_LDADD): Mention $(LIBUNINAME) before
2630 libgettextsrc.la, not after it. Needed avoid link error on OSF/1 4.0:
2631 libtool produces a link command line that contains "-lc" where a
2632 shared library was used, and on OSF/1 4.0 "-lc" must not be used
2633 before objects that use integer division.
2635 2003-02-18 Bruno Haible <bruno@clisp.org>
2637 * message.c (msgdomain_list_free): Uncomment this function.
2638 * Makefile.am (libgettextpo_la_LDFLAGS): Add ../lib/libgettextlib.la.
2639 Needed for Solaris 2.7.
2641 2003-02-16 Bruno Haible <bruno@clisp.org>
2643 * msgmerge.c (message_merge): Add support for Report-Msgid-Bugs-To
2645 * xgettext.c (msgid_bugs_address): New variable.
2646 (long_options): Add option --msgid-bugs-address.
2647 (main): Handle option --msgid-bugs-address.
2648 (usage): Document option --msgid-bugs-address.
2649 (construct_header): Add 'Report-Msgid-Bugs-To:' field. Warn if
2650 msgid_bugs_address is empty.
2652 2003-02-15 Bruno Haible <bruno@clisp.org>
2654 * user-email.in: Add support for GNOME evolution, OpenOffice and
2655 StarOffice with nonstandard installation directory.
2657 2003-02-15 Bruno Haible <bruno@clisp.org>
2659 * msgattrib.c (main): Update year in --version output.
2660 * msgcat.c (main): Likewise.
2661 * msgcmp.c (main): Likewise.
2662 * msgcomm.c (main): Likewise.
2663 * msgconv.c (main): Likewise.
2664 * msgen.c (main): Likewise.
2665 * msgexec.c (main): Likewise.
2666 * msgfilter.c (main): Likewise.
2667 * msgfmt.c (main): Likewise.
2668 * msgunfmt.c (main): Likewise.
2669 * msguniq.c (main): Likewise.
2670 * xgettext.c (main): Likewise.
2672 2003-02-12 Bruno Haible <bruno@clisp.org>
2675 * gettext.c: Remove file.
2676 * ngettext.c: Remove file.
2677 * Makefile.am (bin_PROGRAMS): Remove gettext, ngettext.
2678 (EXTRA_DIST): Add ChangeLog.0.
2679 (pkgdatadir): Define using 'gettext' instead of @PACKAGE@.
2680 (pkglibdir): Likewise.
2681 (INCLUDES): Refer to intl in gettext-runtime directory.
2682 (gettext_SOURCES, ngettext_SOURCES, gettext_LDADD, ngettext_LDADD):
2684 (install-exec-local, installdirs-local, uninstall-local,
2685 install-exec-java-yes, installdirs-java-yes, uninstall-java-yes): Use
2686 $(pkglibdir) instead of $(libdir)/$(PACKAGE).
2687 * plural.c: Update for changed directory structure.
2688 * user-email.in: Use 'gettext' instead of @PACKAGE@.
2691 See ChangeLog.0 for earlier changes.