~ubuntu-branches/ubuntu/breezy/gettext/breezy

« back to all changes in this revision

Viewing changes to gettext-tools/src/ChangeLog

  • Committer: Bazaar Package Importer
  • Author(s): Santiago Vila
  • Date: 2004-03-14 17:40:02 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040314174002-p1ad5ldve1hqzhye
Tags: 0.14.1-2
* Added libexpat1-dev to Build-Depends, for glade support.
* Added libc0.1-dev to Build-Depends, for GNU/kFreeBSD.
* Removed special-casing of knetbsd-gnu in debian/rules.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
2004-01-28  Bruno Haible  <bruno@clisp.org>
 
2
 
 
3
        * gettext-0.14 released.
 
4
 
 
5
2004-01-18  Bruno Haible  <bruno@clisp.org>
 
6
 
 
7
        * msginit.c (catalogname_for_locale): Add entries for Akan, Avaric,
 
8
        Bambara, Cree, Divehi (Maldivian), Éwé, Igbo, Kongo, Kanuri, Ganda,
 
9
        Luba-Katanga, Ojibwa, Venda.
 
10
        (englishname_of_language): Likewise, and also for Fulah (Fulfulde).
 
11
 
 
12
2004-01-09  Bruno Haible  <bruno@clisp.org>
 
13
 
 
14
        * format.h (struct formatstring_parser): Add 'translated' argument to
 
15
        parse function.
 
16
        (get_sysdep_c_format_directives): Renamed from
 
17
        get_c99_format_directives. Add 'translated' argument. Change meaning
 
18
        of endpos in returned array.
 
19
        * format-c.c (struct spec): Rename field c99_directives to
 
20
        sysdep_directives, and c99_directives_count to sysdep_directives_count.
 
21
        (format_parse): Add 'translated' argument. Handle 'I' flag. Store the
 
22
        pointer past the '>' character instead of the pointer to the '>'.
 
23
        (format_c_parse, format_objc_parse): Add 'translated' argument.
 
24
        (get_sysdep_c_format_directives): Renamed from
 
25
        get_c99_format_directives. Add 'translated' argument.
 
26
        * format-awk.c (format_parse): Add 'translated' argument.
 
27
        * format-csharp.c (format_parse): Likewise.
 
28
        * format-elisp.c (format_parse): Likewise.
 
29
        * format-gcc-internal.c (format_parse): Likewise.
 
30
        * format-java.c (format_parse): Likewise.
 
31
        * format-librep.c (format_parse): Likewise.
 
32
        * format-lisp.c (format_parse): Likewise.
 
33
        * format-pascal.c (format_parse): Likewise.
 
34
        * format-perl-brace.c (format_parse): Likewise.
 
35
        * format-perl.c (format_parse): Likewise.
 
36
        * format-php.c (format_parse): Likewise.
 
37
        * format-python.c (format_parse): Likewise.
 
38
        * format-qt.c (format_parse): Likewise.
 
39
        * format-sh.c (format_parse): Likewise.
 
40
        * format-tcl.c (format_parse): Likewise.
 
41
        * format-ycp.c (format_parse): Likewise.
 
42
        * msgfmt.c (check_pair): Update.
 
43
        * msgmerge.c (msgfmt_check_pair_fails): Likewise.
 
44
        * read-mo.c (get_sysdep_string): Don't add '<'...'>' around segments
 
45
        of length 1.
 
46
        (read_mo_file): Treat major revision 1 like major revision 0.
 
47
        * write-mo.c (write_table): Update. Use major revision 1 if "I" occurs
 
48
        among the sysdep segments.
 
49
        * xgettext.c (set_format_flags_from_context, remember_a_message,
 
50
        remember_a_message_plural): Update.
 
51
 
 
52
2004-01-14  Bruno Haible  <bruno@clisp.org>
 
53
 
 
54
        * msginit.c (fill_header): Avoid a NULL pointer access when the header
 
55
        has no comment attached to it.
 
56
        Reported by Josep Puigdemont <baldrick@terra.es>.
 
57
 
 
58
2004-01-09  Bruno Haible  <bruno@clisp.org>
 
59
 
 
60
        * msgattrib.c (main): Update year in --version output.
 
61
        * msgcat.c (main): Likewise.
 
62
        * msgcmp.c (main): Likewise.
 
63
        * msgcomm.c (main): Likewise.
 
64
        * msgconv.c (main): Likewise.
 
65
        * msgen.c (main): Likewise.
 
66
        * msgexec.c (main): Likewise.
 
67
        * msgfilter.c (main): Likewise.
 
68
        * msgfmt.c (main): Likewise.
 
69
        * msggrep.c (main): Likewise.
 
70
        * msginit.c (main): Likewise.
 
71
        * msgmerge.c (main): Likewise.
 
72
        * msgunfmt.c (main): Likewise.
 
73
        * msguniq.c (main): Likewise.
 
74
        * xgettext.c (main): Likewise.
 
75
 
 
76
2003-12-29  Bruno Haible  <bruno@clisp.org>
 
77
 
 
78
        * xgettext.h: Include stdlib.h, str-list.h.
 
79
        (struct refcounted_string_list_ty): New type.
 
80
        (add_reference, drop_reference): New functions.
 
81
        (savable_comment, savable_comment_add, savable_comment_reset,
 
82
        savable_comment_to_xgettext_comment): New declarations.
 
83
        * xgettext.c (savable_comment): New variable.
 
84
        (savable_comment_add, savable_comment_reset,
 
85
        savable_comment_to_xgettext_comment): New functions.
 
86
        * x-java.c (struct refcounted_string_list_ty, comment, add_reference,
 
87
        drop_reference, x_java_comment_add, x_java_comment_reset,
 
88
        x_java_comment_to_xgettext_comment): Remove. Use replacement from
 
89
        xgettext.{h,c} instead.
 
90
        * x-csharp.c (struct refcounted_string_list_ty, comment, add_reference,
 
91
        drop_reference, x_csharp_comment_add, x_csharp_comment_reset,
 
92
        x_csharp_comment_to_xgettext_comment): Remove. Use replacement from
 
93
        xgettext.{h,c} instead.
 
94
        * x-c.c (comment_line_end): Call savable_comment_add instead of
 
95
        xgettext_comment_add.
 
96
        (struct token_ty): Add 'comment' field.
 
97
        (free_token): Free it.
 
98
        (phase5_get): Initialize token's 'comment' field.
 
99
        (phase6_get): Call savable_comment_reset instead of
 
100
        xgettext_comment_reset.
 
101
        (phase8a_get): Initialize token's 'comment' field.
 
102
        (phase8b_get): Call savable_comment_reset instead of
 
103
        xgettext_comment_reset.
 
104
        (phase8c_get): In @"...", use the comment of the first token, not of
 
105
        the second.
 
106
        (struct xgettext_token_ty): Add 'comment' field.
 
107
        (x_c_lex): Deal with the token's comment.
 
108
        (extract_parenthesized): Call savable_comment_to_xgettext_comment and
 
109
        savable_comment_reset. Free the token's comment field.
 
110
        * x-python.c (comment_line_end): Call savable_comment_add instead of
 
111
        xgettext_comment_add.
 
112
        (struct token_ty): Add 'comment' field.
 
113
        (phase5_get): Call savable_comment_reset instead of
 
114
        xgettext_comment_reset. Initialize token's 'comment' field.
 
115
        (extract_parenthesized): Call savable_comment_to_xgettext_comment and
 
116
        savable_comment_reset. Free the token's comment field.
 
117
 
 
118
2003-12-28  Bruno Haible  <bruno@clisp.org>
 
119
 
 
120
        * read-mo.h (read_mo_file): Change 'fn' into 'filename'.
 
121
        * read-mo.c (read_mo_file): Likewise.
 
122
 
 
123
2003-12-28  Bruno Haible  <bruno@clisp.org>
 
124
 
 
125
        * write-resources.h: New file.
 
126
        * write-resources.c: New file.
 
127
        * msgfmt.cs: New file.
 
128
        * msgfmt.c: Include write-resources.h.
 
129
        (csharp_resources_mode): New variable.
 
130
        (long_options): Add --csharp-resources.
 
131
        (main): Handle --csharp-resources. More generic code for detection of
 
132
        contradicting modes. Invoke msgdomain_write_csharp_resources.
 
133
        (usage): Document --csharp-resources option.
 
134
        (msgfmt_set_domain): Update.
 
135
        * read-resources.h: New file.
 
136
        * read-resources.c: New file.
 
137
        * msgunfmt.cs (DumpResource): Add a constructor that dumps a .resources
 
138
        file.
 
139
        (Main): Invoke it when only one argument is given.
 
140
        * msgunfmt.c: Include read-resources.h.
 
141
        (csharp_resources_mode): New variable.
 
142
        (long_options): Add --csharp-resources.
 
143
        (main): Handle --csharp-resources. More generic code for detection of
 
144
        contradicting modes. Invoke read_one_file instead of read_mo_file.
 
145
        (usage): Document --csharp-resources option.
 
146
        (read_one_file): New function.
 
147
        * Makefile.am (noinst_HEADERS): Add read-resources.h and
 
148
        write-resources.h.
 
149
        (msgfmt_SOURCES): Add write-resources.c.
 
150
        (msgunfmt_SOURCES): Add read-resources.c.
 
151
        (EXTRA_DIST): Add msgfmt.cs.
 
152
        (CLEANFILES): Add msgfmt.net.exe.
 
153
        (msgfmt.net.exe): New rule.
 
154
        (all-csharp-yes): Depend on it.
 
155
        (install-exec-csharp-yes): Also install msgfmt.net.exe.
 
156
        (uninstall-csharp-yes): Also uninstall msgfmt.net.exe.
 
157
        * Makefile.msvc (msgfmt_OBJECTS): Add write-resources.obj.
 
158
        (msgunfmt_OBJECTS): Add read-resources.obj.
 
159
        (write-resources.obj, read-resources.obj): New rules.
 
160
        * Makefile.vms (msgfmt_OBJECTS): Add write-resources.obj.
 
161
        (msgunfmt_OBJECTS): Add read-resources.obj.
 
162
        (write-resources.obj, read-resources.obj): New rules.
 
163
        * FILES: Update.
 
164
 
 
165
2003-12-26  Bruno Haible  <bruno@clisp.org>
 
166
 
 
167
        Support for C#.
 
168
        * write-csharp.h: New file.
 
169
        * write-csharp.c: New file.
 
170
        * msgfmt.c: Include write-csharp.h.
 
171
        (csharp_mode, csharp_resource_name, csharp_locale_name,
 
172
        csharp_base_directory): New variables.
 
173
        (long_options): Add option --csharp.
 
174
        (main): Handle option --csharp. Initialize csharp_resource_name,
 
175
        csharp_locale_name, csharp_base_directory. Perform checks for C# mode.
 
176
        Invoke msgdomain_write_csharp.
 
177
        (usage): Document --csharp option and C# mode.
 
178
        (msgfmt_set_domain): Ignore in C# mode.
 
179
        * read-csharp.h: New file.
 
180
        * read-csharp.c: New file.
 
181
        * msgunfmt.cs: New file.
 
182
        * msgunfmt.c: Include read-csharp.h.
 
183
        (csharp_mode, csharp_resource_name, csharp_locale_name,
 
184
        csharp_base_directory): New variables.
 
185
        (long_options): Add option --csharp.
 
186
        (main): Handle option --csharp. Initialize csharp_resource_name,
 
187
        csharp_locale_name, csharp_base_directory. Perform checks for C# mode.
 
188
        Invoke msgdomain_read_csharp.
 
189
        (usage): Document --csharp option and C# mode.
 
190
        * Makefile.am (noinst_HEADERS): Add read-csharp.h, write-csharp.h.
 
191
        (CSHARPCOMP, CSHARPCOMPFLAGS): New variables.
 
192
        (msgfmt_SOURCES): Add write-csharp.c.
 
193
        (msgunfmt_SOURCES): Add read-csharp.c.
 
194
        (EXTRA_DIST): Add msgunfmt.cs.
 
195
        (CLEANFILES): Add msgunfmt.net.exe.
 
196
        (all-csharp-yes, all-csharp-no): New rules.
 
197
        (all-local): Depend on them.
 
198
        (msgunfmt.net.exe): New rule.
 
199
        (install-exec-csharp-yes, install-exec-csharp-no): New rules.
 
200
        (install-exec-local): Depend on them.
 
201
        (installdirs-csharp): New rule.
 
202
        (installdirs-local): Depend on it.
 
203
        (uninstall-csharp-yes, uninstall-csharp-no): New rules.
 
204
        (uninstall-local): Depend on it.
 
205
        * Makefile.msvc (msgfmt_OBJECTS): Add write-csharp.obj.
 
206
        (msgunfmt_OBJECTS): Add read-csharp.obj.
 
207
        (write-csharp.obj, read-csharp.obj): New rules.
 
208
        * Makefile.vms (msgfmt_OBJECTS): Add write-csharp.obj.
 
209
        (msgunfmt_OBJECTS): Add read-csharp.obj.
 
210
        (write-csharp.obj, read-csharp.obj): New rules.
 
211
        * FILES: Update.
 
212
 
 
213
2003-12-26  Bruno Haible  <bruno@clisp.org>
 
214
 
 
215
        * read-java.c (msgdomain_read_java): Relocate also the GETTEXTJAR
 
216
        value.
 
217
        * urlget.c (fetch): Likewise.
 
218
 
 
219
2003-12-26  Bruno Haible  <bruno@clisp.org>
 
220
 
 
221
        * write-java.c (write_java_code): Emit a static method
 
222
        'get_msgid_plural_table' instead of a static field 'plural'.
 
223
        * gnu/gettext/DumpResource.java (DumpResource.dump): Exploit a
 
224
        'get_msgid_plural_table' method if it exists.
 
225
 
 
226
2003-12-14  Bruno Haible  <bruno@clisp.org>
 
227
 
 
228
        * message.h (format_type): New enum value 'format_csharp'.
 
229
        (NFORMATS): Increment.
 
230
        * message.c (format_language): Add format_csharp entry.
 
231
        (format_language_pretty): Likewise.
 
232
        * format.h (formatstring_csharp): New declaration.
 
233
        * format-csharp.c: New file.
 
234
        * format.c (formatstring_parsers): Add formatstring_csharp.
 
235
        * x-csharp.h: New file.
 
236
        * x-csharp.c: New file.
 
237
        * xgettext.c: Include x-csharp.h.
 
238
        (flag_table_csharp): New variable.
 
239
        (main): Invoke init_flag_table_csharp, x_csharp_extract_all,
 
240
        x_csharp_keyword.
 
241
        (usage): Mention C# source language.
 
242
        (xgettext_record_flag): Handle format_csharp.
 
243
        (language_to_extractor): Add C# rule.
 
244
        (extension_to_language): Add C# rule.
 
245
        * Makefile.am (noinst_HEADERS): Add x-csharp.h.
 
246
        (FORMAT_SOURCE): Add format-csharp.c.
 
247
        (xgettext_SOURCES): Add x-csharp.c.
 
248
        * Makefile.msvc (OBJECTS): Add format-csharp.obj.
 
249
        (xgettext_OBJECTS): Add x-csharp.obj.
 
250
        (format-csharp.obj, x-csharp.obj): New rules.
 
251
        * Makefile.vms (OBJECTS): Add format-csharp.obj.
 
252
        (xgettext_OBJECTS): Add x-csharp.obj.
 
253
        (format-csharp.obj, x-csharp.obj): New rules.
 
254
        * FILES: Update.
 
255
 
 
256
2003-12-28  Bruno Haible  <bruno@clisp.org>
 
257
 
 
258
        * msgexec.c (process_string): Pass ignore_sigpipe = false.
 
259
        * msgfilter.c (process_string): Likewise.
 
260
        * msggrep.c (is_string_selected): Likewise.
 
261
        * msginit.c (project_id, project_id_version, get_user_email,
 
262
        language_team_address): Likewise.
 
263
        * read-java.c (execute_and_read_po_output): Likewise.
 
264
        * read-tcl.c (msgdomain_read_tcl): Likewise.
 
265
        * urlget.c (execute_it): Pass ignore_sigpipe = true.
 
266
        (fetch): Pass ignore_sigpipe = true when fetching the file, = false
 
267
        otherwise.
 
268
 
 
269
2003-12-14  Bruno Haible  <bruno@clisp.org>
 
270
 
 
271
        * x-c.c (SIZEOF): New macro.
 
272
        (phase1_ungetc): Verify that the pushback buffer's size is sufficient.
 
273
        (phase2_ungetc): Likewise.
 
274
        (phase3_ungetc): Likewise.
 
275
        (phase5_unget): Likewise.
 
276
        (phase6_unget): Likewise.
 
277
        * x-java.c (SIZEOF): New macro.
 
278
        (phase1_ungetc): Verify that the pushback buffer's size is sufficient.
 
279
        (phase2_ungetc): Likewise.
 
280
        (phase3_ungetc): Likewise.
 
281
        (phase5_unget): Likewise.
 
282
        (phase6_unget): Likewise.
 
283
        * x-php.c (SIZEOF): New macro.
 
284
        (phase1_ungetc): Verify that the pushback buffer's size is sufficient.
 
285
        (phase2_ungetc): Likewise.
 
286
        (phase3_ungetc): Likewise.
 
287
        * x-python.c (SIZEOF): New macro.
 
288
        (phase1_ungetc): Verify that the pushback buffer's size is sufficient.
 
289
        (phase5_unget): Likewise.
 
290
        * x-sh.c (SIZEOF): New macro.
 
291
        (phase1_ungetc): Verify that the pushback buffer's size is sufficient.
 
292
        (phase2_ungetc): Likewise.
 
293
        * x-smalltalk.c (SIZEOF): New macro.
 
294
        (phase2_unget): Verify that the pushback buffer's size is sufficient.
 
295
        * x-tcl.c (SIZEOF): New macro.
 
296
        (phase1_ungetc): Verify that the pushback buffer's size is sufficient.
 
297
        (phase2_ungetc): Likewise.
 
298
        * x-ycp.c (SIZEOF): New macro.
 
299
        (phase2_unget): Verify that the pushback buffer's size is sufficient.
 
300
 
 
301
2003-12-14  Bruno Haible  <bruno@clisp.org>
 
302
 
 
303
        * x-c.c (phase1_pushback): Reduce size to 2.
 
304
        (phase2_pushback): Reduce size to 1.
 
305
        (phase3_pushback): Reduce size to 2.
 
306
        (phase5_pushback): Reduce size to 1.
 
307
        (phase6_pushback): Reduce size to 2.
 
308
        * x-java.c (phase2_pushback): Reduce size to 1.
 
309
        (phase3_pushback): Reduce size to 2.
 
310
        (phase5_pushback): Reduce size to 3.
 
311
        (phase6_pushback): Reduce size to 2.
 
312
        * x-php.c (phase1_pushback): Reduce size to 2.
 
313
        * x-python.c (max): New macro.
 
314
        (phase1_pushback): Reduce size to UNINAME_MAX + 3.
 
315
        (phase5_pushback): Reduce size to 1.
 
316
        * x-sh.c (phase1_pushback): Reduce size to 1.
 
317
        (phase2_pushback): Reduce size to 2.
 
318
        * x-smalltalk.c (phase2_pushback): Reduce size to 1.
 
319
        * x-tcl.c (phase1_pushback): Reduce size to 1.
 
320
        (phase2_pushback): Reduce size to 2.
 
321
 
 
322
2003-12-12  Bruno Haible  <bruno@clisp.org>
 
323
 
 
324
        Assume automake-1.8.
 
325
        * Makefile.am (install-exec-local): Renamed from install-exec-am.
 
326
 
 
327
2003-11-30  Bruno Haible  <bruno@clisp.org>
 
328
 
 
329
        * format-java.c: Include xallocsa.h.
 
330
        (message_format_parse): Use xallocsa instead of alloca.
 
331
        (choice_format_parse): Likewise.
 
332
        * msgl-cat.c: Include xallocsa.h.
 
333
        (catenate_msgdomain_list): Use xallocsa instead of alloca.
 
334
        * msgl-charset.c: Include xallocsa.h.
 
335
        (compare_po_locale_charsets): Use xallocsa instead of alloca.
 
336
        * msgl-iconv.c: Include xallocsa.h.
 
337
        (iconv_message_list): Use xallocsa instead of alloca.
 
338
        * po-charset.c: Include xallocsa.h.
 
339
        (po_lex_charset_set): Use xallocsa instead of alloca.
 
340
        * read-tcl.c: Include xallocsa.h.
 
341
        (msgdomain_read_tcl): Use xallocsa instead of alloca.
 
342
        * write-java.c: Include xallocsa.h.
 
343
        (compute_hashsize, msgdomain_write_java): Use xallocsa instead of
 
344
        alloca.
 
345
        * write-mo.c: Include xallocsa.h.
 
346
        (write_table): Use xallocsa instead of alloca.
 
347
        * write-po.c: Include xallocsa.h.
 
348
        (msgdomain_list_print_po): Use xallocsa instead of alloca.
 
349
        * write-tcl.c: Include xallocsa.h.
 
350
        (msgdomain_write_tcl): Use xallocsa instead of alloca.
 
351
        * msggrep.c: Include xallocsa.h.
 
352
        (is_message_selected): Use xallocsa instead of alloca.
 
353
        * msginit.c: Include xallocsa.h.
 
354
        (subst_string): Use xallocsa instead of alloca.
 
355
        * msgmerge.c: Include obstack.h.
 
356
        (obstack_chunk_alloc, obstack_chunk_free): New macros.
 
357
        (message_merge): Use obstack_alloc instead of alloca.
 
358
        * xgettext.c: Include xallocsa.h.
 
359
        (flag_context_list_table_insert): Use xallocsa instead of alloca.
 
360
 
 
361
2003-12-17  Bruno Haible  <bruno@clisp.org>
 
362
 
 
363
        * gettext-0.13.1 released.
 
364
 
 
365
2003-12-14  Bruno Haible  <bruno@clisp.org>
 
366
 
 
367
        * x-sh.c (phase2_getc): Call phase1_ungetc instead of phase2_ungetc:
 
368
        The next phase2_getc invocation must return QUOTED('"'), not '"'.
 
369
 
 
370
2003-12-14  Bruno Haible  <bruno@clisp.org>
 
371
 
 
372
        * x-c.c (phase7_getc): Remove dead code.
 
373
        * x-java.c (accumulate_escaped): More precise error message.
 
374
 
 
375
2003-12-02  Bruno Haible  <bruno@clisp.org>
 
376
 
 
377
        * msginit.c (catalogname_for_locale): Treat sr_CS like sr_YU.
 
378
 
 
379
2003-11-30  Bruno Haible  <bruno@clisp.org>
 
380
 
 
381
        * gettext-0.13 released.
 
382
 
 
383
2003-11-28  Bruno Haible  <bruno@clisp.org>
 
384
 
 
385
        * xgettext.c (set_format_flags_from_context): Add casts, to make it
 
386
        compile in C++ mode.
 
387
 
 
388
2003-11-22  Bruno Haible  <bruno@clisp.org>
 
389
 
 
390
        * x-c.c (phase4_getc): Skip leading whitespace in C++ style comments
 
391
        as well.
 
392
        * x-sh.c (read_word): Skip leading whitespace in comments.
 
393
        * x-lisp.c (read_object): Skip leading whitespace in single-line
 
394
        comments as well.
 
395
        * x-elisp.c (read_object): Skip leading whitespace in comments.
 
396
        * x-librep.c (read_object): Skip leading whitespace in single-line
 
397
        comments as well.
 
398
        * x-java.c (phase4_getc): Skip leading whitespace in C++ style comments
 
399
        as well.
 
400
        * x-awk.c (phase2_getc): Skip leading whitespace in comments.
 
401
        * x-ycp.c (phase2_getc): Skip leading whitespace in single-line
 
402
        comments as well.
 
403
        * x-tcl.c (read_command): Skip leading whitespace in comments.
 
404
 
 
405
2003-11-24  Bruno Haible  <bruno@clisp.org>
 
406
 
 
407
        * format-lisp.c (check_params): Use ngettext for one of the messages.
 
408
        Reported by Rafał Maszkowski <rzm@icm.edu.pl>.
 
409
 
 
410
2003-11-15  Bruno Haible  <bruno@clisp.org>
 
411
 
 
412
        * Makefile.am (AM_CPPFLAGS): Renamed from INCLUDES.
 
413
 
 
414
2003-11-09  Bruno Haible  <bruno@clisp.org>
 
415
 
 
416
        * msginit.c (main): Drop the blank line in --no-translator mode.
 
417
 
 
418
2003-11-07  Bruno Haible  <bruno@clisp.org>
 
419
 
 
420
        * xgettext.c (remember_a_message): Omit the programmer comments of a
 
421
        duplicated msgid only if they are redundant.
 
422
        Reported by Christian Neumair <chris@gnome-de.org>.
 
423
 
 
424
2003-11-05  Bruno Haible  <bruno@clisp.org>
 
425
 
 
426
        * user-email.sh.in: Renamed from user-email.in. Internationalize, use
 
427
        localedir and gettext.
 
428
        * FILES: Update.
 
429
 
 
430
2003-10-23  Bruno Haible  <bruno@clisp.org>
 
431
 
 
432
        * read-stringtable.c (read_string, stringtable_parse): Cast
 
433
        gram_pos.line_number to 'unsigned long'.
 
434
        * x-sh.c (read_word): Case line_number to 'unsigned long'.
 
435
 
 
436
2003-10-21  Bruno Haible  <bruno@clisp.org>
 
437
 
 
438
        * message.h (message_list_msgids_changed): New declaration.
 
439
        * message.c (message_list_msgids_changed): New function.
 
440
        * msgl-iconv.c (iconv_message_list): Update the message list's hash
 
441
        table if it happens to contain non-ASCII msgids.
 
442
 
 
443
2003-10-19  Bruno Haible  <bruno@clisp.org>
 
444
 
 
445
        * message.h (format_type): New enum value 'format_qt'.
 
446
        (NFORMATS): Increment.
 
447
        * message.c (format_language): Add format_qt entry.
 
448
        (format_language_pretty): Likewise.
 
449
        * format.h (formatstring_qt): New declaration.
 
450
        * format-qt.c: New file.
 
451
        * format.c (formatstring_parsers): Add formatstring_qt.
 
452
        * xgettext.c (recognize_format_qt): New variable.
 
453
        (long_options): Add option "--qt".
 
454
        (main): Handle --qt option. Determine the extractor only after option
 
455
        processing is complete.
 
456
        (usage): Document --qt option.
 
457
        (xgettext_record_flag): Handle format_qt.
 
458
        (language_to_extractor): For C++, return a different extractor when
 
459
        --qt was specified.
 
460
        * write-qt.h: New file.
 
461
        * write-qt.c: New file.
 
462
        * msgfmt.c: Include write-qt.h.
 
463
        (qt_mode): New variable.
 
464
        (long_options): Add option "--qt".
 
465
        (main): Handle --qt option. More checks for contradicting options.
 
466
        Call msgdomain_write_qt.
 
467
        (usage): Mention Qt mode.
 
468
        (format_directive_domain): Ignore domain directive if in Qt mode.
 
469
        * Makefile.am (noinst_HEADERS): Add write-qt.h.
 
470
        (FORMAT_SOURCE): Add format-qt.c.
 
471
        (msgfmt_SOURCES): Add write-qt.c.
 
472
        * Makefile.msvc (OBJECTS): Add format-qt.obj.
 
473
        (msgfmt_OBJECTS): Add write-qt.obj.
 
474
        (format-qt.obj, write-qt.obj): New rules.
 
475
        * Makefile.vms (OBJECTS): Add format-qt.obj.
 
476
        (msgfmt_OBJECTS): Add write-qt.obj.
 
477
        (format-qt.obj, write-qt.obj): New rules.
 
478
        * FILES: Update.
 
479
 
 
480
2003-10-14  Bruno Haible  <bruno@clisp.org>
 
481
 
 
482
        Fix compilation errors in C++ mode.
 
483
        * msgfilter.c (process_string): Cast the xrealloc expression.
 
484
        * xgettext.c (language_to_extractor, extension_to_language): Move the
 
485
        typedef after the struct definition.
 
486
 
 
487
2003-10-13  Bruno Haible  <bruno@clisp.org>
 
488
 
 
489
        Support CR/LF line terminators in C sources even on Unix.
 
490
        * x-c.c (phase0_getc, phase0_ungetc): New functions.
 
491
        (phase1_getc): Use them instead of calling getc/ungetc directly.
 
492
        Reported by Christoph Thielecke <u15119@hs-harz.de>.
 
493
 
 
494
2003-10-13  Bruno Haible  <bruno@clisp.org>
 
495
 
 
496
        Support and recognize Objective C specific format strings.
 
497
        * message.h (enum format_type): New item format_objc.
 
498
        (NFORMATS): Increment.
 
499
        * message.c (format_language): Add an entry for format_objc.
 
500
        (format_language_pretty): Likewise.
 
501
        * format.h (formatstring_objc): New declaration.
 
502
        * format-c.c (enum format_arg_type): New item FAT_OBJC_OBJECT.
 
503
        (format_parse): Add objc_extensions argument. Handle %@ in ObjC mode.
 
504
        (format_c_parse, format_objc_parse): New functions.
 
505
        (formatstring_c): Use format_c_parse instead of format_parse.
 
506
        (formatstring_objc): New variable.
 
507
        (get_c99_format_directives): Update.
 
508
        * format.c (formatstring_parsers): Add an entry for format_objc.
 
509
        * write-mo.c (write_table): Look for system dependent strings also in
 
510
        ObjectiveC format strings.
 
511
        * x-c.h (SCANNERS_C): Use separate flag_table for ObjectiveC.
 
512
        (x_objc_keyword, init_flag_table_objc): New declarations.
 
513
        (x_c_any_keywords): Remove declaration.
 
514
        * x-c.c (c_keywords): Renamed from keywords.
 
515
        (objc_keywords): New variable.
 
516
        (add_keyword): Renamed from x_c_keyword. Add keywords table argument.
 
517
        (x_c_keyword, x_objc_keyword): New functions.
 
518
        (x_c_any_keywords): Remove function.
 
519
        (init_keywords): Also initialize ObjectiveC keyword table.
 
520
        (init_flag_table_objc): New function.
 
521
        (enum token_type_ty): New item token_type_colon.
 
522
        (phase5_get): Recognize colon.
 
523
        (enum xgettext_token_type_ty): New item xgettext_token_type_colon.
 
524
        (x_c_lex): Use keywords table depending on objc_extensions. Handle
 
525
        colon.
 
526
        (extract_parenthesized): Change the context_iter and inner_context
 
527
        after a keyword/symbol followed by a colon was seen.
 
528
        * xgettext.c (flag_table_objc): New variable.
 
529
        (main): Invoke init_flag_table_objc, x_objc_keyword. Watch out for
 
530
        keywords arguments, instead of calling x_c_any_keywords().
 
531
        (flag_context_list_table_insert): New function, extracted from
 
532
        xgettext_record_flag.
 
533
        (xgettext_record_flag): Call it. For format_c, insert the flags also
 
534
        in the flag_table_objc. Handle format_objc.
 
535
        (remember_a_message): Don't add a heuristic c-format flag to an entry
 
536
        that already carries objc-format.
 
537
        (remember_a_message_plural): Likewise.
 
538
 
 
539
2003-10-18  Bruno Haible  <bruno@clisp.org>
 
540
 
 
541
        Support for GNUstep .strings format.
 
542
        * read-stringtable.h: New file.
 
543
        * read-stringtable.c: New file.
 
544
        * read-po-abstract.h (enum input_syntax_ty): New item
 
545
        syntax_stringtable.
 
546
        (po_callback_comment_dispatcher): Renamed from po_callback_comment.
 
547
        (po_callback_comment, po_callback_comment_special): New declarations.
 
548
        * read-po-abstract.c: Include read-stringtable.h.
 
549
        (po_scan): Add support for syntax_stringtable.
 
550
        (po_callback_comment_dispatcher): Renamed from po_callback_comment.
 
551
        (po_callback_comment, po_callback_comment_dot): New functions.
 
552
        (po_callback_comment_special): New function.
 
553
        * read-po.c (read_po): Set mdlp->encoding for syntax_stringtable too.
 
554
        * po-gram-gen.y: Update po_callback_comment_dispatcher call.
 
555
        * read-properties.c (properties_parse): Likewise.
 
556
        * write-stringtable.h: New file.
 
557
        * write-stringtable.c: New file.
 
558
        * write-po.h (make_format_description_string, significant_format_p):
 
559
        New declarations.
 
560
        (message_print_syntax_stringtable): New declaration.
 
561
        * write-po.c: Include write-stringtable.h.
 
562
        (make_format_description_string, significant_format_p): Make
 
563
        non-static.
 
564
        (use_syntax_stringtable): New variable.
 
565
        (message_print_syntax_stringtable): New function.
 
566
        (msgdomain_list_print): Add check for plural forms for
 
567
        syntax_stringtable too. Add support for writing the .strings format.
 
568
        * msgattrib.c (long_options): Add --stringtable-input/output.
 
569
        (main): Handle them.
 
570
        (usage): Document options --stringtable-input/output.
 
571
        * msgcat.c (long_options): Add --stringtable-input/output.
 
572
        (main): Handle them. If option --stringtable-output is used, convert to
 
573
        UTF-8 and ignore the to_code.
 
574
        (usage): Document options --stringtable-input/output.
 
575
        * msgcmp.c (long_options): Add --stringtable-input.
 
576
        (main): Handle it.
 
577
        (usage): Document option --stringtable-input.
 
578
        * msgcomm.c (long_options): Add --stringtable-input/output.
 
579
        (main): Handle them.
 
580
        (usage): Document options --stringtable-input/output.
 
581
        * msgconv.c (long_options): Add --stringtable-input/output.
 
582
        (main): Handle them. If option --stringtable-output is used, ignore the
 
583
        to_code.
 
584
        (usage): Document options --stringtable-input/output.
 
585
        * msgen.c (long_options): Add --stringtable-input/output.
 
586
        (main): Handle them.
 
587
        (usage): Document options --stringtable-input/output.
 
588
        * msgexec.c: Include limits.h.
 
589
        (long_options): Add --stringtable-input.
 
590
        (main): Handle it.
 
591
        (usage): Document option --stringtable-input.
 
592
        * msgfilter.c (long_options): Add --stringtable-input/output.
 
593
        (main): Handle them.
 
594
        (usage): Document options --stringtable-input/output.
 
595
        * msgfmt.c (long_options): Add --stringtable-input.
 
596
        (main): Handle it.
 
597
        (usage): Document option --stringtable-input.
 
598
        * msggrep.c (long_options): Add --stringtable-input/output.
 
599
        (main): Handle them.
 
600
        (usage): Document options --stringtable-input/output.
 
601
        * msginit.c (long_options): Add --stringtable-input/output.
 
602
        (main): Handle them.
 
603
        (usage): Document options --stringtable-input/output.
 
604
        * msgmerge.c (long_options): Add --stringtable-input/output.
 
605
        (main): Handle them. In update mode, --stringtable-input implies
 
606
        --stringtable-output.
 
607
        (usage): Document options --stringtable-input/output.
 
608
        * msgunfmt.c (long_options): Add --stringtable-output.
 
609
        (main): Handle it.
 
610
        (usage): Document option --stringtable-output.
 
611
        * msguniq.c (long_options): Add --stringtable-input/output.
 
612
        (main): Handle them.
 
613
        (usage): Document options --stringtable-input/output.
 
614
        * x-stringtable.h: New file.
 
615
        * x-po.c: Include x-stringtable.h.
 
616
        (extract_stringtable): New function.
 
617
        * xgettext.c: Include x-stringtable.h.
 
618
        (long_options): Add --stringtable-output.
 
619
        (main): Handle it.
 
620
        (usage): Document options -L NXStringTable and --stringtable-output.
 
621
        (finalize_header): If --stringtable-output was given, set the charset.
 
622
        (language_to_extractor): Add support for .strings format.
 
623
        (extension_to_language): Likewise.
 
624
        * Makefile.am (noinst_HEADERS): Add read-stringtable.h,
 
625
        write-stringtable.h, x-stringtable.h.
 
626
        (COMMON_SOURCE): Add read-stringtable.c.
 
627
        (libgettextsrc_la_SOURCES): Add write-stringtable.c.
 
628
        * Makefile.msvc (OBJECTS): Add read-stringtable.obj,
 
629
        write-stringtable.obj.
 
630
        (read-stringtable.obj, write-stringtable.obj): New rules.
 
631
        * Makefile.vms (OBJECTS): Add read-stringtable.obj,
 
632
        write-stringtable.obj.
 
633
        (read-stringtable.obj, write-stringtable.obj): New rules.
 
634
        * FILES: Update.
 
635
 
 
636
2003-10-21  Bruno Haible  <bruno@clisp.org>
 
637
 
 
638
        * hostname.c (xgethostname): Add support for native Woe32 API.
 
639
 
 
640
2003-10-21  Bruno Haible  <bruno@clisp.org>
 
641
 
 
642
        * message.c (message_list_search): Avoid casting a pointer to a local
 
643
        variable; it violated strict aliasing.
 
644
 
 
645
2003-10-21  Bruno Haible  <bruno@clisp.org>
 
646
 
 
647
        * write-java.c (mkdir): Redefine on mingw.
 
648
 
 
649
2003-10-12  Bruno Haible  <bruno@clisp.org>
 
650
 
 
651
        Improved ObjectiveC support.
 
652
        * x-c.h (extract_objc): New declaration.
 
653
        (SCANNERS_C): For ObjectiveC, use extract_objc.
 
654
        * x-c.c (objc_extensions): New variable.
 
655
        (enum token_type_ty): New item token_type_objc_special.
 
656
        (phase5_get): Recognize '@' for ObjectiveC.
 
657
        (phase8b_get, phase8b_unget): New functions. Handle
 
658
        token_type_white_space and token_type_eoln here instead of in x_c_lex.
 
659
        (phase8c_get, phase8c_unget): New functions.
 
660
        (phase8_get): Rely on phase8c, not phase8a. No more need to care about
 
661
        token_type_white_space and token_type_eoln.
 
662
        (x_c_lex): Drop handling of token_type_white_space and token_type_eoln.
 
663
        (extract_whole_file): Renamed from extract_c.
 
664
        (extract_c, extract_objc): New functions.
 
665
 
 
666
2003-10-20  Bruno Haible  <bruno@clisp.org>
 
667
 
 
668
        * x-java.c (phase3_getc): Fix typo: Use phase2_ungetc, not phase2_getc.
 
669
 
 
670
2003-10-20  Bruno Haible  <bruno@clisp.org>
 
671
 
 
672
        Portability to AIX with cc.
 
673
        * xgettext.h (struct flag_context_ty): Define the bitfields of type
 
674
        'unsigned int'.
 
675
 
 
676
2003-10-20  Bruno Haible  <bruno@clisp.org>
 
677
 
 
678
        Portability to Solaris with cc.
 
679
        * x-java.c (string_buffer_append): Avoid aggregate initializer
 
680
        containing non-constant expressions.
 
681
        * xgettext.c (flag_context_list_iterator): Likewise.
 
682
        (language_to_extractor): Likewise.
 
683
 
 
684
2003-10-11  Bruno Haible  <bruno@clisp.org>
 
685
 
 
686
        * xgettext.c (main): Drop suffix ".in" from input file name, if
 
687
        present, before looking at the file extension.
 
688
 
 
689
2003-10-09  Bruno Haible  <bruno@clisp.org>
 
690
 
 
691
        * format-awk.c: Include xalloc.h instead of xmalloc.h.
 
692
        * format-c.c: Likewise.
 
693
        * format-elisp.c: Likewise.
 
694
        * format-gcc-internal.c: Likewise.
 
695
        * format-java.c: Likewise.
 
696
        * format-librep.c: Likewise.
 
697
        * format-lisp.c: Likewise.
 
698
        * format-pascal.c: Likewise.
 
699
        * format-perl.c: Likewise.
 
700
        * format-perl-brace.c: Likewise.
 
701
        * format-php.c: Likewise.
 
702
        * format-python.c: Likewise.
 
703
        * format-sh.c: Likewise.
 
704
        * format-tcl.c: Likewise.
 
705
        * format-ycp.c: Likewise.
 
706
        * gettext-po.c: Likewise.
 
707
        * hostname.c: Likewise.
 
708
        * message.c: Likewise.
 
709
        * msgexec.c: Likewise.
 
710
        * msgfilter.c: Likewise.
 
711
        * msgfmt.c: Likewise.
 
712
        * msggrep.c: Likewise.
 
713
        * msginit.c: Likewise.
 
714
        * msgl-cat.c: Likewise.
 
715
        * msgl-english.c: Likewise.
 
716
        * msgl-iconv.c: Likewise.
 
717
        * msgmerge.c: Likewise.
 
718
        * open-po.c: Likewise.
 
719
        * po-gram-gen.y: Likewise.
 
720
        * po-hash-gen.y: Likewise.
 
721
        * po-lex.c: Likewise.
 
722
        * read-mo.c: Likewise.
 
723
        * read-po-abstract.c: Likewise.
 
724
        * read-po.c: Likewise.
 
725
        * read-properties.c: Likewise.
 
726
        * str-list.c: Likewise.
 
727
        * write-java.c: Likewise.
 
728
        * write-mo.c: Likewise.
 
729
        * write-po.c: Likewise.
 
730
        * write-properties.c: Likewise.
 
731
        * write-tcl.c: Likewise.
 
732
        * x-awk.c: Likewise.
 
733
        * x-c.c: Likewise.
 
734
        * x-elisp.c: Likewise.
 
735
        * x-glade.c: Likewise.
 
736
        * x-java.c: Likewise.
 
737
        * x-librep.c: Likewise.
 
738
        * x-lisp.c: Likewise.
 
739
        * x-perl.c: Likewise.
 
740
        * x-php.c: Likewise.
 
741
        * x-po.c: Likewise.
 
742
        * x-python.c: Likewise.
 
743
        * x-rst.c: Likewise.
 
744
        * x-sh.c: Likewise.
 
745
        * x-smalltalk.c: Likewise.
 
746
        * x-tcl.c: Likewise.
 
747
        * x-ycp.c: Likewise.
 
748
        * xgettext.c: Likewise.
 
749
 
 
750
2003-10-07  Bruno Haible  <bruno@clisp.org>
 
751
 
 
752
        More reliable subprocess cleanup.
 
753
        * msgexec.c (process_string): Pass slave_process = true to
 
754
        create_pipe_out() and wait_subprocess().
 
755
        * msgfilter.c (process_string): Pass slave_process = true to
 
756
        create_pipe_bidi() and wait_subprocess().
 
757
        * msggrep.c (is_string_selected): Pass slave_process = true to
 
758
        create_pipe_out() and wait_subprocess().
 
759
        * msginit.c (project_id, project_id_version, get_user_email,
 
760
        language_team_address): Pass slave_process = true to create_pipe_in()
 
761
        and wait_subprocess().
 
762
        * read-java.c (execute_and_read_po_output): Likewise.
 
763
        * read-tcl.c (msgdomain_read_tcl): Likewise.
 
764
        * urlget.c (execute_it, fetch): Pass slave_process = true to execute().
 
765
 
 
766
2003-10-05  Bruno Haible  <bruno@clisp.org>
 
767
 
 
768
        * write-java.c: Include fatal-signal.h, not signal.h.
 
769
        (uninstall_handlers): Remove function.
 
770
        (cleanup): Remove signal argument. Don't execute the signal's default
 
771
        action; leave that to the caller.
 
772
        (install_handlers, init_signal_set, block, unblock): Remove functions.
 
773
        (msgdomain_write_java): Invoke at_fatal_signal instead of
 
774
        install_handlers/uninstall_handlers. Invoke [un]block_fatal_signals
 
775
        instead of [un]block.
 
776
 
 
777
2003-10-05  Bruno Haible  <bruno@clisp.org>
 
778
 
 
779
        * xgettext.c (substring_match): Remove variable.
 
780
        (long_options): Remove --keyword-substring option.
 
781
        (main): Remove handling of --keyword-substring option.
 
782
 
 
783
2003-10-05  Bruno Haible  <bruno@clisp.org>
 
784
 
 
785
        * message.h (enum is_format): New item yes_according_to_context.
 
786
        * message.c (possible_format_p): Handle also yes_according_to_context.
 
787
        * write-po.c (make_format_description_string): Likewise.
 
788
 
 
789
        * xgettext.h (struct flag_context_ty): New type.
 
790
        (null_context, passthrough_context): New declarations.
 
791
        (inherited_context): New declaration.
 
792
        (struct flag_context_list_ty): New type.
 
793
        (struct flag_context_list_iterator_ty): New type.
 
794
        (null_context_list_iterator, passthrough_context_list_iterator): New
 
795
        declarations.
 
796
        (flag_context_list_iterator): New declaration.
 
797
        (flag_context_list_iterator_advance): New declaration.
 
798
        (flag_context_list_table_ty): New type.
 
799
        (flag_context_list_table_lookup): New declaration.
 
800
        (xgettext_record_flag): New declaration.
 
801
        (remember_a_message, remember_a_message_plural): Add context argument.
 
802
        * xgettext.c: Include alloca.h.
 
803
        (flag_table_c, flag_table_gcc_internal, flag_table_sh,
 
804
        flag_table_python, flag_table_lisp, flag_table_elisp,
 
805
        flag_table_librep, flag_table_java, flag_table_awk, flag_table_ycp,
 
806
        flag_table_tcl, flag_table_perl, flag_table_php): New variables.
 
807
        (long_options): Add option --flag.
 
808
        (extractor_func): Add argument flag_table.
 
809
        (struct extractor_ty): New type.
 
810
        (main): Use type 'extractor_ty' instead of 'extractor_func'.
 
811
        Invoke init_flag_table_c(), init_flag_table_gcc_internal(),
 
812
        init_flag_table_sh(), init_flag_table_python(), init_flag_table_lisp(),
 
813
        init_flag_table_elisp(), init_flag_table_librep(),
 
814
        init_flag_table_java(), init_flag_table_awk(), init_flag_table_ycp(),
 
815
        init_flag_table_tcl(), init_flag_table_perl(), init_flag_table_php().
 
816
        Implement option --flag.
 
817
        (usage): Rename a section to "Language specific options". Document
 
818
        the languages to which --extract-all, --keyword, --trigraphs are
 
819
        applicable. Document option --flag.
 
820
        (null_context): New variable.
 
821
        (passthrough_context): New variable.
 
822
        (inherited_context): New function.
 
823
        (null_context_list_iterator): New variable.
 
824
        (passthrough_context_circular_list, passthrough_context_list_iterator):
 
825
        New variables.
 
826
        (flag_context_list_iterator): New function.
 
827
        (flag_context_list_iterator_advance): New function.
 
828
        (flag_context_list_table_lookup): New function.
 
829
        (xgettext_record_flag): New function.
 
830
        (extract_from_file): Change argument type to 'extractor_ty' instead of
 
831
        'extractor_func'. Set current_formatstring_parser{1,2} before invoking
 
832
        the extractor.
 
833
        (set_format_flags_from_context): New function.
 
834
        (remember_a_message): Add context argument. Set some *-format flag if
 
835
        the context specifies it.
 
836
        (remember_a_message_plural): Likewise.
 
837
        (language_to_extractor): Change return type to 'extractor_ty' instead
 
838
        of 'extractor_func'.
 
839
 
 
840
        * x-awk.h (SCANNERS_AWK): Refer to flag_table_awk.
 
841
        (extract_awk): Add argument flag_table.
 
842
        (init_flag_table_awk): New declaration.
 
843
        * x-awk.c (init_flag_table_awk): New function.
 
844
        (enum token_type_ty): New enum item token_type_semicolon.
 
845
        (x_awk_lex): Recognize semicolon.
 
846
        (flag_context_list_table): New variable.
 
847
        (extract_parenthesized): Add arguments outer_context, context_iter.
 
848
        Implement context handling depending on symbol before '('. Also
 
849
        recognize argument lists that start without '(', but only up to the
 
850
        next semicolon.
 
851
        (extract_awk): Add argument flag_table. Initialize
 
852
        flag_context_list_table.
 
853
 
 
854
        * x-c.h (SCANNERS_C): Refer to flag_table_c, flag_table_gcc_internal.
 
855
        (extract_c): Add argument flag_table.
 
856
        (init_flag_table_c): New declaration.
 
857
        (init_flag_table_gcc_internal): New declaration.
 
858
        * x-c.c (init_flag_table_c): New function.
 
859
        (init_flag_table_gcc_internal): New function.
 
860
        (enum xgettext_token_type_ty): New item xgettext_token_type_other.
 
861
        (x_c_lex): For token_type_name, put the string into the resulting
 
862
        token instead of freeing it. Return token type
 
863
        xgettext_token_type_other instead of xgettext_token_type_symbol in
 
864
        some cases.
 
865
        (flag_context_list_table): New variable.
 
866
        (extract_parenthesized): Add arguments outer_context, context_iter.
 
867
        Implement context handling depending on symbol before '('.
 
868
        (extract_c): Add argument flag_table. Initialize
 
869
        flag_context_list_table.
 
870
 
 
871
        * x-elisp.h (SCANNERS_ELISP): Refer to flag_table_elisp.
 
872
        (extract_elisp): Add argument flag_table.
 
873
        (init_flag_table_elisp): New declaration.
 
874
        * x-elisp.c (init_flag_table_elisp): New function.
 
875
        (flag_context_list_table): New variable.
 
876
        (read_object): Add argument outer_context. Implement context handling
 
877
        depending on first symbol after '('.
 
878
        (extract_elisp): Add argument flag_table. Initialize
 
879
        flag_context_list_table.
 
880
 
 
881
        * x-glade.h (SCANNERS_GLADE): Update.
 
882
        (extract_glade): Add argument flag_table.
 
883
        * x-glade.c (start_element_handler, end_element_handler): Pass null
 
884
        context to remember_a_message.
 
885
        (extract_glade): Add argument flag_table.
 
886
 
 
887
        * x-java.h (SCANNERS_JAVA): Refer to flag_table_java.
 
888
        (extract_java): Add argument flag_table.
 
889
        (init_flag_table_java): New declaration.
 
890
        * x-java.c (init_flag_table_java): New function.
 
891
        (flag_context_list_table): New variable.
 
892
        (extract_parenthesized): Add arguments outer_context, context_iter.
 
893
        Implement context handling depending on symbol before '('.
 
894
        (extract_java): Add argument flag_table. Initialize
 
895
        flag_context_list_table.
 
896
 
 
897
        * x-librep.h (SCANNERS_ELISP): Refer to flag_table_librep.
 
898
        (extract_librep): Add argument flag_table.
 
899
        (init_flag_table_librep): New declaration.
 
900
        * x-librep.c (init_flag_table_librep): New function.
 
901
        (flag_context_list_table): New variable.
 
902
        (read_object): Add argument outer_context. Implement context handling
 
903
        depending on first symbol after '('.
 
904
        (extract_librep): Add argument flag_table. Initialize
 
905
        flag_context_list_table.
 
906
 
 
907
        * x-lisp.h (SCANNERS_LISP): Refer to flag_table_lisp.
 
908
        (extract_lisp): Add argument flag_table.
 
909
        (init_flag_table_lisp): New declaration.
 
910
        * x-lisp.c (init_flag_table_lisp): New function.
 
911
        (flag_context_list_table): New variable.
 
912
        (read_object): Add argument outer_context. Implement context handling
 
913
        depending on first symbol after '('.
 
914
        (extract_lisp): Add argument flag_table. Initialize
 
915
        flag_context_list_table.
 
916
 
 
917
        * x-perl.h (SCANNERS_PERL): Refer to flag_table_perl.
 
918
        (extract_perl): Add argument flag_table.
 
919
        (init_flag_table_perl): New declaration.
 
920
        * x-perl.c (init_flag_table_java): New function.
 
921
        (flag_context_list_table): New variable.
 
922
        (extract_variable): Update. Implement context handling depending on
 
923
        symbol before '{'...'}'.
 
924
        (interpolate_keywords): Implement context handling depending on symbol
 
925
        before '->' or '{'...'}'.
 
926
        (extract_balanced): Add arguments outer_context, context_iter.
 
927
        Implement context handling depending on symbol before '('. Also
 
928
        recognize argument lists that start without '('.
 
929
        (extract_perl): Add argument flag_table. Initialize
 
930
        flag_context_list_table.
 
931
 
 
932
        * x-php.h (SCANNERS_PHP): Refer to flag_table_php.
 
933
        (extract_php): Add argument flag_table.
 
934
        (init_flag_table_php): New declaration.
 
935
        * x-php.c (init_flag_table_php): New function.
 
936
        (flag_context_list_table): New variable.
 
937
        (extract_parenthesized): Add arguments outer_context, context_iter.
 
938
        Implement context handling depending on symbol before '('.
 
939
        (extract_php): Add argument flag_table. Initialize
 
940
        flag_context_list_table.
 
941
 
 
942
        * x-po.h (SCANNERS_PO): Update.
 
943
        (extract_po): Add argument flag_table.
 
944
        * x-properties.h (SCANNERS_PROPERTIES): Update.
 
945
        (extract_properties): Add argument flag_table.
 
946
        * x-po.c (extract_po): Add argument flag_table.
 
947
        (extract_properties): Add argument flag_table.
 
948
 
 
949
        * x-python.h (SCANNERS_PYTHON): Refer to flag_table_python.
 
950
        (extract_python): Add argument flag_table.
 
951
        (init_flag_table_python): New declaration.
 
952
        * x-python.c (init_flag_table_python): New function.
 
953
        (flag_context_list_table): New variable.
 
954
        (extract_parenthesized): Add arguments outer_context, context_iter.
 
955
        Implement context handling depending on symbol before '('.
 
956
        (extract_python): Add argument flag_table. Initialize
 
957
        flag_context_list_table.
 
958
 
 
959
        * x-rst.h (SCANNERS_RST): Update.
 
960
        (extract_rst): Add argument flag_table.
 
961
        * x-rst.c (extract_rst): Add argument flag_table.
 
962
 
 
963
        * x-sh.h (SCANNERS_SH): Refer to flag_table_sh.
 
964
        (extract_sh): Add argument flag_table.
 
965
        (init_flag_table_sh): New declaration.
 
966
        * x-sh.c (init_flag_table_sh): New function.
 
967
        (flag_context_list_table): New variable.
 
968
        (read_word): Add context argument.
 
969
        (read_command): Add outer_context argument. Implement context handling
 
970
        depending on first symbol of command.
 
971
        (read_command_list): Add outer_context argument.
 
972
        (extract_sh): Add argument flag_table. Initialize
 
973
        flag_context_list_table.
 
974
 
 
975
        * x-smalltalk.h (SCANNERS_SMALLTALK): Update.
 
976
        (extract_smalltalk): Add argument flag_table.
 
977
        * x-smalltalk.c (extract_smalltalk): Add argument flag_table.
 
978
 
 
979
        * x-tcl.h (SCANNERS_TCL): Refer to flag_table_tcl.
 
980
        (extract_tcl): Add argument flag_table.
 
981
        (init_flag_table_tcl): New declaration.
 
982
        * x-tcl.c (init_flag_table_tcl): New function.
 
983
        (flag_context_list_table): New variable.
 
984
        (accumulate_word): Add context argument.
 
985
        (read_word): Add context argument.
 
986
        (read_command): Add outer_context argument. Implement context handling
 
987
        depending on first symbol of command.
 
988
        (read_command_list): Add outer_context argument.
 
989
        (extract_tcl): Add argument flag_table. Initialize
 
990
        flag_context_list_table.
 
991
 
 
992
        * x-ycp.h (SCANNERS_YCP): Refer to flag_table_ycp.
 
993
        (extract_ycp): Add argument flag_table.
 
994
        (init_flag_table_ycp): New declaration.
 
995
        * x-ycp.c (init_flag_table_ycp): New function.
 
996
        (flag_context_list_table): New variable.
 
997
        (extract_parenthesized): New function, split off from extract_ycp.
 
998
        Implement context handling depending on symbol before '('.
 
999
        (extract_ycp): Add argument flag_table. Initialize
 
1000
        flag_context_list_table. Call extract_parenthesized to do the work.
 
1001
 
 
1002
        * po-lex.c (mbfile_getc, control_sequence): Remove explicit marking of
 
1003
        strings as c-format, now done by xgettext.
 
1004
 
 
1005
2003-09-23  Bruno Haible  <bruno@clisp.org>
 
1006
 
 
1007
        * x-awk.c (extract_parenthesized): Remove optimization of the
 
1008
        extract_all case.
 
1009
        * x-c.c (extract_parenthesized): Likewise.
 
1010
        * x-elisp.c (read_object): Likewise.
 
1011
        * x-librep.c (read_object): Likewise.
 
1012
        * x-lisp.c (read_object): Likewise.
 
1013
        * x-perl.c (x_perl_prelex, extract_balanced): Likewise.
 
1014
        * x-php.c (extract_parenthesized): Likewise.
 
1015
        * x-python.c (extract_parenthesized): Likewise.
 
1016
        * x-sh.c (read_command): Likewise.
 
1017
 
 
1018
2003-10-08  Bruno Haible  <bruno@clisp.org>
 
1019
 
 
1020
        * msgmerge.c (main): Make option -N work.
 
1021
        Reported by Liu Garfield <jackliu9999@hotmail.com>.
 
1022
 
 
1023
2003-10-04  Bruno Haible  <bruno@clisp.org>
 
1024
 
 
1025
        New Java backend.
 
1026
        * x-java.c: New file.
 
1027
        * x-java.l: Remove file.
 
1028
        * Makefile.am (xgettext_SOURCES): Add x-java.c, remove x-java.l.
 
1029
        (x-java.c): Remove rule.
 
1030
        * FILES: Update.
 
1031
 
 
1032
2003-09-22  Bruno Haible  <bruno@clisp.org>
 
1033
 
 
1034
        * x-glade.c (start_element_handler): Implement extract_all behaviour.
 
1035
 
 
1036
2003-10-04  Bruno Haible  <bruno@clisp.org>
 
1037
 
 
1038
        * x-glade.c (do_extract_glade): Initialize stack_depth.
 
1039
        * x-perl.c (extract_perl): Initialize linesize and linepos.
 
1040
 
 
1041
        * x-python.c (phase2_getc): Set last_comment_line.
 
1042
        (phase5_get): Set last_non_comment_line.
 
1043
 
 
1044
2003-10-04  Bruno Haible  <bruno@clisp.org>
 
1045
 
 
1046
        * x-glade.c: Don't include msgl-ascii.h and msgl-iconv.h.
 
1047
        * x-python.c: Likewise.
 
1048
        * x-tcl.c: Likewise.
 
1049
 
 
1050
2003-10-06  Guido Flohr  <guido@imperia.net>
 
1051
            Bruno Haible  <bruno@clisp.org>
 
1052
 
 
1053
        * x-perl.c (enum symbol_type_ty): New enum.
 
1054
        (struct token_ty): Rename field string_type to sub_type and change its
 
1055
        type to 'int'.
 
1056
        (extract_quotelike_pass3, interpolate_keywords): Update.
 
1057
        (x_perl_prelex): Set sub_type also for symbol tokens.
 
1058
        (x_perl_lex): Special handling of prototype argument lists.
 
1059
        Reported by Crispin Flowerday <cflowerday@zeus.com>.
 
1060
 
 
1061
2003-09-22  Bruno Haible  <bruno@clisp.org>
 
1062
 
 
1063
        * x-sh.c (read_word): Warn about $"...".
 
1064
 
 
1065
2003-09-18  Bruno Haible  <bruno@clisp.org>
 
1066
 
 
1067
        * gettext-po.h (po_file_domain_header, po_header_field,
 
1068
        po_message_is_obsolete, po_message_is_fuzzy, po_message_is_format): New
 
1069
        declarations.
 
1070
        * gettext-po.c (po_file_domain_header, po_header_field,
 
1071
        po_message_is_obsolete, po_message_is_fuzzy, po_message_is_format): New
 
1072
        functions.
 
1073
        * Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 1:0:1.
 
1074
 
 
1075
2003-09-14  Bruno Haible  <bruno@clisp.org>
 
1076
 
 
1077
        * plural-count.c: Include plural-count.h.
 
1078
        * x-po.c: Include x-properties.h.
 
1079
        * x-java.l (append_strings): Change argument type to 'const char *'.
 
1080
 
 
1081
2003-09-14  Bruno Haible  <bruno@clisp.org>
 
1082
 
 
1083
        * msgfmt.c (check_plural_eval): Mark some strings as c-format.
 
1084
        (msgfmt_add_message): Make static.
 
1085
        * po-lex.c (mbfile_getc, control_sequence): Mark some strings as
 
1086
        c-format.
 
1087
 
 
1088
2003-09-18  Bruno Haible  <bruno@clisp.org>
 
1089
 
 
1090
        * FILES: Update.
 
1091
 
 
1092
2003-09-14  Bruno Haible  <bruno@clisp.org>
 
1093
 
 
1094
        More reliable checking for read errors.
 
1095
        * po-lex.c (mbfile_getc): Diagnose read errors also in the middle of
 
1096
        multibyte characters.
 
1097
        (lex_getc): Diagnose read errors also right after backslash.
 
1098
        * x-rst.c (extract_rst): Diagnose read errors also inside ConstName
 
1099
        and immediately after #.
 
1100
 
 
1101
2003-09-14  Bruno Haible  <bruno@clisp.org>
 
1102
 
 
1103
        * write-mo.c: Include fwriterror.h.
 
1104
        (msgdomain_write_mo): Use fwriteerror, to get right errno value in
 
1105
        error message about write error.
 
1106
        * write-po.c: Include fwriterror.h.
 
1107
        (msgdomain_list_print): Use fwriteerror, to get right errno value in
 
1108
        error message about write error.
 
1109
        * write-java.c: Include fwriterror.h.
 
1110
        (msgdomain_write_java): Use fwriteerror, to get right errno value in
 
1111
        error message about write error.
 
1112
        * write-tcl.c: Include fwriterror.h.
 
1113
        (msgdomain_write_tcl): Use fwriteerror, to get right errno value in
 
1114
        error message about write error.
 
1115
 
 
1116
2003-09-18  Bruno Haible  <bruno@clisp.org>
 
1117
 
 
1118
        * xgettext.c (from_current_source_encoding): Use multiline_error,
 
1119
        for a prettier error message.
 
1120
 
 
1121
        * x-perl.c (extract_quotelike_pass1): Store counter_delim instead of
 
1122
        EOF as delimiter, to avoid error during from_current_source_encoding.
 
1123
        Reported by Crispin Flowerday <cflowerday@zeus.com>.
 
1124
 
 
1125
2003-09-13  Bruno Haible  <bruno@clisp.org>
 
1126
 
 
1127
        * format-sh.c (INVALID_SHELL_SYNTAX,
 
1128
        INVALID_CONTEXT_DEPENDENT_VARIABLE): New macros.
 
1129
        (format_parse): Reject constructs like ${variable-default} and $?.
 
1130
 
 
1131
2003-09-13  Bruno Haible  <bruno@clisp.org>
 
1132
 
 
1133
        Fix behaviour of "<program> --help > /dev/full".
 
1134
        * hostname.c: Include closeout.h.
 
1135
        (main): Register close_stdout for execution at program exit.
 
1136
        * msgattrib.c: Include closeout.h.
 
1137
        (main): Register close_stdout for execution at program exit.
 
1138
        * msgcat.c: Include closeout.h.
 
1139
        (main): Register close_stdout for execution at program exit.
 
1140
        * msgcmp.c: Include closeout.h.
 
1141
        (main): Register close_stdout for execution at program exit.
 
1142
        * msgcomm.c: Include closeout.h.
 
1143
        (main): Register close_stdout for execution at program exit.
 
1144
        * msgconv.c: Include closeout.h.
 
1145
        (main): Register close_stdout for execution at program exit.
 
1146
        * msgen.c: Include closeout.h.
 
1147
        (main): Register close_stdout for execution at program exit.
 
1148
        * msgexec.c: Include closeout.h.
 
1149
        (main): Register close_stdout for execution at program exit.
 
1150
        * msgfilter.c: Include closeout.h.
 
1151
        (main): Register close_stdout for execution at program exit.
 
1152
        * msgfmt.c: Include closeout.h.
 
1153
        (main): Register close_stdout for execution at program exit.
 
1154
        * msggrep.c: Include closeout.h.
 
1155
        (main): Register close_stdout for execution at program exit.
 
1156
        * msginit.c: Include closeout.h.
 
1157
        (main): Register close_stdout for execution at program exit.
 
1158
        * msgmerge.c: Include closeout.h.
 
1159
        (main): Register close_stdout for execution at program exit.
 
1160
        * msgunfmt.c: Include closeout.h.
 
1161
        (main): Register close_stdout for execution at program exit.
 
1162
        * msguniq.c: Include closeout.h.
 
1163
        (main): Register close_stdout for execution at program exit.
 
1164
        * urlget.c: Include closeout.h.
 
1165
        (main): Register close_stdout for execution at program exit.
 
1166
        * xgettext.c: Include closeout.h.
 
1167
        (main): Register close_stdout for execution at program exit.
 
1168
        * write-po.c (msgdomain_list_print): Don't fclose (stdout) here.
 
1169
 
 
1170
2003-09-11  Bruno Haible  <bruno@clisp.org>
 
1171
 
 
1172
        * po-lex.c (mbfile_getc): Handle unexpected return value of
 
1173
        u8_mbtouc(). Reported by Jochen Hein <jochen@jochen.org>.
 
1174
 
 
1175
2003-09-09  Bruno Haible  <bruno@clisp.org>
 
1176
 
 
1177
        * read-properties.c (phase4_getuc): Cast line_number to 'unsigned long'
 
1178
        before outputting it.
 
1179
 
 
1180
2003-09-09  Bruno Haible  <bruno@clisp.org>
 
1181
 
 
1182
        * po-lex.c: Test HAVE_DECL_GETC_UNLOCKED instead of HAVE_GETC_UNLOCKED.
 
1183
        * write-po.c: Test HAVE_DECL_PUTC_UNLOCKED instead of
 
1184
        HAVE_PUTC_UNLOCKED.
 
1185
 
 
1186
2003-09-09  Guido Flohr  <guido@imperia.net>
 
1187
 
 
1188
        * x-perl.c (extract_quotelike_pass3): Change \l handling to no longer
 
1189
        eat up non-uppercase characters; likewise for \u. Also make \l and \u
 
1190
        work on characters written using hex or octal escape sequence. Fix \Q
 
1191
        handling. With option --extract-all, avoid "invalid variable
 
1192
        interpolation" warnings.
 
1193
        (x_perl_prelex): With option --extract-all, keep variables inside
 
1194
        double-quoted strings untouched.
 
1195
 
 
1196
2003-09-03  Bruno Haible  <bruno@clisp.org>
 
1197
 
 
1198
        * x-sh.h: New file.
 
1199
        * x-sh.c: New file.
 
1200
        * xgettext.c: Include x-sh.h.
 
1201
        (main): Call x_sh_extract_all, x_sh_keyword.
 
1202
        (usage): Mention Shell language.
 
1203
        (language_to_extractor): Add Shell rule.
 
1204
        (extension_to_language): Add Shell rule.
 
1205
        * Makefile.am (noinst_HEADERS): Add x-sh.h.
 
1206
        (xgettext_SOURCES): Add x-sh.c.
 
1207
        * Makefile.msvc (xgettext_OBJECTS): Add x-sh.obj.
 
1208
        (x-sh.obj): New rule.
 
1209
        * Makefile.vms (xgettext_OBJECTS): Add x-sh.obj.
 
1210
        (x-sh.obj): New rule.
 
1211
 
 
1212
2003-08-31  Bruno Haible  <bruno@clisp.org>
 
1213
 
 
1214
        * format-sh.c: New file.
 
1215
        * message.h (format_sh): New enum value.
 
1216
        (NFORMATS): Increment.
 
1217
        * format.h (formatstring_sh): New declaration.
 
1218
        * format.c (formatstring_parsers): Add entry for sh.
 
1219
        * message.c (format_language, format_language_pretty): Likewise.
 
1220
        * Makefile.am (FORMAT_SOURCE): Add format-sh.c.
 
1221
        * Makefile.msvc (OBJECTS): Add format-sh.obj.
 
1222
        (format-sh.obj): New rule.
 
1223
        * Makefile.vms (OBJECTS): Add format-sh.obj.
 
1224
        (format-sh.obj): New rule.
 
1225
 
 
1226
2003-08-31  Bruno Haible  <bruno@clisp.org>
 
1227
 
 
1228
        * format-gcc-internal.c (isdigit): Remove unused macro.
 
1229
        * format-perl-brace.c (isdigit): Likewise.
 
1230
 
 
1231
2003-09-01  Guido Flohr  <guido@imperia.net>
 
1232
 
 
1233
        * x-perl.c (extract_balanced): Access the global last_token.
 
1234
        Initialize last_token and prefer_division_over_regexp here. 
 
1235
        (extract_perl): Not here.
 
1236
 
 
1237
2003-08-29  Bruno Haible  <bruno@clisp.org>
 
1238
 
 
1239
        * x-perl.c: Include getline.h.
 
1240
 
 
1241
2003-08-24  Bruno Haible  <bruno@clisp.org>
 
1242
 
 
1243
        * Makefile.msvc (format.obj, msgmerge.obj, xgettext.obj, msgattrib.obj,
 
1244
        msgcat.obj, msgcomm.obj, msgconv.obj, msgen.obj, msgfilter.obj,
 
1245
        msggrep.obj, msguniq.obj): Compile these in C++ mode. This works around
 
1246
        the "non-constant initializer" error that we get for addresses of
 
1247
        variables in DLLs in C mode.
 
1248
 
 
1249
2003-08-24  Bruno Haible  <bruno@clisp.org>
 
1250
 
 
1251
        * msgfilter.c (process_message): Cast xrealloc() result.
 
1252
 
 
1253
2003-08-24  Bruno Haible  <bruno@clisp.org>
 
1254
 
 
1255
        * msgfilter.c: On Windows, include <io.h> instead of <unistd.h>.
 
1256
        * msggrep.c: Likewise.
 
1257
 
 
1258
2003-08-24  Bruno Haible  <bruno@clisp.org>
 
1259
 
 
1260
        * plural-count.h: New file.
 
1261
        * plural-count.c: New file, extracted from msgmerge.c.
 
1262
        * msgmerge.c: Include plural-count.h instead of plural-exp.h.
 
1263
        (match_domain): Use function get_plural_count().
 
1264
        * Makefile.am (noinst_HEADERS): Add plural-count.h.
 
1265
        (msgmerge_SOURCES): Add plural-count.c.
 
1266
        * Makefile.msvc (msgmerge_OBJECTS): Add plural-count.obj.
 
1267
        (plural-count.obj): New rule.
 
1268
        * Makefile.vms (msgmerge_OBJECTS): Add plural-count.obj.
 
1269
        (plural-count.obj): New rule.
 
1270
 
 
1271
2003-08-24  Bruno Haible  <bruno@clisp.org>
 
1272
 
 
1273
        Support for building DLLs on Windows.
 
1274
        * format.h (formatstring_c, formatstring_python, formatstring_lisp,
 
1275
        formatstring_elisp, formatstring_librep, formatstring_smalltalk,
 
1276
        formatstring_java, formatstring_awk, formatstring_pascal,
 
1277
        formatstring_ycp, formatstring_tcl, formatstring_perl,
 
1278
        formatstring_perl_brace, formatstring_php, formatstring_gcc_internal,
 
1279
        formatstring_parsers): Add DLL_VARIABLE attribute.
 
1280
        * message.h (format_language, format_language_pretty): Likewise.
 
1281
        * msgl-cat.h (more_than, less_than, use_first, msgcomm_mode,
 
1282
        omit_header): Likewise.
 
1283
        * plural-table.h (plural_table, plural_table_size): Likewise.
 
1284
        * po-charset.h (po_charset_ascii, po_charset_utf8, po_lex_charset,
 
1285
        po_lex_iconv, po_lex_weird_cjk): Likewise.
 
1286
        * po-lex.h (gram_pos, gram_pos_column, gram_max_allowed_errors,
 
1287
        pass_obsolete_entries): Likewise.
 
1288
        * read-po.h (line_comment, allow_duplicates, input_syntax): Likewise.
 
1289
        * write-mo.h (alignment, no_hash_table): Likewise.
 
1290
        * Makefile.am (po-gram-gen2.h): Likewise.
 
1291
 
 
1292
2003-08-24  Bruno Haible  <bruno@clisp.org>
 
1293
 
 
1294
        * Makefile.msvc (gettext-po.obj, gettextpo.lib, gettextpo.res): New
 
1295
        rules.
 
1296
        (all): Depend on gettextpo.lib.
 
1297
        (install, installdirs, uninstall): Install/uninstall gettext-po.h,
 
1298
        gettextpo.dll and gettextpo.lib.
 
1299
        * Makefile.vms (gettext-po.obj, gettextpo.olb): New rules.
 
1300
        (all): Depend on gettextpo.olb.
 
1301
        (install, installdirs, uninstall): Install/uninstall gettext-po.h,
 
1302
        gettextpo.olb.
 
1303
 
 
1304
2003-08-24  Bruno Haible  <bruno@clisp.org>
 
1305
 
 
1306
        * dir-list.h: Make this file includable in C++ mode: add extern "C".
 
1307
        * file-list.h: Likewise.
 
1308
        * format.h: Likewise.
 
1309
        * message.h: Likewise.
 
1310
        * msgl-ascii.h: Likewise.
 
1311
        * msgl-cat.h: Likewise.
 
1312
        * msgl-charset.h: Likewise.
 
1313
        * msgl-english.h: Likewise.
 
1314
        * msgl-equal.h: Likewise.
 
1315
        * msgl-iconv.h: Likewise.
 
1316
        * open-po.h: Likewise.
 
1317
        * po-charset.h: Likewise.
 
1318
        * po-lex.h: Likewise.
 
1319
        * po-time.h: Likewise.
 
1320
        * read-po-abstract.h: Likewise.
 
1321
        * str-list.h: Likewise.
 
1322
        * write-po.h: Likewise.
 
1323
        * xgettext.h: Likewise.
 
1324
        * read-po.h: Likewise.
 
1325
        (this): Redefine to a different symbol.
 
1326
        * xgettext.c: Add extern "C" around all "x-*.h" includes.
 
1327
 
 
1328
2003-08-22  Bruno Haible  <bruno@clisp.org>
 
1329
 
 
1330
        * format-awk.c: Include error-progname.h instead of progname.h.
 
1331
        * format-c.c: Likewise.
 
1332
        * format-elisp.c: Likewise.
 
1333
        * format-gcc-internal.c: Likewise.
 
1334
        * format-java.c: Likewise.
 
1335
        * format-librep.c: Likewise.
 
1336
        * format-lisp.c: Likewise.
 
1337
        * format-pascal.c: Likewise.
 
1338
        * format-perl.c: Likewise.
 
1339
        * format-perl-brace.c: Likewise.
 
1340
        * format-php.c: Likewise.
 
1341
        * format-python.c: Likewise.
 
1342
        * format-tcl.c: Likewise.
 
1343
        * format-ycp.c: Likewise.
 
1344
        * po-lex.h: Likewise.
 
1345
        * read-properties.c: Likewise.
 
1346
        * write-po.c: Likewise.
 
1347
        * x-awk.c: Likewise.
 
1348
        * x-c.c: Likewise.
 
1349
        * x-perl.c: Likewise.
 
1350
        * x-python.c: Likewise.
 
1351
        * x-rst.c: Likewise.
 
1352
        * hostname.c: Include error-progname.h.
 
1353
        * msgattrib.c: Likewise.
 
1354
        * msgcat.c: Likewise.
 
1355
        * msgcmp.c: Likewise.
 
1356
        * msgcomm.c: Likewise.
 
1357
        * msgconv.c: Likewise.
 
1358
        * msgen.c: Likewise.
 
1359
        * msgexec.c: Likewise.
 
1360
        * msgfilter.c: Likewise.
 
1361
        * msgfmt.c: Likewise.
 
1362
        * msggrep.c: Likewise.
 
1363
        * msginit.c: Likewise.
 
1364
        * msgmerge.c: Likewise.
 
1365
        * msgunfmt.c: Likewise.
 
1366
        * msguniq.c: Likewise.
 
1367
        * urlget.c: Likewise.
 
1368
        * xgettext.c: Likewise.
 
1369
        * po-lex.c: Include error-progname.h and pos.h.
 
1370
 
 
1371
2003-08-15  Bruno Haible  <bruno@clisp.org>
 
1372
 
 
1373
        * msginit.c (catalogname_for_locale): Add entries for Aragonese,
 
1374
        Haitian, Sichuan Yi, Limburgish.
 
1375
        (englishname_of_language): Likewise.
 
1376
 
 
1377
2003-08-08  Bruno Haible  <bruno@clisp.org>
 
1378
 
 
1379
        * format-gcc-internal.c: New file.
 
1380
        * message.h (format_gcc_internal): New enum value.
 
1381
        (NFORMATS): Increment.
 
1382
        * format.h (formatstring_gcc_internal): New declaration.
 
1383
        * format.c (formatstring_parsers): Add entry for gcc_internal.
 
1384
        * message.c (format_language, format_language_pretty): Likewise.
 
1385
        * x-c.h (SCANNERS_C): Add an entry for GCC-source.
 
1386
        * xgettext.c (usage): Mention GCC-source language.
 
1387
        * Makefile.am (FORMAT_SOURCE): Add format-gcc-internal.c.
 
1388
        * Makefile.msvc (OBJECTS): Add format-gcc-internal.obj.
 
1389
        (format-gcc-internal.obj): New rule.
 
1390
        * Makefile.vms (OBJECTS): Add format-gcc-internal.obj.
 
1391
        (format-gcc-internal.obj): New rule.
 
1392
 
 
1393
2003-08-04  Bruno Haible  <bruno@clisp.org>
 
1394
 
 
1395
        * x-perl.c (extract_quotelike_pass3): Fix \x handling.
 
1396
        Reported by Guido Flohr.
 
1397
 
 
1398
2003-07-05  Bruno Haible  <bruno@clisp.org>
 
1399
 
 
1400
        * format-perl-brace.c: Renamed from format-perl-bracket.c. Recognize
 
1401
        braces instead of brackets.
 
1402
        * format.h (formatstring_perl_brace): Renamed from
 
1403
        formatstring_perl_bracket.
 
1404
        * format.c (formatstring_parsers): Add formatstring_perl_brace, remove
 
1405
        formatstring_perl_bracket.
 
1406
        * message.h (enum format_type): Add format_perl_brace, remove
 
1407
        format_perl_bracket.
 
1408
        * message.c (format_language, format_language_pretty): Update.
 
1409
        * x-perl.h (SCANNERS_PERL): Update.
 
1410
        * Makefile.am (FORMAT_SOURCE): Add format-perl-brace.c, remove
 
1411
        format-perl-bracket.c.
 
1412
        * Makefile.msvc (OBJECTS): Add format-perl-brace.obj, remove
 
1413
        format-perl-bracket.obj.
 
1414
        (format-perl-brace.obj): Renamed from format-perl-bracket.obj.
 
1415
        * Makefile.vms (OBJECTS): Add format-perl-brace.obj, remove
 
1416
        format-perl-bracket.obj.
 
1417
        (format-perl-brace.obj): Renamed from format-perl-bracket.obj.
 
1418
 
 
1419
2003-07-03  Bruno Haible  <bruno@clisp.org>
 
1420
 
 
1421
        Support for PHP >= 4.2.0.
 
1422
        * x-php.c (init_keywords): Add ngettext, dngettext, dcngettext to the
 
1423
        built-in keywords.
 
1424
        Reported by A. Sopicki <a.sopicki@gmx.de>.
 
1425
 
 
1426
2003-06-27  Bruno Haible  <bruno@clisp.org>
 
1427
 
 
1428
        * xgettext.h (from_current_source_encoding): New declaraction.
 
1429
        * xgettext.c (from_current_source_encoding): New function.
 
1430
        (CONVERT_STRING): Use it.
 
1431
        * x-perl.c: Include po-charset.h.
 
1432
        (get_here_document): Convert each line to UTF-8.
 
1433
        (phase2_getc): Convert each comment to UTF-8. Tell xgettext_comment_add
 
1434
        to not convert it.
 
1435
        (extract_quotelike_pass1_utf8): New function.
 
1436
        (extract_quotelike): Use extract_quotelike_pass1_utf8.
 
1437
        (extract_triple_quotelike): Likewise.
 
1438
        (extract_variable): Tell remember_a_message to not convert the string.
 
1439
        (interpolate_keywords): Likewise.
 
1440
        (extract_balanced): Tell remember_a_message, remember_a_message_plural
 
1441
        to not convert the string.
 
1442
 
 
1443
2003-06-23  Guido Flohr  <guido@imperia.net>
 
1444
 
 
1445
        * x-perl.c (extract_quotelike_pass3): Fix handling of doubled
 
1446
        backslashes in single-quoted strings.
 
1447
 
 
1448
2003-06-23  Bruno Haible  <bruno@clisp.org>
 
1449
 
 
1450
        * format-perl-bracket.c (format_check): Allow additional bracketed
 
1451
        items in the msgstr.
 
1452
 
 
1453
2003-06-22  Bruno Haible  <bruno@clisp.org>
 
1454
 
 
1455
        * write-properties.c: Don't include exit.h and gettext.h.
 
1456
 
 
1457
2003-06-22  Bruno Haible  <bruno@clisp.org>
 
1458
 
 
1459
        * x-php.c (phase3_ungetc): Comment out unused function.
 
1460
 
 
1461
2003-06-21  Bruno Haible  <bruno@clisp.org>
 
1462
 
 
1463
        * format-perl.c: Complete rewrite.
 
1464
        * format-perl-bracket.c: New file.
 
1465
        * message.h (format_perl_bracket): New enum value.
 
1466
        (NFORMATS): Increment.
 
1467
        * format.h (formatstring_perl_bracket): New declaration.
 
1468
        * format.c (formatstring_parsers): Add entry for perl_bracket.
 
1469
        * message.c (format_language, format_language_pretty): Likewise.
 
1470
        * x-perl.h (SCANNERS_PERL): Use formatstring_perl and
 
1471
        formatstring_perl_bracket.
 
1472
        * Makefile.am (FORMAT_SOURCE): Add format-perl-bracket.c.
 
1473
        * Makefile.msvc (OBJECTS): Add format-perl.obj,format-perl-bracket.obj.
 
1474
        (xgettext_OBJECTS): Add x-perl.obj.
 
1475
        (format-perl.obj, format-perl-bracket.obj, x-perl.obj): New rules.
 
1476
        * Makefile.vms (OBJECTS): Add format-perl.obj, format-perl-bracket.obj.
 
1477
        (xgettext_OBJECTS): Add x-perl.obj.
 
1478
        (format-perl.obj, format-perl-bracket.obj, x-perl.obj): New rules.
 
1479
 
 
1480
        * x-perl.c (extract_quotelike_pass3): Don't give an invalid
 
1481
        interpolation error for a backslashed dollar sign.
 
1482
 
 
1483
2003-06-21  Bruno Haible  <bruno@clisp.org>
 
1484
 
 
1485
        * x-perl.c (extract_quotelike_pass3): Fix handling of double backslash.
 
1486
 
 
1487
2003-06-19  Bruno Haible  <bruno@clisp.org>
 
1488
 
 
1489
        * x-perl.c (enum string_type_ty): Remove trailing comma.
 
1490
        (interpolate_keywords::enum parser_state): Likewise.
 
1491
        (extract_quotelike_pass3): Cast first argument of u8_uctomb().
 
1492
 
 
1493
2003-06-15  Bruno Haible  <bruno@clisp.org>
 
1494
 
 
1495
        * x-awk.c: Reorder definitions.
 
1496
        * x-c.c: Reorder definitions.
 
1497
        * x-perl.c: Reorder definitions.
 
1498
        * x-php.c: Reorder definitions.
 
1499
        * x-python.c: Reorder definitions.
 
1500
        * x-smalltalk.c: Reorder definitions.
 
1501
        * x-ycp.c: Reorder definitions.
 
1502
 
 
1503
2003-06-15  Bruno Haible  <bruno@clisp.org>
 
1504
 
 
1505
        * x-perl.c (struct stack_entry): Remove type.
 
1506
        (struct stack): Remove type.
 
1507
        (struct token_stack_ty): New type.
 
1508
        (token_stack): Change type to 'struct token_stack_ty'.
 
1509
        (token_stack_dump): Renamed from stack_dump. Update.
 
1510
        (token_stack_push): Renamed from stack_unshift. Rewritten.
 
1511
        (token_stack_pop): Renamed from stack_shift. Rewritten.
 
1512
        (token_stack_peek): Renamed from stack_head. Rewritten.
 
1513
        (token_stack_free): Renamed from stack_free. Rewritten.
 
1514
        (x_perl_lex, x_perl_unlex, extract_perl): Update.
 
1515
 
 
1516
2003-06-15  Bruno Haible  <bruno@clisp.org>
 
1517
 
 
1518
        * x-perl.c (DEBUG_MEMORY): Remove macro.
 
1519
        (remember_a_message_debug, remember_a_message_plural_debug,
 
1520
        xmalloc_debug, xrealloc_debug, xrealloc_static_debug, xstrdup_debug,
 
1521
        free_debug): Remove functions.
 
1522
        (xrealloc_static): Remove macro. Use xrealloc instead.
 
1523
 
 
1524
2003-06-15  Bruno Haible  <bruno@clisp.org>
 
1525
 
 
1526
        * x-awk.c (phase2_getc, x_awk_lex): Increase bufmax proportionally.
 
1527
        * x-c.c (comment_add, comment_line_end, phase5_get, phase6_get):
 
1528
        Likewise.
 
1529
        * x-elisp.c (comment_add, comment_line_end): Likewise.
 
1530
        * x-librep.c (comment_add, comment_line_end): Likewise.
 
1531
        * x-lisp.c (comment_add, comment_line_end): Likewise.
 
1532
        * x-php.c (comment_add, comment_line_end, x_php_lex): Likewise.
 
1533
        * x-python.c (comment_add, comment_line_end, phase5_get): Likewise.
 
1534
        * x-rst.c (extract_rst): Likewise.
 
1535
        * x-smalltalk.c (comment_add, comment_line_end, phase2_get): Likewise.
 
1536
        * x-tcl.c (comment_add, comment_line_end): Likewise.
 
1537
        * x-ycp.c (phase2_getc, x_ycp_lex): Likewise.
 
1538
 
 
1539
2003-06-15  Bruno Haible  <bruno@clisp.org>
 
1540
 
 
1541
        * xgettext.c (current_formatstring_parser1,
 
1542
        current_formatstring_parser2): New variables, replacing
 
1543
        current_formatstring_parser.
 
1544
        (remember_a_message, remember_a_message_plural): Try both
 
1545
        formatstring parsers.
 
1546
        (language_to_extractor): Allow two formatstring parsers per language,
 
1547
        not just one.
 
1548
        * x-perl.h (SCANNERS_PERL): Add formatstring_c as secondary format
 
1549
        string parser.
 
1550
        * x-awk.h (SCANNERS_AWK): Update.
 
1551
        * x-c.h (SCANNERS_C): Update.
 
1552
        * x-elisp.h (SCANNERS_ELISP): Update.
 
1553
        * x-glade.h (SCANNERS_GLADE): Update.
 
1554
        * x-java.h (SCANNERS_JAVA): Update.
 
1555
        * x-librep.h (SCANNERS_LIBREP): Update.
 
1556
        * x-lisp.h (SCANNERS_LISP): Update.
 
1557
        * x-php.h (SCANNERS_PHP): Update.
 
1558
        * x-po.h (SCANNERS_PO): Update.
 
1559
        * x-properties.h (SCANNERS_PROPERTIES): Update.
 
1560
        * x-python.h (SCANNERS_PYTHON): Update.
 
1561
        * x-rst.h (SCANNERS_RST): Update.
 
1562
        * x-smalltalk.h (SCANNERS_SMALLTALK): Update.
 
1563
        * x-tcl.h (SCANNERS_TCL): Update.
 
1564
        * x-ycp.h (SCANNERS_YCP): Update.
 
1565
 
 
1566
2003-06-15  Bruno Haible  <bruno@clisp.org>
 
1567
 
 
1568
        * x-perl.c (case_whitespace): New macro.
 
1569
        (is_whitespace): New function.
 
1570
        (interpolate_keywords): Add lineno argument. Track newlines to update
 
1571
        lineno while processing the string. Use is_whitespace.
 
1572
        (extract_triple_quotelike): Update. Use is_whitespace.
 
1573
        (extract_variable): Simplify: add final NUL byte only when done. Use
 
1574
        is_whitespace.
 
1575
        (x_perl_prelex): Use is_whitespace. After reading a here document, use
 
1576
        line_number+1, not line_number. Fix buffer overrun in <<XYZ handling.
 
1577
        (collect_message): Use is_whitespace.
 
1578
        (extract_balanced): Call free_token at the end of the loop, not at the
 
1579
        beginning.
 
1580
 
 
1581
2003-06-14  Bruno Haible  <bruno@clisp.org>
 
1582
 
 
1583
        * x-perl.c (enum token_type_ty): Reorder, so as to simplify the
 
1584
        function free_token().
 
1585
        (struct token_ty): Fix comments.
 
1586
        (token2string): Add const.
 
1587
        (token_stack): Make static.
 
1588
        (*_debug, stack_dump): Remove all fflushs.
 
1589
        (linebuf, linesize, linepos, linebuf_size, last_token, here_eaten,
 
1590
        end_of_file): Make static.
 
1591
        (last_string, last_string_finished): Remove unused variables.
 
1592
        (phase1_getc, get_here_document, skip_pod): Test getline() result
 
1593
        for being < 0, not == EOF.
 
1594
        (phase1_ungetc): Signal internal error through abort(), not exit().
 
1595
        (get_here_document): Tweak. Increase bufmax proportionally.
 
1596
        (phase2_getc): Increase bufmax proportionally.
 
1597
        (prefer_division_over_regexp): Fix comment.
 
1598
        (extract_hex, extract_oct): Add const. Simplify.
 
1599
        (extract_quotelike): Add a safety check.
 
1600
        (extract_quotelike_pass1): Increase bufmax proportionally. Fix
 
1601
        insufficient memory allocation at "bufpos + len >= bufmax".
 
1602
        (extract_quotelike_pass3): Increase bufmax proportionally. Make crs
 
1603
        const. After \x{ABC} position crs after the closing brace. Simplify \c
 
1604
        code. Reduce memory allocation when \N{ABC} is seen. Fix bug in \l and
 
1605
        \u. Fix error message when $ or @ is seen.
 
1606
        (extract_variable): Increase bufmax proportionally.
 
1607
        (interpolate_keywords): Likewise. Convert c's value to unsigned char.
 
1608
        (x_perl_prelex): Increase bufmax proportionally. Compute 4th argument
 
1609
        to extract_triple_quotelike completely.
 
1610
        (extract_perl): Initialize token_stack correctly.
 
1611
 
 
1612
2003-06-13  Bruno Haible  <bruno@clisp.org>
 
1613
 
 
1614
        * msgexec.c (process_string): Pass null_stderr=false.
 
1615
        * msgfilter.c (process_string): Likewise.
 
1616
        * msggrep.c (is_string_selected): Likewise.
 
1617
        * read-java.c (execute_and_read_po_output): Likewise.
 
1618
        * read-tcl.c (msgdomain_read_tcl): Likewise.
 
1619
        * msginit.c (project_id, project_id_version, get_user_email,
 
1620
        language_team_address): Return a default value if the subprocess
 
1621
        fails, instead of exiting.
 
1622
 
 
1623
2003-06-12  Bruno Haible  <bruno@clisp.org>
 
1624
 
 
1625
        * Makefile.am (noinst_HEADERS): Add x-perl.h.
 
1626
        (FORMAT_SOURCE): Add format-perl.c.
 
1627
        (xgettext_SOURCES): Add x-perl.c.
 
1628
        * message.h (enum format_type): Mention perl between tcl and php.
 
1629
        * message.c (format_language, format_language_pretty): Likewise.
 
1630
        * format.h (formatstring_perl): Likewise.
 
1631
        * format.c (formatstring_parsers): Likewise.
 
1632
        * format-perl.c: Use GNU coding style. Prefer xmalloc over xcalloc.
 
1633
        * x-perl.h: Assume ANSI C.
 
1634
        * x-perl.c: Assume ANSI C. Use GNU coding style. Prefer xmalloc over
 
1635
        xcalloc.
 
1636
        (token_buf): Remove unused variable.
 
1637
        (xcalloc_debug, stack_push, stack_pop): Remove unused functions.
 
1638
        * xgettext.c: Mention perl between tcl and php.
 
1639
 
 
1640
2003-06-11  Guido Flohr  <guido@imperia.net>
 
1641
 
 
1642
        * message.h (enum format_type): New enum value 'format_perl'.
 
1643
        (NFORMATS): Increment.
 
1644
        * message.c (format_language, format_language_pretty): Add entry
 
1645
        for perl.
 
1646
        * format.h (formatstring_perl): New declaration.
 
1647
        * format-perl.c: New file.
 
1648
        * format.c (formatstring_parsers): Add entry for perl.
 
1649
        * x-perl.h: New file.
 
1650
        * x-perl.c: New file.
 
1651
        * xgettext.c: Include x-perl.h.
 
1652
        (main): Call x_perl_extract_all, x_perl_keyword.
 
1653
        (usage): Mention Perl language.
 
1654
        (language_to_extractor): Add Perl rule.
 
1655
        (extension_to_language): Add Perl rule.
 
1656
 
 
1657
2003-06-08  Bruno Haible  <bruno@clisp.org>
 
1658
 
 
1659
        * Makefile.vms (LDADD): Take options from .opt files.
 
1660
        (libiconv.opt): New rule.
 
1661
        (msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe, xgettext.exe,
 
1662
        msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe,
 
1663
        msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe):
 
1664
        Depend on it.
 
1665
        * plural-eval.c: Include "eval-plural.h" without a path, rely on the
 
1666
        Makefile's -I options instead.
 
1667
        * read-properties.c (conv_from_java): Change type of q to
 
1668
        'unsigned char *'.
 
1669
        Reported by Jouk Jansen <joukj@hrem.stm.tudelft.nl>.
 
1670
 
 
1671
2003-05-27  Bruno Haible  <bruno@clisp.org>
 
1672
 
 
1673
        * plural-table.c (plural_table): Correct entry for Slovak.
 
1674
        Reported by Marcel Telka <marcel@telka.sk>.
 
1675
 
 
1676
2003-05-24  Bruno Haible  <bruno@clisp.org>
 
1677
 
 
1678
        * x-glade.h (EXTENSIONS_GLADE): Also recognize the .glade2 extension.
 
1679
        * x-glade.c (start_element_handler): Also extract strings according to
 
1680
        Glade 2 conventions.
 
1681
 
 
1682
2003-05-22  Bruno Haible  <bruno@clisp.org>
 
1683
 
 
1684
        * gettext-0.12.1 released.
 
1685
 
 
1686
2003-05-21  Bruno Haible  <bruno@clisp.org>
 
1687
 
 
1688
        * msggrep.c (main) [Solaris]: Fix syntax error.
 
1689
        Reported by Valery Beaud <valery.beaud@art.alcatel.fr>.
 
1690
 
 
1691
2003-05-21  Bruno Haible  <bruno@clisp.org>
 
1692
 
 
1693
        * xgettext.c (output_syntax): New variable.
 
1694
        (main): Set it.
 
1695
        (finalize_header): If --properties-output was given, set the charset.
 
1696
 
 
1697
2003-05-18  Bruno Haible  <bruno@clisp.org>
 
1698
 
 
1699
        * Makefile.msvc (DEBUGFLAGS): New variable.
 
1700
        (gettextsrc.lib): Use it.
 
1701
        (msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe, xgettext.exe,
 
1702
        msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe,
 
1703
        msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe):
 
1704
        Use it, and MFLAGS too.
 
1705
 
 
1706
2003-05-17  Bruno Haible  <bruno@clisp.org>
 
1707
 
 
1708
        * gettext-0.12 released.
 
1709
 
 
1710
2003-05-17  Bruno Haible  <bruno@clisp.org>
 
1711
 
 
1712
        * Makefile.msvc (msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe,
 
1713
        msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe,
 
1714
        msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe):
 
1715
        Link with iconv.lib, needed by intl.lib.
 
1716
 
 
1717
2003-05-12  Bruno Haible  <bruno@clisp.org>
 
1718
 
 
1719
        * msginit.c (F_OK): Provide a fallback value.
 
1720
        Reported by Perry Rapp.
 
1721
 
 
1722
2003-05-10  Bruno Haible  <bruno@clisp.org>
 
1723
 
 
1724
        * msgl-iconv.c (iconv_string): Don't return -1 just because the string
 
1725
        is longer than 4 KB.
 
1726
        Reported by Denis Barbier <barbier@linuxfr.org>.
 
1727
 
 
1728
2003-05-04  Bruno Haible  <bruno@clisp.org>
 
1729
 
 
1730
        * po-lex.h (po_gram_error): Don't use ISO C 99 feature on DEC C.
 
1731
        * po-lex.c (po_gram_error): LIkewise.
 
1732
 
 
1733
2003-05-03  Bruno Haible  <bruno@clisp.org>
 
1734
 
 
1735
        * msgfilter.c: Include <sys/select.h> also on EMX.
 
1736
        Reported by Andreas Buening <andreas.buening@nexgo.de>.
 
1737
 
 
1738
2003-04-26  Bruno Haible  <bruno@clisp.org>
 
1739
 
 
1740
        * message.h (msgdomain_list_ty): Add field 'encoding'.
 
1741
        * message.c (msgdomain_list_alloc): Initialize it.
 
1742
        * read-properties.h: New file.
 
1743
        * read-properties.c: New file.
 
1744
        * read-po-abstract.h (abstract_po_reader_class_ty): In
 
1745
        directive_message field, add force_fuzzy argument.
 
1746
        (po_scan_start, po_scan_end): Remove declarations.
 
1747
        (input_syntax_ty): New type.
 
1748
        (po_callback_message): Add force_fuzzy argument.
 
1749
        * read-po-abstract.c (call_directive_message, po_callback_message):
 
1750
        Add force_fuzzy argument.
 
1751
        (po_scan_start, po_scan_end): Make static.
 
1752
        (po_scan): Add support for syntax_properties. Move
 
1753
        error_message_count handling to here.
 
1754
        (po_callback_message): Move po_lex_charset_set invocation away.
 
1755
        * read-po.h (default_po_reader_class_ty): In add_message field, add
 
1756
        force_fuzzy argument.
 
1757
        (default_directive_message, default_add_message): Add force_fuzzy
 
1758
        argument.
 
1759
        (inout_syntax): New declaration.
 
1760
        * read-po.c (call_add_message): Add force_fuzzy argument.
 
1761
        (default_directive_message, default_add_message): Likewise.
 
1762
        (input_syntax): New variable.
 
1763
        (read_po): Pass input_syntax to po_scan(). Set mdlp->encoding if
 
1764
        possible.
 
1765
        * po-gram-gen.y: Pass force_fuzzy = false.
 
1766
        (do_callback_message): New function. Move po_lex_charset_set
 
1767
        invocation to here.
 
1768
        * po-lex.c (lex_end): Move error_message_count handling away.
 
1769
        * write-properties.h: New file.
 
1770
        * write-properties.c: New file.
 
1771
        * write-po.h (message_print_syntax_properties): New declaration.
 
1772
        * write-po.c (use_syntax_properties): New variable.
 
1773
        (message_print_syntax_properties): New function.
 
1774
        (msgdomain_list_print_po): New function, extracted from
 
1775
        msgdomain_list_print.
 
1776
        (msgdomain_list_print): Add check for plural forms. Add support for
 
1777
        writing the .properties format.
 
1778
        (extract_po): Renamed from extract. 
 
1779
        * write-java.h (msgdomain_write_java): Add canon_encoding argument.
 
1780
        * write-java.c (msgdomain_write_java): Likewise.
 
1781
        * write-tcl.h (msgdomain_write_tcl): Likewise.
 
1782
        * write-tcl.c (msgdomain_write_tcl): Likewise.
 
1783
        * msgl-cat.c (catenate_msgdomain_list): Use mdlp->encoding if there
 
1784
        is no header entry. Set total_mdlp->encoding if possible.
 
1785
        * msgl-iconv.c (iconv_msgdomain_list): Use mdlp->encoding if there
 
1786
        is no header entry. Set mdlp->encoding.
 
1787
        * msgattrib.c (long_options): Add --properties-input/output.
 
1788
        (main): Handle them.
 
1789
        (usage): Document options -P and -p.
 
1790
        * msgcat.c (long_options): Add --properties-input/output.
 
1791
        (main): Handle them. If option -p is used, convert to UTF-8 and
 
1792
        ignore the to_code.
 
1793
        (usage): Document options -P and -p.
 
1794
        * msgcomm.c (long_options): Add --properties-input/output.
 
1795
        (main): Handle them.
 
1796
        (usage): Document options -P and -p.
 
1797
        * msgconv.c (long_options): Add --properties-input/output.
 
1798
        (main): Handle them. If option -p is used, ignore the to_code.
 
1799
        (usage): Document options -P and -p.
 
1800
        * msgen.c (long_options): Add --properties-input/output.
 
1801
        (main): Handle them.
 
1802
        (usage): Document options -P and -p.
 
1803
        * msgfilter.c (long_options): Add --properties-input/output.
 
1804
        (main): Handle them.
 
1805
        (usage): Document options -P and -p.
 
1806
        * msggrep.c (long_options): Add --properties-input/output.
 
1807
        (main): Handle them.
 
1808
        (usage): Document options -P and -p.
 
1809
        * msginit.c (long_options): Add --properties-input/output.
 
1810
        (main): Handle them.
 
1811
        (usage): Document options -P and -p.
 
1812
        * msgmerge.c (long_options): Add --properties-input/output.
 
1813
        (main): Handle them. In update mode, --properties-input implies
 
1814
        --properties-output.
 
1815
        (usage): Document options -P and -p.
 
1816
        (merge): Set result->encoding if possible.
 
1817
        * msguniq.c (long_options): Add --properties-input/output.
 
1818
        (main): Handle them.
 
1819
        (usage): Document options -P and -p.
 
1820
        * msgcmp.c (long_options): Add --properties-input.
 
1821
        (main): Handle it.
 
1822
        (usage): Document option -P.
 
1823
        * msgexec.c (long_options): Add --properties-input.
 
1824
        (main): Handle it.
 
1825
        (usage): Document option -P.
 
1826
        * msgfmt.c (long_options): Add --properties-input.
 
1827
        (main): Handle it. Pass the known canon_encoding to
 
1828
        msgdomain_write_java and msgdomain_write_tcl.
 
1829
        (usage): Document option -P.
 
1830
        (msgfmt_add_message): Add force_fuzzy argument.
 
1831
        (read_po_file_msgfmt): Pass input_syntax to po_scan().
 
1832
        * msgunfmt.c (long_options): Add --properties-output.
 
1833
        (main): Handle it.
 
1834
        (usage): Document option -p.
 
1835
        * x-properties.h: New file.
 
1836
        * x-po.c (extract_add_message): Add force_fuzzy argument.
 
1837
        (extract): Renamed from extract_po. Pass input_syntax to po_scan().
 
1838
        (extract_po): New function.
 
1839
        (extract_properties): New function.
 
1840
        * xgettext.h: Include read-po.h.
 
1841
        * xgettext.c (long_options): Add --properties-output.
 
1842
        (main): Handle it.
 
1843
        (usage): Document options -L JavaProperties and --properties-output.
 
1844
        (exclude_directive_message): Add force_fuzzy argument.
 
1845
        (read_exclusion_file): Pass input_syntax to po_scan().
 
1846
        (table): Add support for .properties format.
 
1847
        * Makefile.am (noinst_HEADERS): Add read-properties.h,
 
1848
        write-properties.h, x-properties.h.
 
1849
        (COMMON_SOURCE): Add read-properties.c.
 
1850
        (libgettextsrc_la_SOURCES): Add write-properties.c.
 
1851
        * Makefile.msvc (OBJECTS): Add read-properties.obj,
 
1852
        write-properties.obj.
 
1853
        (read-properties.obj, write-properties.obj): New rules.
 
1854
        * Makefile.vms (OBJECTS): Add read-properties.obj,
 
1855
        write-properties.obj.
 
1856
        (read-properties.obj, write-properties.obj): New rules.
 
1857
        * FILES: Update.
 
1858
 
 
1859
2003-04-21  Bruno Haible  <bruno@clisp.org>
 
1860
 
 
1861
        * read-po-abstract.h (po_scan_file): Remove declaration.
 
1862
        * read-po-abstract.c (po_scan_file): Remove function.
 
1863
        * read-po.c (read_po_file): Call read_po.
 
1864
        * msgfmt.c (read_po_file_msgfmt): Call open_po_file. Invoke po_scan
 
1865
        instead of po_scan_file.
 
1866
        * xgettext.c (read_exclusion_file): Call open_po_file. Invoke po_scan
 
1867
        instead of po_scan_file.
 
1868
 
 
1869
2003-04-20  Bruno Haible  <bruno@clisp.org>
 
1870
 
 
1871
        * open-po.h (open_po_file): Add argument 'exit_on_error'.
 
1872
        * open-po.c (try_open_po_file): Renamed from open_po_file.
 
1873
        (open_po_file): New function.
 
1874
        * po-lex.h (lex_end): Change return type to void.
 
1875
        (lex_open, lex_close): Remove declarations.
 
1876
        * po-lex.c (lex_end): Change return type to void.
 
1877
        (lex_open, lex_close): Remove functions.
 
1878
        * read-po-abstract.c (po_scan_file): Inline lex_open and lex_close.
 
1879
        Reuse po_scan code.
 
1880
 
 
1881
2003-04-14  Bruno Haible  <bruno@clisp.org>
 
1882
 
 
1883
        * hostname.c (usage): Split strings: use one string per option
 
1884
        description.
 
1885
        * msgattrib.c (usage): Likewise.
 
1886
        * msgcat.c (usage): Likewise.
 
1887
        * msgcmp.c (usage): Likewise.
 
1888
        * msgcomm.c (usage): Likewise.
 
1889
        * msgconv.c (usage): Likewise.
 
1890
        * msgen.c (usage): Likewise.
 
1891
        * msgexec.c (usage): Likewise.
 
1892
        * msgfilter.c (usage): Likewise.
 
1893
        * msgfmt.c (usage): Likewise.
 
1894
        * msggrep.c (usage): Likewise.
 
1895
        * msginit.c (usage): Likewise.
 
1896
        * msgmerge.c (usage): Likewise.
 
1897
        * msgunfmt.c (usage): Likewise.
 
1898
        * msguniq.c (usage): Likewise.
 
1899
        * urlget.c (usage): Likewise.
 
1900
        * xgettext.c (usage): Likewise.
 
1901
 
 
1902
2003-04-13  Bruno Haible  <bruno@clisp.org>
 
1903
 
 
1904
        Unify three PO file parsers.
 
1905
        * read-po-abstract.h: Renamed from po.h.
 
1906
        (abstract_po_reader_class_ty): Renamed from po_method_ty.
 
1907
        (abstract_po_reader_ty): Renamed from po_ty.
 
1908
        (ABSTRACT_PO_READER_TY): Renamed from PO_BASE_TY.
 
1909
        (po_reader_alloc): Renamed from po_alloc.
 
1910
        (po_reader_free): Renamed from po_free.
 
1911
        * read-po-abstract.c: Renamed from po.c.
 
1912
        (po_reader_alloc): Renamed from po_alloc.
 
1913
        (po_reader_free): Renamed from po_free.
 
1914
        (call_parse_brief): Renamed from po_parse_brief.
 
1915
        (call_parse_debrief): Renamed from po_parse_debrief.
 
1916
        (call_directive_domain): Renamed from po_directive_domain.
 
1917
        (call_directive_message): Renamed from po_directive_message.
 
1918
        (call_comment): Renamed from po_comment.
 
1919
        (call_comment_dot): Renamed from po_comment_dot.
 
1920
        (call_comment_filepos): Renamed from po_comment_filepos.
 
1921
        (call_comment_special): Renamed from po_comment_special.
 
1922
        * read-po.h: Include read-po-abstract.h.
 
1923
        (default_po_reader_class_ty, default_po_reader_ty): New types.
 
1924
        (ABSTRACT_PO_READER_TY): New macro.
 
1925
        (default_constructor, default_destructor, default_parse_brief,
 
1926
        default_parse_debrief, default_directive_domain,
 
1927
        default_directive_message, default_comment, default_comment_dot,
 
1928
        default_comment_filepos, default_comment_special, default_set_domain,
 
1929
        default_add_message): New declarations.
 
1930
        (default_po_reader_alloc): New declaration.
 
1931
        * read-po.c (default_po_reader_ty): Renamed from readall_class_ty.
 
1932
        Add fields handle_comments, handle_filepos_comments,
 
1933
        allow_domain_directives, allow_duplicates,
 
1934
        allow_duplicates_if_same_msgstr.
 
1935
        (call_set_domain, call_add_message, call_frob_new_message): New
 
1936
        functions.
 
1937
        (default_constructor): Renamed from readall_constructor. Don't set
 
1938
        this->mdlp and this->mlp.
 
1939
        (default_destructor): Renamed from readall_destructor.
 
1940
        (default_parse_brief): Renamed from readall_parse_brief.
 
1941
        (default_parse_debrief): New function.
 
1942
        (default_copy_comment_state, default_reset_comment_state): New
 
1943
        functions.
 
1944
        (default_directive_domain): Renamed from readall_directive_domain.
 
1945
        Call set_domain method.
 
1946
        (default_directive_message): Renamed from readall_directive_message.
 
1947
        Call add_message method.
 
1948
        (default_comment): Renamed from readall_comment.
 
1949
        (default_comment_dot): Renamed from readall_comment_dot.
 
1950
        (default_comment_filepos): Renamed from readall_comment_filepos.
 
1951
        (default_comment_special): Renamed from readall_comment_special.
 
1952
        (default_set_domain, default_add_message): New functions.
 
1953
        (default_methods): Renamed from readall_methods.
 
1954
        (default_po_reader_alloc): New function.
 
1955
        (read_po, read_po_file): Update.
 
1956
        * msgfmt.c: Include read-po.h instead of po.h.
 
1957
        (msgfmt_po_reader_ty): Renamed from msgfmt_class_ty. Inherit
 
1958
        from default_po_reader_ty.
 
1959
        (main): Drop po_lex_pass_comments call, done by default_parse_brief.
 
1960
        (msgfmt_constructor): Renamed from format_constructor. Call superclass
 
1961
        function.
 
1962
        (msgfmt_parse_debrief): Renamed from format_debrief. Call superclass
 
1963
        function.
 
1964
        (format_directive_domain): Remove function.
 
1965
        (msgfmt_set_domain): New function.
 
1966
        (format_directive_message): Remove function.
 
1967
        (msgfmt_add_message, msgfmt_frob_new_message): New functions.
 
1968
        (msgfmt_comment_special): Renamed from format_comment_special.
 
1969
        (msgfmt_methods): Renamed from format_methods.
 
1970
        (read_po_file_msgfmt): Renamed from read_po_file.
 
1971
        * x-po.c: Include read-po.h instead of po.h.
 
1972
        (extract_class_ty, extract_constructor, extract_directive_domain,
 
1973
        extract_directive_message, extract_parse_brief, extract_comment,
 
1974
        extract_comment_dot, extract_comment_filepos, extract_comment_special):
 
1975
        Remove functions.
 
1976
        (extract_add_message): New function.
 
1977
        (extract_methods): Update.
 
1978
        (extract_po): Update.
 
1979
        * xgettext.c: Include read-po-abstract.h instead of po.h.
 
1980
        (exclude_directive_domain, exclude_directive_message, exclude_methods,
 
1981
        read_exclusion_file): Update.
 
1982
        * msgcmp.c: Don't include po.h.
 
1983
        * msgmerge.c: Likewise.
 
1984
        * po-gram-gen.y: Include read-po-abstract.h instead of po.h.
 
1985
        * po-hash-gen.y: Likewise.
 
1986
        (po_parse_comment_filepos): Renamed from po_hash.
 
1987
        * po-hash.h (po_parse_comment_filepos): Renamed from po_hash.
 
1988
        * Makefile.am (noinst_HEADERS): Remove po.h, add read-po-abstract.h.
 
1989
        (COMMON_SOURCE): Remove po.c, add read-po-abstract.c.
 
1990
        * Makefile.msvc (OBJECTS): Remove po.obj, add read-po-abstract.obj.
 
1991
        (read-po-abstract.obj): Renamed from po.obj.
 
1992
        * Makefile.vms (OBJECTS): Remove po.obj, add read-po-abstract.obj.
 
1993
        (read-po-abstract.obj): Renamed from po.obj.
 
1994
 
 
1995
2003-04-13  Bruno Haible  <bruno@clisp.org>
 
1996
 
 
1997
        * read-po.c (readall_directive_message): Separate accumulation and
 
1998
        reset.
 
1999
        * x-po.c (extract_directive_message): Likewise.
 
2000
 
 
2001
2003-04-13  Bruno Haible  <bruno@clisp.org>
 
2002
 
 
2003
        * write-po.h (message_print_comment, message_print_comment_dot,
 
2004
        message_print_comment_filepos, message_print_comment_flags): New
 
2005
        declarations.
 
2006
        * write-po.c: Reorder functions.
 
2007
        (message_print_comment, message_print_comment_dot,
 
2008
        message_print_comment_filepos, message_print_comment_flags): New
 
2009
        functions, extracted from message_print.
 
2010
        (message_print): Use them.
 
2011
        (message_print_obsolete): Use message_print_comment.
 
2012
 
 
2013
2003-04-22  Bruno Haible  <bruno@clisp.org>
 
2014
 
 
2015
        * plural-table.c (plural_table): Add an entry about Faroese.
 
2016
        Reported by Jacob Sparre Andersen <sparre@crs4.it>.
 
2017
 
 
2018
2003-04-13  Bruno Haible  <bruno@clisp.org>
 
2019
 
 
2020
        * po.h (po_scan_start, po_scan_end): New declarations.
 
2021
        * po.c: Reorder functions.
 
2022
        (po_scan_start, po_scan_end): New functions.
 
2023
        (po_scan, po_scan_file): Use them.
 
2024
 
 
2025
2003-04-12  Bruno Haible  <bruno@clisp.org>
 
2026
 
 
2027
        * Makefile.vms: New variables ABIFLAGS, DEFS. Avoid rules with no
 
2028
        lines. Don't use the force target. Correct wildcard syntax.
 
2029
        Suggested by Jouk Jansen <joukj@hrem.stm.tudelft.nl>.
 
2030
 
 
2031
2003-04-13  Bruno Haible  <bruno@clisp.org>
 
2032
 
 
2033
        * xgettext.c (construct_header): Remove spurious comma.
 
2034
 
 
2035
2003-03-30  Bruno Haible  <bruno@clisp.org>
 
2036
 
 
2037
        * Makefile.vms: New file.
 
2038
        * Makefile.am (EXTRA_DIST): Add Makefile.vms.
 
2039
        (x-java.c): Prepend a few VMS specific lines.
 
2040
        * po-lex.c (mbfile_getc): Change element type of scatchbuf to
 
2041
        'unsigned char'.
 
2042
        * write-java.c (string_hashcode, write_java_string): Cast argument of
 
2043
        u8_mbtouc.
 
2044
        * write-tcl.c (write_tcl_string): Likewise.
 
2045
        * x-python.c (phase7_getuc): Cast argument of unicode_name_character.
 
2046
        * msgfilter.c (write): #undef before redefining it. Needed for VMS.
 
2047
        (select): Likewise.
 
2048
 
 
2049
2003-03-30  Bruno Haible  <bruno@clisp.org>
 
2050
 
 
2051
        * Makefile.am (noinst_HEADERS): Add po-gram-gen2.h.
 
2052
        (BUILT_SOURCES): Add po-gram-gen2.h.
 
2053
        (DISTCLEANFILES): Remove po-gram-gen2.h.
 
2054
        (po-gram-gen2.h): Simplify rule.
 
2055
 
 
2056
2003-03-17  Bruno Haible  <bruno@clisp.org>
 
2057
 
 
2058
        Native Woe32/MSVC support.
 
2059
        * Makefile.msvc: New file.
 
2060
        * Makefile.am (EXTRA_DIST): Add it.
 
2061
        * msgfilter.c: Include <sys/time.h> only if it exists.
 
2062
        (process_string): Mark as NYI on Woe32.
 
2063
        * msgfmt.c (sigjmp_buf, sigsetjmp, siglongjmp): Provide fallback
 
2064
        definitions for Woe32.
 
2065
        * msginit.c: Include <fcntl.h>, for F_OK. Include <pwd.h> only if it
 
2066
        exists.
 
2067
        (get_user_pwd, get_user_fullname): Adapt for when <pwd.h> is missing.
 
2068
        (project_id, project_id_version, get_user_email,
 
2069
        language_team_address): Use DEV_NULL instead of "/dev/null".
 
2070
        * msggrep.c (is_string_selected): Likewise.
 
2071
        * read-java.c (execute_and_read_po_output): Likewise.
 
2072
        * read-tcl.c (msgdomain_read_tcl): Likewise.
 
2073
        * write-mo.c: Include <sys/param.h> only if it exists.
 
2074
 
 
2075
2003-03-28  Bruno Haible  <bruno@clisp.org>
 
2076
 
 
2077
        * msgmerge.c (main): Use copy_file_preserving instead of copy_file.
 
2078
 
 
2079
2003-03-16  Bruno Haible  <bruno@clisp.org>
 
2080
 
 
2081
        * str-list.h (string_list_join): Comment out.
 
2082
        * str-list.c (string_list_join): Comment out.
 
2083
 
 
2084
2003-03-10  Bruno Haible  <bruno@clisp.org>
 
2085
 
 
2086
        * msggrep.c (no_pass): Mention option -C.
 
2087
        (usage): Document option -C completely.
 
2088
        Reported by Martin Quinson <Martin.Quinson@tuxfamily.org>.
 
2089
 
 
2090
2003-02-28  Bruno Haible  <bruno@clisp.org>
 
2091
 
 
2092
        Support for relocatable installation.
 
2093
        * msgattrib.c: Include relocatable.h.
 
2094
        (main): Relocate LOCALEDIR value.
 
2095
        * msgcat.c: Include relocatable.h.
 
2096
        (main): Relocate LOCALEDIR value.
 
2097
        * msgcmp.c: Include relocatable.h.
 
2098
        (main): Relocate LOCALEDIR value.
 
2099
        * msgcomm.c: Include relocatable.h.
 
2100
        (main): Relocate LOCALEDIR value.
 
2101
        * msgconv.c: Include relocatable.h.
 
2102
        (main): Relocate LOCALEDIR value.
 
2103
        * msgen.c: Include relocatable.h.
 
2104
        (main): Relocate LOCALEDIR value.
 
2105
        * msgexec.c: Include relocatable.h.
 
2106
        (main): Relocate LOCALEDIR value.
 
2107
        * msgfilter.c: Include relocatable.h.
 
2108
        (main): Relocate LOCALEDIR value.
 
2109
        * msgfmt.c: Include relocatable.h.
 
2110
        (main): Relocate LOCALEDIR value.
 
2111
        * msggrep.c: Include relocatable.h.
 
2112
        (main): Relocate LOCALEDIR value.
 
2113
        * msginit.c: Include relocatable.h.
 
2114
        (main): Relocate LOCALEDIR value.
 
2115
        (project_id, project_id_version, get_user_email): Relocate LIBDIR
 
2116
        value.
 
2117
        (language_team_address): Relocate LIBDIR and PROJECTSDIR values.
 
2118
        * msgmerge.c: Include relocatable.h.
 
2119
        (main): Relocate LOCALEDIR value.
 
2120
        * msgunfmt.c: Include relocatable.h.
 
2121
        (main): Relocate LOCALEDIR value.
 
2122
        * msguniq.c: Include relocatable.h.
 
2123
        (main): Relocate LOCALEDIR value.
 
2124
        * xgettext.c: Include relocatable.h.
 
2125
        (main): Relocate LOCALEDIR value.
 
2126
        * read-java.c: Include relocatable.h.
 
2127
        (msgdomain_read_java): Relocate GETTEXTJEXEDIR value.
 
2128
        * read-tcl.c: Include relocatable.h.
 
2129
        (msgdomain_read_tcl): Relocate GETTEXTDATADIR value.
 
2130
        * hostname.c: Include relocatable.h.
 
2131
        (main): Relocate LOCALEDIR value. Update copyright year.
 
2132
        * urlget.c: Include relocatable.h.
 
2133
        (main): Relocate LOCALEDIR value. Update copyright year.
 
2134
        (fetch): Relocate GETTEXTJEXEDIR value.
 
2135
        * user-email.in: Relocate $libdir.
 
2136
        * Makefile.am (aliaspath): New variable.
 
2137
        (DEFS): Define LOCALE_ALIAS_PATH.
 
2138
        (msginit_SOURCES): Add .../localealias.c.
 
2139
        (msginit_LDADD): Remove .../localealias.lo.
 
2140
        (msgcmp_CFLAGS, msgfmt_CFLAGS, msgmerge_CFLAGS, msgunfmt_CFLAGS,
 
2141
        xgettext_CFLAGS, msgattrib_CFLAGS, msgcat_CFLAGS, msgcomm_CFLAGS,
 
2142
        msgconv_CFLAGS, msgen_CFLAGS, msgexec_CFLAGS, msgfilter_CFLAGS,
 
2143
        msggrep_CFLAGS, msginit_CFLAGS, msguniq_CFLAGS, hostname_CFLAGS,
 
2144
        urlget_CFLAGS): New variables.
 
2145
        (msgcmp_LDFLAGS, msgfmt_LDFLAGS, msgmerge_LDFLAGS, msgunfmt_LDFLAGS,
 
2146
        xgettext_LDFLAGS, msgattrib_LDFLAGS, msgcat_LDFLAGS, msgcomm_LDFLAGS,
 
2147
        msgconv_LDFLAGS, msgen_LDFLAGS, msgexec_LDFLAGS, msgfilter_LDFLAGS,
 
2148
        msggrep_LDFLAGS, msginit_LDFLAGS, msguniq_LDFLAGS, hostname_LDFLAGS,
 
2149
        urlget_LDFLAGS): New variables.
 
2150
        (install-exec-java-yes): Don't ignore INSTALL_PROGRAM_ENV.
 
2151
        (RELOCATABLE_LIBRARY_PATH, RELOCATABLE_SRC_DIR, RELOCATABLE_BUILD_DIR,
 
2152
        RELOCATABLE_CONFIG_H_DIR): New variables.
 
2153
 
 
2154
2003-03-13  Bruno Haible  <bruno@clisp.org>
 
2155
 
 
2156
        * msggrep.c (main): On Solaris, prefer /usr/xpg4/bin/grep to
 
2157
        /usr/bin/grep. Needed for Solaris 2.8 and 2.9.
 
2158
        Reported by Sven Utcke <utcke@informatik.uni-hamburg.de>.
 
2159
 
 
2160
2003-03-03  Bruno Haible  <bruno@clisp.org>
 
2161
 
 
2162
        * msgen.c (usage): Don't say that the entries are marked fuzzy.
 
2163
        Reported by Karl Eichwalder <ke@suse.de>.
 
2164
 
 
2165
2003-02-23  Bruno Haible  <bruno@clisp.org>
 
2166
 
 
2167
        Improve error messages for invalid format strings.
 
2168
        * format-invalid.h: New file.
 
2169
        * format.h (struct formatstring_parser): Add invalid_reason argument
 
2170
        to 'parse' field.
 
2171
        * format-awk.c: Include c-ctype.h, xerror.h, format-invalid.h.
 
2172
        (format_parse): Add invalid_reason argument.
 
2173
        * format-c.c: Include c-ctype.h, xerror.h, format-invalid.h.
 
2174
        (INVALID_C99_MACRO): New macro.
 
2175
        (format_parse): Add invalid_reason argument.
 
2176
        (get_c99_format_directives): Update.
 
2177
        * format-elisp.c: Include c-ctype.h, xerror.h, format-invalid.h.
 
2178
        (format_parse): Add invalid_reason argument.
 
2179
        * format-java.c: Include xerror.h, format-invalid.h.
 
2180
        (message_format_parse, choice_format_parse, format_parse): Add
 
2181
        invalid_reason argument.
 
2182
        (choice_format_parse): Return false if a choice contains an empty
 
2183
        number part.
 
2184
        * format-librep.c: Include c-ctype.h, xerror.h, format-invalid.h.
 
2185
        (format_parse): Add invalid_reason argument.
 
2186
        * format-lisp.c: Include xerror.h, format-invalid.h.
 
2187
        (check_params, nocheck_params): Add directives, invalid_reason
 
2188
        arguments.
 
2189
        (parse_upto, format_parse): Add invalid_reason argument.
 
2190
        * format-pascal.c: Include xerror.h, format-invalid.h.
 
2191
        (format_parse): Add invalid_reason argument.
 
2192
        * format-php.c: Include c-ctype.h, xerror.h, format-invalid.h.
 
2193
        (format_parse): Add invalid_reason argument.
 
2194
        * format-python.c: Include c-ctype.h, xerror.h, format-invalid.h.
 
2195
        (INVALID_MIXES_NAMED_UNNAMED): New macro.
 
2196
        (format_parse): Add invalid_reason argument.
 
2197
        * format-tcl.c: Include c-ctype.h, xerror.h, format-invalid.h.
 
2198
        (format_parse): Add invalid_reason argument.
 
2199
        * format-ycp.c: Include c-ctype.h, xerror.h, format-invalid.h.
 
2200
        (format_parse): Add invalid_reason argument.
 
2201
        * msgfmt.c (check_pair): Output invalid_reason returned for msgstr.
 
2202
        * msgmerge.c (msgfmt_check_pair_fails): Update.
 
2203
        * xgettext.c (remember_a_message, remember_a_message_plural): Update.
 
2204
        * Makefile.am (FORMAT_SOURCE): Add format-invalid.h.
 
2205
 
 
2206
2003-02-22  Bruno Haible  <bruno@clisp.org>
 
2207
 
 
2208
        * x-python.c (init_keywords): Add u*gettext variants and plural
 
2209
        handling functions added in Python 2.3.
 
2210
 
 
2211
2003-02-22  Bruno Haible  <bruno@clisp.org>
 
2212
 
 
2213
        * Makefile.am (installdirs): Remove dependency, redundant with
 
2214
        automake >= 1.6.
 
2215
 
 
2216
2003-02-20  Bruno Haible  <bruno@clisp.org>
 
2217
 
 
2218
        * Makefile.am (libgettextpo_la_DEPENDENCIES): New variable.
 
2219
        Reported by Jim Meyering <jim@meyering.net>.
 
2220
 
 
2221
2003-02-19  Bruno Haible  <bruno@clisp.org>
 
2222
 
 
2223
        * Makefile.am (xgettext_LDADD): Mention $(LIBUNINAME) before
 
2224
        libgettextsrc.la, not after it. Needed avoid link error on OSF/1 4.0:
 
2225
        libtool produces a link command line that contains "-lc" where a
 
2226
        shared library was used, and on OSF/1 4.0 "-lc" must not be used
 
2227
        before objects that use integer division.
 
2228
 
 
2229
2003-02-18  Bruno Haible  <bruno@clisp.org>
 
2230
 
 
2231
        * message.c (msgdomain_list_free): Uncomment this function.
 
2232
        * Makefile.am (libgettextpo_la_LDFLAGS): Add ../lib/libgettextlib.la.
 
2233
        Needed for Solaris 2.7.
 
2234
 
 
2235
2003-02-16  Bruno Haible  <bruno@clisp.org>
 
2236
 
 
2237
        * msgmerge.c (message_merge): Add support for Report-Msgid-Bugs-To
 
2238
        field.
 
2239
        * xgettext.c (msgid_bugs_address): New variable.
 
2240
        (long_options): Add option --msgid-bugs-address.
 
2241
        (main): Handle option --msgid-bugs-address.
 
2242
        (usage): Document option --msgid-bugs-address.
 
2243
        (construct_header): Add 'Report-Msgid-Bugs-To:' field. Warn if
 
2244
        msgid_bugs_address is empty.
 
2245
 
 
2246
2003-02-15  Bruno Haible  <bruno@clisp.org>
 
2247
 
 
2248
        * user-email.in: Add support for GNOME evolution, OpenOffice and
 
2249
        StarOffice with nonstandard installation directory.
 
2250
 
 
2251
2003-02-15  Bruno Haible  <bruno@clisp.org>
 
2252
 
 
2253
        * msgattrib.c (main): Update year in --version output.
 
2254
        * msgcat.c (main): Likewise.
 
2255
        * msgcmp.c (main): Likewise.
 
2256
        * msgcomm.c (main): Likewise.
 
2257
        * msgconv.c (main): Likewise.
 
2258
        * msgen.c (main): Likewise.
 
2259
        * msgexec.c (main): Likewise.
 
2260
        * msgfilter.c (main): Likewise.
 
2261
        * msgfmt.c (main): Likewise.
 
2262
        * msgunfmt.c (main): Likewise.
 
2263
        * msguniq.c (main): Likewise.
 
2264
        * xgettext.c (main): Likewise.
 
2265
 
 
2266
2003-02-12  Bruno Haible  <bruno@clisp.org>
 
2267
 
 
2268
        Big restructuring.
 
2269
        * gettext.c: Remove file.
 
2270
        * ngettext.c: Remove file.
 
2271
        * Makefile.am (bin_PROGRAMS): Remove gettext, ngettext.
 
2272
        (EXTRA_DIST): Add ChangeLog.0.
 
2273
        (pkgdatadir): Define using 'gettext' instead of @PACKAGE@.
 
2274
        (pkglibdir): Likewise.
 
2275
        (INCLUDES): Refer to intl in gettext-runtime directory.
 
2276
        (gettext_SOURCES, ngettext_SOURCES, gettext_LDADD, ngettext_LDADD):
 
2277
        Remove variables.
 
2278
        (install-exec-local, installdirs-local, uninstall-local,
 
2279
        install-exec-java-yes, installdirs-java-yes, uninstall-java-yes): Use
 
2280
        $(pkglibdir) instead of $(libdir)/$(PACKAGE).
 
2281
        * plural.c: Update for changed directory structure.
 
2282
        * user-email.in: Use 'gettext' instead of @PACKAGE@.
 
2283
 
 
2284
 
 
2285
See ChangeLog.0 for earlier changes.