1 2003-01-31 Bruno Haible <bruno@clisp.org>
3 * gettext-po.h: New file.
4 * gettext-po.c: New file.
5 * Makefile.am (lib_LTLIBRARIES): Add libgettextpo.la.
6 (include_HEADERS): New variable.
7 (libgettextpo_la_SOURCES, libgettextpo_la_LDFLAGS): New variables.
8 (LTV_CURRENT, LTV_REVISION, LTV_AGE): New variables.
10 2003-01-24 Bruno Haible <bruno@clisp.org>
12 * msgattrib.c (long_options): Add --only-file and --ignore-file.
13 (main): Handle options --only-file and --ignore-file.
14 (usage): Document options --only-file and --ignore-file.
15 (process_message_list): Add arguments only_mdlp, ignore_mdlp.
16 (process_msgdomain_list): Likewise.
18 2003-01-23 Bruno Haible <bruno@clisp.org>
20 * po-gram.h: Don't include <sys/types.h>.
22 2003-01-23 Bruno Haible <bruno@clisp.org>
24 * msgmerge.c (use_fuzzy_matching): New variable.
25 (long_options): Add option -N/--no-fuzzy-matching.
26 (main, match_domain): Implement it.
29 2003-01-23 Bruno Haible <bruno@clisp.org>
31 * write-mo.c (write_table): Use xmalloc/free instead of alloca/freea
32 for most allocations. Needed for platforms with a small stack, such
33 as Woe32 with a default stack size of 1.2 MB.
34 Reported by Xiong Jiang <jxiong@offtopic.org>.
36 2003-01-23 Bruno Haible <bruno@clisp.org>
38 * format-c.c (get_c99_format_directives): Free the allocated
41 2003-01-18 Bruno Haible <bruno@clisp.org>
45 2003-01-12 Bruno Haible <bruno@clisp.org>
47 * msgconv.c: Include localcharset.h.
48 (locale_charset): Remove declaration.
49 * msginit.c: Include localcharset.h.
50 (locale_charset): Remove declaration.
51 * msgl-charset.c: Include localcharset.h.
52 (locale_charset): Remove declaration.
54 2003-01-12 Bruno Haible <bruno@clisp.org>
56 * format-java.c: Include alloca.h instead of liballoca.h.
57 * msggrep.c: Likewise.
58 * msginit.c: Likewise.
59 * msgl-cat.c: Likewise.
60 * msgl-charset.c: Likewise.
61 * msgl-iconv.c: Likewise.
62 * msgmerge.c: Likewise.
63 * po-charset.c: Likewise.
64 * read-tcl.c: Likewise.
65 * write-java.c: Likewise.
66 * write-mo.c: Likewise.
67 * write-po.c: Likewise.
68 * write-tcl.c: Likewise.
70 2003-01-12 Bruno Haible <bruno@clisp.org>
72 * Makefile.am: Make use of += for variables.
74 2003-01-12 Bruno Haible <bruno@clisp.org>
76 * write-po.c (wrap): Add an assertion, to protect against Solaris 2.9
79 2003-01-10 Bruno Haible <bruno@clisp.org>
81 * po-charset.c (po_lex_charset_set): Work around Solaris 2.9 iconv()
83 * write-po.c (wrap): Likewise.
85 2003-01-08 Bruno Haible <bruno@clisp.org>
87 * project-id: Make it work with configure files that use
88 AM_INIT_AUTOMAKE from automake-1.7.2.
90 2002-12-04 Bruno Haible <bruno@clisp.org>
92 Fix handling of references to filenames starting with a digit.
93 * po-hash-gen.y (last_was_colon): New variable.
94 (yylex): Update it for each token. Recognize numbers only immediately
96 (po_hash): Move function. Initialize last_was_colon.
97 Reported by Yanko Kaneti <yaneti@declera.com> and
98 Jordi Mallach <jordi@sindominio.net>.
100 2002-11-22 Bruno Haible <bruno@clisp.org>
102 * msgexec.c (process_string): Change test of full_write return value.
103 * msggrep.c (is_string_selected): Likewise.
104 * urlget.c (cat_file): Likewise.
106 2002-11-14 Bruno Haible <bruno@clisp.org>
108 * x-php.c (phase3_getc): Initialize variable last_was_qmark.
110 2002-11-13 Bruno Haible <bruno@clisp.org>
113 * dir-list.h (dir_list_append, dir_list_nth, dir_list_save_reset,
114 dir_list_restore): Use ANSI C function declarations.
115 * dir-list.c (dir_list_append, dir_list_nth, dir_list_restore):
117 * file-list.h (read_names_from_file): Likewise.
118 * file-list.c (read_names_from_file): Likewise.
119 * format.h (struct formatstring_parser, get_c99_format_directives):
121 * format-awk.c (numbered_arg_compare, format_parse, format_free,
122 format_get_number_of_directives, format_check, format_print): Likewise.
123 * format-c.c (numbered_arg_compare, format_parse, format_free,
124 format_get_number_of_directives, format_check,
125 get_c99_format_directives, format_print): Likewise.
126 * format-elisp.c (numbered_arg_compare, format_parse, format_free,
127 format_get_number_of_directives, format_check, format_print): Likewise.
128 * format-java.c (message_format_parse, date_format_parse,
129 number_format_parse, choice_format_parse, numbered_arg_compare,
130 format_parse, format_free, format_get_number_of_directives,
131 format_check, format_print): Likewise.
132 * format-librep.c (numbered_arg_compare, format_parse, format_free,
133 format_get_number_of_directives, format_check, format_print): Likewise.
134 * format-lisp.c (verify_element, verify_list, free_element, free_list,
135 copy_element, copy_list, equal_element, equal_list,
136 ensure_initial_alloc, grow_initial_alloc, ensure_repeated_alloc,
137 grow_repeated_alloc, normalize_outermost_list, normalize_list,
138 is_empty_list, unfold_loop, rotate_loop, initial_splitelement,
139 initial_unshare, shift_list, make_intersected_element,
140 append_repeated_to_initial, backtrack_in_initial,
141 make_intersected_list, make_intersection_with_empty_list,
142 intersection, make_union_element, make_union_list,
143 make_union_with_empty_list, union, is_required,
144 add_required_constraint, add_end_constraint, add_type_constraint,
145 add_listtype_constraint, add_req_type_constraint,
146 add_req_listtype_constraint, make_repeated_list_of_lists,
147 make_repeated_list, check_params, nocheck_params, parse_upto,
148 format_parse, format_free, format_get_number_of_directives,
149 format_check, print_element, print_list, format_print): Likewise.
150 * format-pascal.c (numbered_arg_compare, format_parse, format_free,
151 format_get_number_of_directives, format_check, format_print): Likewise.
152 * format-php.c (numbered_arg_compare, format_parse, format_free,
153 format_get_number_of_directives, format_check, format_print): Likewise.
154 * format-python.c (named_arg_compare, format_parse, format_free,
155 format_get_number_of_directives, format_check, format_print): Likewise.
156 * format-tcl.c (numbered_arg_compare, format_parse, format_free,
157 format_get_number_of_directives, format_check, format_print): Likewise.
158 * format-ycp.c (format_parse, format_free,
159 format_get_number_of_directives, format_check, format_print): Likewise.
160 * gettext.c (main, usage, expand_escape): Likewise.
161 * hostname.c (main, usage): Likewise.
162 * message.h (possible_format_p, message_alloc, message_free,
163 message_comment_append, message_comment_dot_append,
164 message_comment_filepos, message_copy, message_list_alloc,
165 message_list_free, message_list_append, message_list_prepend,
166 message_list_delete_nth, message_predicate_ty,
167 message_list_remove_if_not, message_list_search,
168 message_list_search_fuzzy, message_list_list_alloc,
169 message_list_list_free, message_list_list_append,
170 message_list_list_append_list, message_list_list_search,
171 message_list_list_search_fuzzy, msgdomain_alloc, msgdomain_free,
172 msgdomain_list_alloc, msgdomain_list_free, msgdomain_list_append,
173 msgdomain_list_append_list, msgdomain_list_sublist,
174 msgdomain_list_search, msgdomain_list_search_fuzzy): Likewise.
175 * message.c (possible_format_p, message_alloc, message_free,
176 message_comment_append, message_comment_dot_append,
177 message_comment_filepos, message_copy, message_list_alloc,
178 message_list_free, message_list_append, message_list_prepend,
179 message_list_delete_nth, message_list_remove_if_not,
180 message_list_search, message_list_search_fuzzy_inner,
181 message_list_search_fuzzy, message_list_list_free,
182 message_list_list_append, message_list_list_append_list,
183 message_list_list_search, message_list_list_search_fuzzy,
184 msgdomain_alloc, msgdomain_free, msgdomain_list_alloc,
185 msgdomain_list_free, msgdomain_list_append,
186 msgdomain_list_append_list, msgdomain_list_sublist,
187 msgdomain_list_search, msgdomain_list_search_fuzzy): Likewise.
188 * msgattrib.c (main, usage, is_message_selected, process_message_list,
189 process_msgdomain_list): Likewise.
190 * msgcat.c (main, usage): Likewise.
191 * msgcmp.c (main, usage, is_message_selected, remove_obsoletes,
192 match_domain, compare): Likewise.
193 * msgcomm.c (main, usage): Likewise.
194 * msgconv.c (locale_charset, main, usage): Likewise.
195 * msgen.c (main, usage): Likewise.
196 * msgexec.c (main, usage, nonintr_close, process_string,
197 process_message, process_message_list, process_msgdomain_list):
199 * msgfilter.c (main, usage, nonintr_close, nonintr_read, nonintr_write,
200 nonintr_select, process_string, process_message, process_message_list,
201 process_msgdomain_list): Likewise.
202 * msgfmt.c (main, usage, add_mo_suffix, new_domain, is_nonobsolete,
203 sigfpe_handler, check_plural_eval, check_plural, check_pair,
204 check_header_entry, format_constructor, format_debrief,
205 format_directive_domain, format_directive_message,
206 format_comment_special, read_po_file): Likewise.
207 * msggrep.c (main, no_pass, usage, filename_list_match, nonintr_close,
208 is_string_selected, is_message_selected, process_message_list,
209 process_msgdomain_list): Likewise.
210 * msginit.c (locale_charset, _nl_locale_name, _nl_expand_alias, main,
211 usage, catalogname_for_locale, language_of_locale, po_revision_date,
212 content_type, fields, get_field, put_field, subst_string,
213 subst_string_list, fill_header): Likewise.
214 * msgl-ascii.h (is_ascii_string, is_ascii_string_list,
215 is_ascii_message, is_ascii_message_list): Likewise.
216 * msgl-ascii.c (is_ascii_string, is_ascii_string_list,
217 is_ascii_message, is_ascii_message_list): Likewise.
218 * msgl-cat.h (catenate_msgdomain_list): Likewise.
219 * msgl-cat.c (is_message_selected, is_message_needed,
220 is_message_first_needed, catenate_msgdomain_list): Likewise.
221 * msgl-charset.h (compare_po_locale_charsets): Likewise.
222 * msgl-charset.c (locale_charset, compare_po_locale_charsets):
224 * msgl-english.h (msgdomain_list_english): Likewise.
225 * msgl-english.c (msgdomain_list_english): Likewise.
226 * msgl-equal.h (string_list_equal, message_equal, message_list_equal,
227 msgdomain_list_equal): Likewise.
228 * msgl-equal.c (msgstr_equal, msgstr_equal_ignoring_potcdate,
229 pos_equal, string_list_equal, message_equal, message_list_equal,
230 msgdomain_equal, msgdomain_list_equal): Likewise.
231 * msgl-iconv.h (convert_string, iconv_message_list,
232 iconv_msgdomain_list): Likewise.
233 * msgl-iconv.c (iconv_string, convert_string, convert_string_list,
234 convert_msgid, convert_msgstr, iconv_message_list,
235 iconv_msgdomain_list): Likewise.
236 * msgmerge.c (main, usage, compendium, msgfmt_check_pair_fails,
237 message_merge, match_domain, merge): Likewise.
238 * msgunfmt.c (main, usage): Likewise.
239 * msguniq.c (main, usage): Likewise.
240 * ngettext.c (main, usage, expand_escape): Likewise.
241 * open-po.h (open_po_file): Likewise.
242 * open-po.c (open_po_file): Likewise.
243 * po-charset.h (po_charset_canonicalize, po_charset_ascii_compatible,
244 po_is_charset_weird, po_is_charset_weird_cjk, po_lex_charset_init,
245 po_lex_charset_set, po_lex_charset_close): Likewise.
246 * po-charset.c (po_charset_canonicalize, po_charset_ascii_compatible,
247 po_is_charset_weird, po_is_charset_weird_cjk, po_lex_charset_set):
249 * po-gram.h (po_gram_parse): Likewise.
250 * po-hash-gen.y (yyerror, yylex, po_hash): Likewise.
251 * po-hash.h (po_hash): Likewise.
252 * po-lex.h (lex_start, lex_end, lex_open, lex_close, po_gram_lex,
253 po_lex_pass_comments, po_lex_pass_obsolete_entries, po_gram_error,
254 po_gram_error_at_line): Likewise.
255 * po-lex.c: Include <stdarg.h> instead of libstdarg.h.
256 (ALERT_CHAR): Remove macro.
257 (po_gram_error, po_gram_error_at_line): Use ANSI C function
258 declarations. Use va_start instead of VA_START.
259 (memcpy_small, mb_iseof, mb_ptr, mb_len, mb_iseq, mb_isnul, mb_cmp,
260 mb_equal, mb_isascii, mb_width, mb_putc, mb_setascii, mb_copy,
261 mbfile_init, mbfile_getc, mbfile_ungetc, lex_start, lex_open,
262 lex_getc, lex_ungetc, keyword_p, po_lex_pass_comments,
263 po_lex_pass_obsolete_entries): Use ANSI C function declarations.
264 * po-time.h (po_strftime): Likewise.
265 * po-time.c (difftm, po_strftime): Likewise.
266 * po.h (struct po_method_ty, po_alloc, po_scan, po_scan_file, po_free,
267 po_callback_domain, po_callback_message, po_callback_comment,
268 po_callback_comment_dot, po_callback_comment_filepos,
269 po_parse_comment_special): Likewise.
270 * po.c (po_alloc, po_free, po_parse_brief, po_parse_debrief, po_scan,
271 po_scan_file, po_directive_domain, po_callback_domain,
272 po_directive_message, po_callback_message, po_comment_special,
273 po_comment, po_comment_dot, po_callback_comment, po_comment_filepos,
274 po_callback_comment_filepos, po_parse_comment_special): Likewise.
275 * read-java.h (msgdomain_read_java): Likewise.
276 * read-java.c (execute_and_read_po_output, msgdomain_read_java):
278 * read-mo.h (read_mo_file): Likewise.
279 * read-mo.c (read_binary_mo_file, get_uint32, get_string,
280 get_sysdep_string, read_mo_file): Likewise.
281 * read-po.h (read_po, read_po_file): Likewise.
282 * read-po.c (readall_constructor, readall_destructor,
283 readall_directive_domain, readall_directive_message,
284 readall_parse_brief, readall_comment, readall_comment_dot,
285 readall_comment_special, readall_comment_filepos, read_po,
286 read_po_file): Likewise.
287 * read-tcl.h (msgdomain_read_tcl): Likewise.
288 * read-tcl.c (msgdomain_read_tcl): Likewise.
289 * str-list.h (string_list_init, string_list_alloc, string_list_append,
290 string_list_append_unique, string_list_destroy, string_list_free,
291 string_list_concat, string_list_concat_destroy, string_list_join,
292 string_list_member): Likewise.
293 * str-list.c (string_list_init, string_list_append,
294 string_list_append_unique, string_list_destroy, string_list_free,
295 string_list_concat, string_list_concat_destroy, string_list_join,
296 string_list_member): Likewise.
297 * urlget.c (main, usage, cat_file, execute_it, fetch): Likewise.
298 * write-java.h (msgdomain_write_java): Likewise.
299 * write-java.c (check_resource_name, string_hashcode,
300 compute_hashsize, compare_index, compute_table_items,
301 write_java_string, write_java_msgstr, write_lookup_code,
302 is_expression_boolean, write_java_expression, write_java_code,
303 cleanup, msgdomain_write_java): Likewise.
304 * write-mo.h (msgdomain_write_mo): Likewise.
305 * write-mo.c (compare_id, write_table, msgdomain_write_mo): Likewise.
306 * write-po.h (message_page_width_set, message_page_width_ignore,
307 message_print_style_indent, message_print_style_uniforum,
308 message_print_style_escape, msgdomain_list_print,
309 msgdomain_list_sort_by_msgid, msgdomain_list_sort_by_filepos):
311 * write-po.c (message_page_width_set, message_print_style_escape,
312 make_format_description_string, significant_format_p,
313 has_significant_format_p, make_c_width_description_string,
314 memcpy_small, wrap, print_blank_line, message_print,
315 message_print_obsolete, msgdomain_list_print, cmp_by_msgid,
316 msgdomain_list_sort_by_msgid, cmp_filepos,
317 msgdomain_list_sort_filepos, cmp_by_filepos,
318 msgdomain_list_sort_by_filepos): Likewise.
319 * write-tcl.h (msgdomain_write_tcl): Likewise.
320 * write-tcl.c (write_tcl_string, write_msg, msgdomain_write_tcl):
322 * x-awk.h (extract_awk, x_awk_keyword, x_awk_extract_all): Likewise.
323 * x-awk.c (ALERT_CHAR): Remove macro.
324 (x_awk_keyword, phase1_ungetc, phase2_ungetc, free_token, x_awk_lex,
325 extract_parenthesized, extract_awk): Use ANSI C function declarations.
326 * x-c.h (extract_c, x_c_extract_all, x_c_keyword, x_c_any_keywords,
327 x_c_trigraphs): Likewise.
328 * x-c.c (ALERT_CHAR): Remove macro.
329 (x_c_keyword, phase1_ungetc, phase2_ungetc, phase3_ungetc,
330 comment_add, comment_line_end, phase4_ungetc, phase7_ungetc,
331 free_token, phase5_get, phaseX_get, phase6_get, phase6_unget,
332 is_inttypes_macro, phase8a_get, phase8a_unget, phase8_get, x_c_lex,
333 extract_parenthesized, extract_c): Use ANSI C function declarations.
334 * x-elisp.h (extract_elisp, x_elisp_extract_all, x_elisp_keyword):
336 * x-elisp.c (ALERT_CHAR): Remove macro.
337 (x_elisp_keyword, do_ungetc, init_token, free_token, grow_token,
338 is_integer, is_float, read_token, comment_add, comment_line_end,
339 free_object, string_of_object, do_getc_escaped, read_object,
340 extract_elisp): Use ANSI C function declarations.
341 * x-glade.h (extract_glade, x_glade_extract_all, x_glade_keyword):
343 * x-glade.c (x_glade_keyword, XML_StartElementHandler,
344 XML_EndElementHandler, XML_CharacterDataHandler, XML_CommentHandler,
345 p_XML_ParserCreate, p_XML_SetElementHandler,
346 p_XML_SetCharacterDataHandler, p_XML_SetCommentHandler, p_XML_Parse,
347 p_XML_GetErrorCode, p_XML_GetCurrentLineNumber,
348 p_XML_GetCurrentColumnNumber, p_XML_ParserFree, p_XML_ErrorString,
349 ensure_stack_size, start_element_handler, end_element_handler,
350 character_data_handler, comment_handler, do_extract_glade,
351 extract_glade): Likewise.
352 * x-java.h (extract_java, x_java_keyword, x_java_extract_all):
354 * x-java.l (append_char_buf, get_string, destroy_charbuf,
355 update_line_no, strip_ending_spaces, append_strings, isplus, isdot,
356 translate_esc, object_list_destroy, get_num_objects, get_object,
357 add_object, alloc_keyword, tailcmp, do_compare, is_keyword,
358 x_java_keyword, extract_java): Likewise.
359 * x-librep.h (extract_librep, x_librep_extract_all, x_librep_keyword):
361 * x-librep.c (ALERT_CHAR): Remove macro.
362 (x_librep_keyword, do_ungetc, init_token, free_token, grow_token,
363 read_token, comment_add, comment_line_end, free_object,
364 string_of_object, do_getc_escaped, read_object, extract_librep): Use
365 ANSI C function declarations.
366 * x-lisp.h (extract_lisp, x_lisp_extract_all, x_lisp_keyword):
368 * x-lisp.c (x_lisp_keyword, do_ungetc, syntax_code_of,
369 read_char_syntax, attribute_of, init_token, free_token, grow_token,
370 read_token, has_a_dot, all_a_number, a_letter_to_digit, has_a_digit,
371 has_adjacent_letters, is_potential_number, is_number, upcase_token,
372 downcase_token, case_convert_token, comment_add, comment_line_end,
373 free_object, string_of_object, read_object, extract_lisp): Likewise.
374 * x-php.h (extract_php, x_php_keyword, x_php_extract_all): Likewise.
375 * x-php.c (x_php_keyword, phase1_ungetc, phase2_ungetc, comment_add,
376 comment_line_end, phase3_ungetc, free_token, x_php_lex,
377 extract_parenthesized, extract_php): Likewise.
378 * x-po.h (extract_po): Likewise.
379 * x-po.c (extract_constructor, extract_directive_domain,
380 extract_directive_message, extract_parse_brief, extract_comment,
381 extract_comment_dot, extract_comment_filepos, extract_comment_special,
382 extract_po): Likewise.
383 * x-python.h (extract_python, x_python_keyword, x_python_extract_all):
385 * x-python.c (ALERT_CHAR): Remove macro.
386 (x_python_keyword, phase1_ungetc, comment_add, phase2_ungetc,
387 phase7_getuc, phase5_get, phase5_unget, x_python_lex,
388 extract_parenthesized, extract_python): Use ANSI C function
390 * x-rst.h (extract_rst): Likewise.
391 * x-rst.c (extract_rst): Likewise.
392 * x-smalltalk.h (extract_smalltalk): Likewise.
393 * x-smalltalk.c (phase1_ungetc, comment_add, phase2_get, phase2_unget,
394 x_smalltalk_lex, extract_smalltalk): Likewise.
395 * x-tcl.h (extract_tcl, x_tcl_extract_all, x_tcl_keyword): Likewise.
396 * x-tcl.c (ALERT_CHAR): Remove macro.
397 (x_tcl_keyword, do_ungetc, phase1_ungetc, phase2_pop, phase2_ungetc,
398 init_token, free_token, grow_token, comment_add, free_word,
399 string_of_word, accumulate_word, read_word, read_command,
400 read_command_list, extract_tcl): Use ANSI C function declarations.
401 * x-ycp.h (extract_ycp): Likewise.
402 * x-ycp.c (phase1_ungetc, phase2_ungetc, x_ycp_lex, extract_ycp):
404 * xgettext.h (split_keywordspec, xgettext_comment_add,
405 xgettext_comment, xgettext_comment_reset, remember_a_message,
406 remember_a_message_plural): Likewise.
407 * xgettext.c (extractor_func, main, usage, exclude_directive_domain,
408 exclude_directive_message, read_exclusion_file, split_keywordspec,
409 xgettext_comment_add, xgettext_comment, xgettext_open,
410 extract_from_file, remember_a_message, remember_a_message_plural,
411 finalize_header, language_to_extractor, extension_to_language):
414 2002-11-05 Bruno Haible <bruno@clisp.org>
416 Allow non-ASCII msgids in POT files.
417 * po-charset.h (po_charset_utf8): New declaration.
418 * po-charset.c (utf8, po_charset_utf8): New variables.
419 (po_charset_canonicalize): Use po_charset_utf8.
420 * msgl-iconv.h: Include iconv.h.
421 (convert_string): New declaration.
422 * msgl-iconv.c (convert_string): Export function.
423 (convert_msgid): New function.
424 (iconv_message_list): Call it.
425 * xgettext.h: Include iconv.h.
426 (xgettext_global_source_encoding, xgettext_global_source_iconv,
427 xgettext_current_source_encoding, xgettext_current_source_iconv): New
429 * xgettext.c (xgettext_global_source_encoding,
430 xgettext_global_source_iconv, xgettext_current_source_encoding,
431 xgettext_current_source_iconv): New variables.
432 (long_options): New option --from-code.
433 (main): Initialize xgettext_global_source_encoding. Handle option
434 --from-code. Initialize and destroy xgettext_global_source_iconv.
435 (usage): Document option --from-code.
436 (extract_from_file): Set xgettext_current_source_encoding and
437 xgettext_current_source_iconv.
438 (CONVERT_STRING): New macro.
439 (remember_a_message, remember_a_message_plural): Call CONVERT_STRING.
440 (finalize_header): Set the charset in the header here.
441 * x-glade.c (do_extract_glade): Set xgettext_current_source_encoding.
442 Don't set the result's header charset; this is now done in xgettext.c.
443 * x-python.c (extract_python): Likewise.
444 * x-tcl.c (extract_tcl): Likewise.
445 * write-po.c (message_print, message_print_obsolete): Don't warn about
446 non-ASCII msgids if the file's encoding is UTF-8.
447 * msginit.c (content_type): Add header argument. Use charset UTF-8
448 if that was already the POT file's encoding.
450 * msgmerge.c (merge): If the POT file was in UTF-8, convert the
451 definitions to UTF-8.
452 * msgcmp.c (compare): Likewise.
454 2002-11-01 Bruno Haible <bruno@clisp.org>
456 * msgcmp.c: Include read-po.h.
457 (is_message_selected, remove_obsoletes): New functions.
458 (grammar, compare_constructor, compare_destructor,
459 compare_directive_domain, compare_directive_message): Remove functions.
460 (compare_class_ty): Remove type.
461 (compare_methods): Remove variable.
462 (compare): Use read_po_file instead.
464 2002-10-14 Bruno Haible <bruno@clisp.org>
466 * project-id: When testing for "GNU $package", ignore libtool, because
467 libtool.m4 calls a package "GNU $package" even if it is not GNU.
468 Reported by Andrew Suffield <asuffield@debian.org>.
470 2002-10-03 Bruno Haible <bruno@clisp.org>
472 * msgl-equal.h (message_equal, message_list_equal,
473 msgdomain_list_equal): Add 'ignore_potcdate' argument.
474 * msgl-equal-c (msgstr_equal, msgstr_equal_ignoring_potcdate): New
476 (message_equal, message_list_equal, msgdomain_equal,
477 msgdomain_list_equal): Add 'ignore_potcdate' argument.
478 * msgmerge.c (main): Call msgdomain_list_equal with ignore_potcdate =
481 2002-09-09 Bruno Haible <bruno@clisp.org>
483 * x-smalltalk.h: New file.
484 * x-smalltalk.c: New file.
485 * xgettext.c: Include x-smalltalk.h.
486 (usage): Mention Smalltalk language.
487 (language_to_extractor): Add Smalltalk support.
488 (extension_to_language): Likewise.
489 * Makefile.am (noinst_HEADERS): Add x-smalltalk.h.
490 (xgettext_SOURCES): Add x-smalltalk.c.
492 2002-08-18 Bruno Haible <bruno@clisp.org>
494 * message.h (enum format_type): New enum value 'format_php'.
495 (NFORMATS): Increment.
496 * message.c (format_language, format_language_pretty): Add entry
498 * format.h (formatstring_php): New declaration.
499 * format-php.c: New file.
500 * format.c (formatstring_parsers): Add entry for php.
503 * xgettext.c: Include x-php.c.
504 (main): Call x_php_extract_all, x_php_keyword.
505 (language_to_scanner): Add PHP rule.
506 (extension_to_language): Add PHP rule.
507 * Makefile.am (noinst_HEADERS): Add x-php.h.
508 (FORMAT_SOURCE): Add format-php.c.
509 (xgettext_SOURCES): Add x-php.c.
511 2002-08-17 Bruno Haible <bruno@clisp.org>
513 * urlget.c (fetch): Also try invoking the 'curl' program.
515 2002-08-06 Bruno Haible <bruno@clisp.org>
517 * gettext-0.11.5 released.
519 2002-08-02 Bruno Haible <bruno@clisp.org>
521 * read-mo.c (get_sysdep_string): Make the error message easier to
524 2002-07-25 Bruno Haible <bruno@clisp.org>
526 * gettext-0.11.4 released.
528 2002-07-21 Bruno Haible <bruno@clisp.org>
530 * format.h (struct interval): New type.
531 (get_c99_format_directives): New declaration.
532 * format-c.c (FAT_SIZE_8_T, FAT_SIZE_16_T, FAT_SIZE_32_T,
533 FAT_SIZE_64_T, FAT_SIZE_LEAST8_T, FAT_SIZE_LEAST16_T,
534 FAT_SIZE_LEAST32_T, FAT_SIZE_LEAST64_T, FAT_SIZE_FAST8_T,
535 FAT_SIZE_FAST16_T, FAT_SIZE_FAST32_T, FAT_SIZE_FAST64_T,
536 FAT_SIZE_INTPTR_T): New enum values.
537 (FAT_SIZE_MASK): Update.
538 (struct spec): New fields c99_directives_count, c99_directives.
539 (format_parse): Recognize C 99 <inttypes.h> macros. Set the new
540 fields c99_directives_count, c99_directives in the result.
541 (get_c99_format_directives): New function.
542 (format_print): Update.
543 * x-c.c (is_inttypes_macro, phase8a_get, phase8a_unget): New functions.
544 (phase8_get): Use phase8a_get instead of phase6_get.
545 * write-mo.c: Include format.h, xmalloc.h.
547 (struct pre_string): New type.
548 (struct pre_message): Renamed from struct id_str_pair.
549 (compare_id): Update.
550 (struct pre_sysdep_segment): New type.
551 (struct pre_segment_pair): New type.
552 (struct pre_sysdep_string): New type.
553 (struct pre_sysdep_message): New type.
554 (write_table): Rewritten.
555 * read-mo.c (endian): Remove variable.
556 (read32, seek32, string32): Remove functions.
557 (struct binary_mo_file): New type.
558 (read_binary_mo_file, get_uint32, get_string, get_sysdep_string): New
560 (read_mo_file): Reworked to work in-memory, without fseek/lseek calls.
561 * msgfmt.c (format_directive_message): Copy the is_format array.
562 Needed by write-mo.c.
564 2002-07-20 Andreas Schwab <schwab@suse.de>
566 * plural-eval.c: Include <signal.h> if !INTDIV0_RAISES_SIGFPE.
568 2002-07-17 Bruno Haible <bruno@clisp.org>
570 * gettext-0.11.3 released.
572 2002-07-17 Bruno Haible <bruno@clisp.org>
574 * dir-list.c: Include stdlib.h.
576 2002-07-16 Bruno Haible <bruno@clisp.org>
578 * read-java.c (msgdomain_read_java): Pass $GETTEXTJEXEDIR to
580 * urlget.c (fetch): Likewise.
581 * Makefile.am (DEFS): Define USEJEXE and GETTEXTJEXEDIR.
582 (GCJ, GCJFLAGS, USEJEXE): New variables.
583 (all-java*): Renamed to take into account BUILDJAVAEXE.
584 (install-data-java*): Likewise.
585 (installdirs-java*): Likewise.
586 (uninstall-java*): Likewise.
587 (install-exec-*): New rules.
588 (gnu.gettext.DumpResource, gnu.gettext.GetURL): New rules.
589 (CLEANFILES): Add them.
591 2002-07-16 Bruno Haible <bruno@clisp.org>
593 * project-id: Make it work when the configure file was generated by
594 autoconf-2.52 with AC_INIT and AM_INIT_AUTOMAKE(...).
596 2002-06-14 Bruno Haible <bruno@clisp.org>
598 * po-lex.c (mbfile_getc): Handle the case where iconv converts
599 some character and returns -1 at once; this can happen immediately
600 after an invalid multibyte sequence.
601 Reported by Andrew V. Samoilov <kai@cmail.ru>.
603 2002-06-08 Bruno Haible <bruno@clisp.org>
605 * user-email.in: Look at /etc/sysconfig/mail, found on SuSE Linux.
606 Suggested by Karl Eichwalder <ke@suse.de>.
608 2002-06-07 Bruno Haible <bruno@clisp.org>
610 * user-email.in: Look at /etc/mailname, found on Debian systems.
611 Suggested by Mark W. Eichin <eichin@thok.org>.
613 2002-06-07 Bruno Haible <bruno@clisp.org>
615 * msgfmt.c (install_sigfpe_handler): Assume the signal is always
616 SIGFPE, regardless of the platform.
617 (uninstall_sigfpe_handler): Likewise.
619 2002-05-29 Bruno Haible <bruno@clisp.org>
621 * dir-list.h (dir_list_save_reset, dir_list_restore): New declarations.
622 * dir-list.c (dir_list_save_reset, dir_list_restore): New functions.
623 * xgettext.c (main): Temporarily reset the dir_list while opening
624 reading the contents of the output file.
625 Reported by Mark Eichin <eichin@thok.org>.
627 2002-05-22 Bruno Haible <bruno@clisp.org>
629 * msgl-iconv.h (iconv_message_list): Add from_filename argument.
630 (iconv_msgdomain_list): Likewise.
631 * msgl-iconv.c (iconv_message_list): Add from_filename argument.
632 Don't give an error for POT files containing charset=CHARSET.
633 (iconv_msgdomain_list): Add from_filename argument.
634 * msgl-cat.c (catenate_msgdomain_list): Don't give an error for
635 POT files containing charset=CHARSET. Pass input file name to
637 * msgconv.c (main): Pass input file name to iconv_msgdomain_list.
638 * write-java.c (msgdomain_write_java): Update.
639 * write-tcl.c (msgdomain_write_tcl): Update.
640 * x-glade.c (do_extract_glade): Update.
641 * x-python.c (extract_python): Update.
642 * x-tcl.c (extract_tcl): Update.
644 2002-05-18 Bruno Haible <bruno@clisp.org>
646 * Makefile.am (RM): New variable.
647 (install-exec-am): Depend on install-exec-clean.
648 (install-exec-clean): New rule.
650 2002-05-14 Bruno Haible <bruno@clisp.org>
652 * write-po.c (wrap): Canonicalize the charset. Handle the case when
653 po_charset_canonicalize returns NULL.
654 Reported by Jan-Marek Glogowski <glogow@stud.fbi.fh-darmstadt.de>.
656 2002-05-12 Bruno Haible <bruno@clisp.org>
658 * po-charset.c (po_charset_canonicalize): Add ISO-8859-14, KOI8-T,
659 GEORGIAN-PS to the list of allowed encodings.
661 2002-04-30 Bruno Haible <bruno@clisp.org>
663 * hostname.c (ipv6_ntop): Provide a fallback definition for systems
664 that define s6_addr but no s6_addr16 element of 'struct in6_addr'.
665 Reported by Perry Rapp <PRapp@smartronix.com>.
667 2002-04-28 Bruno Haible <bruno@clisp.org>
669 * project-id: Recognize package name and version when given by a
670 two-argument AC_INIT invocation (autoconf 2.52 and newer).
672 2002-04-24 Bruno Haible <bruno@clisp.org>
674 * gettext-0.11.2 released.
676 2002-04-23 Bruno Haible <bruno@clisp.org>
678 * write-po.h (message_page_width_ignore): New declaration.
679 * write-po.c (wrap_strings): New variable.
680 (message_page_width_ignore): New function.
681 (wrap): Ignore the do_wrap argument if wrap_strings is false.
682 * msgattrib.c (long_options): Add --no-wrap option.
683 (main): Handle option --no-wrap.
684 (usage): Document option --no-wrap.
685 * msgcat.c: Likewise.
686 * msgcomm.c: Likewise.
687 * msgconv.c: Likewise.
689 * msgfilter.c: Likewise.
690 * msggrep.c: Likewise.
691 * msginit.c: Likewise.
692 * msgmerge.c: Likewise.
693 * msgunfmt.c: Likewise.
694 * msguniq.c: Likewise.
695 * xgettext.c: Likewise.
697 2002-04-19 Bruno Haible <bruno@clisp.org>
699 * msginit.c (catalogname_for_locale): Add wa_BE. Change Javanese from
702 2002-04-15 Bruno Haible <bruno@clisp.org>
704 * po-lex.h (po_gram_error): Treat Apple's version of GCC like non-GCC.
705 * po-lex.c (po_gram_error): Likewise.
706 Reported by Richard S. Blake <blakers@presence-group.com>.
708 2002-04-04 Bruno Haible <bruno@clisp.org>
710 * po-lex.h (po_gram_error): Use __VA_ARGS__ + 0 instead of __VA_ARGS__.
711 (po_gram_error_at_line): LIkewise.
712 Fixes syntax error when __VA_ARGS__ is empty.
713 Reported by Trond Eivind Glomsrød <teg@redhat.com>.
715 2002-04-04 Bruno Haible <bruno@clisp.org>
717 * msginit.c (find_pot): Add dummy return, to avoid gcc warning.
719 2002-03-12 Bruno Haible <bruno@clisp.org>
721 * gettext-0.11.1 released.
723 2002-03-10 Bruno Haible <bruno@clisp.org>
725 * x-python.c (phase7_getuc): Change type of buf to 'unsigned char[]'.
727 2002-03-07 Bruno Haible <bruno@clisp.org>
729 * Makefile.am (msginit_LDADD): Use @INTL_LIBTOOL_SUFFIX_PREFIX@o
730 instead of $(OBJEXT).
732 2002-03-05 Bruno Haible <bruno@clisp.org>
734 * hostname.c (s6_addr16): Define if not defined by the system.
735 (ipv6_ntop): Use s6_addr16 instead of in6_u.u6_addr16.
737 2002-03-05 Bruno Haible <bruno@clisp.org>
739 * xgettext.c (usage): Mention languages Python, awk, Tcl, RST, Glade.
741 2002-03-03 Bruno Haible <bruno@clisp.org>
743 * message.h (format_type): New enum value 'format_tcl'.
744 (NFORMATS): Increment.
745 * message.c (format_language): Add format_tcl entry.
746 (format_language_pretty): Likewise.
747 * format.h (formatstring_tcl): New declaration.
748 * format-tcl.c: New file.
749 * format.c (formatstring_parsers): Add formatstring_tcl.
752 * xgettext.c: Include x-tcl.h.
753 (main): Call x_tcl_extract_all, x_tcl_keyword.
754 (language_to_scanner): Add Tcl rule.
755 (extension_to_language): Add Tcl rule.
756 * write-tcl.h: New file.
757 * write-tcl.c: New file.
758 * msgfmt.c: Include write-tcl.h.
759 (tcl_mode, tcl_locale_name, tcl_base_directory): New variables.
760 (long_options): Add option "--tcl".
761 (main): Handle --tcl option. Set tcl_mode, tcl_locale_name,
762 tcl_base_directory. More checks for contradicting options. Call
764 (usage): Mention Tcl mode.
765 (format_directive_domain): Ignore domain directive if in Tcl mode.
766 * read-tcl.h: New file.
767 * read-tcl.c: New file.
768 * msgunfmt.c: Include read-tcl.h.
769 (tcl_mode, tcl_locale_name, tcl_base_directory): New variables.
770 (long_options): Add option "--tcl".
771 (main): Handle --tcl and -d options. Set tcl_mode, tcl_locale_name,
772 tcl_base_directory. More checks for contradicting options. Call
774 (usage): Mention Tcl mode.
775 * msgunfmt.tcl: New file.
776 * Makefile.am (noinst_HEADERS): Add read-tcl.h, write-tcl.h, x-tcl.h.
777 (EXTRA_DIST): Add msgunfmt.tcl.
778 (DEFS): Add -DGETTEXTDATADIR.
779 (FORMAT_SOURCE): Add format-tcl.c.
780 (msgfmt_SOURCES): Add write-tcl.c.
781 (msgunfmt_SOURCES): Add read-tcl.c.
782 (xgettext_SOURCES): Add x-tcl.c.
783 (install-tcl, installdirs-tcl, uninstall-tcl): New targets.
785 2002-03-02 Bruno Haible <bruno@clisp.org>
787 * msgfmt.c (check_pair): Don't count "&&" as an accelerator designator,
788 for consistency with Qt and KDE.
790 2002-02-24 Bruno Haible <bruno@clisp.org>
792 * po-lex.c: Include libstdarg.h.
793 (VA_START, va_alist, va_dcl): Remove macros.
794 (po_gram_error): Modernize varargs handling. Fix memory leak.
795 (po_gram_error_at_line): Likewise.
797 2002-02-21 Bruno Haible <bruno@clisp.org>
799 * msggrep.c: Include liballoca.h.
800 (grep_args): Add a third one.
801 (grep_argv): Likewise.
802 (long_options): Add --comment option.
803 (main): Handle option --comment/-C.
804 (usage): Document option -C.
805 (is_message_selected): If option -C is given, concatenate the
806 translator comments and run a third grep pass on the result.
808 2002-02-09 Bruno Haible <bruno@clisp.org>
810 * message.h (possible_format_p): Change return type to bool.
811 * message.c (possible_format_p): Likewise.
813 2002-01-14 Bruno Haible <bruno@clisp.org>
815 * x-glade.h: New file.
816 * x-glade.c: New file.
817 * xgettext.c: Include x-glade.h.
818 (main): Call x_glade_extract_all, x_glade_keyword.
819 (language_to_scanner): Add glade rule.
820 (extension_to_language): Add glade rule.
821 * Makefile.am (noinst_HEADERS): Add x-glade.h.
822 (xgettext_SOURCES): Add x-glade.c.
823 (xgettext_LDADD): Add @LTLIBEXPAT@.
825 2002-01-27 Bruno Haible <bruno@clisp.org>
827 * message.h (format_type): New enum value 'format_awk'.
828 (NFORMATS): Increment.
829 * message.c (format_language): Add format_awk entry.
830 (format_language_pretty): Likewise.
831 * format.h (formatstring_awk): New declaration.
832 * format-awk.c: New file.
833 * format.c (formatstring_parsers): Add formatstring_awk.
836 * xgettext.c: Include x-awk.h.
837 (main): Call x_awk_extract_all, x_awk_keyword.
838 (language_to_scanner): Add awk rule.
839 (extension_to_language): Add awk rule.
840 * Makefile.am (noinst_HEADERS): Add x-awk.h.
841 (FORMAT_SOURCE): Add format-awk.c.
842 (xgettext_SOURCES): Add x-awk.c.
844 2002-02-02 Bruno Haible <bruno@clisp.org>
846 * x-python.h: New file.
847 * x-python.c: New file.
848 * xgettext.c: Include x-python.h.
849 (main): Call x_python_extract_all, x_python_keyword.
850 (language_to_scanner): Add Python rule.
851 (extension_to_language): Add Python rule.
852 * Makefile.am (noinst_HEADERS): Add x-python.h.
853 (INCLUDES): Add -I$(top_srcdir)/libuniname.
854 (LIBUNINAME): New variable.
855 (xgettext_SOURCES): Add x-python.c.
856 (xgettext_LDADD): Add $(LIBUNINAME).
858 2002-02-03 Bruno Haible <bruno@clisp.org>
860 * msgfmt.c (check_header_entry): Terminate the error strings with
863 2002-02-03 Bruno Haible <bruno@clisp.org>
865 * plural-table.h: New file.
866 * plural-table.c: New file.
867 * msginit.c: Include plural-table.h.
868 (plural_forms): Use plural_table.
869 * msgfmt.c: Include plural-table.h.
870 (check_plural): Print a recommendation about the right plural formula.
871 * Makefile.am (noinst_HEADERS): Add plural-table.h.
872 (libgettextsrc_la_SOURCES): Add plural-table.c.
874 2002-02-03 Bruno Haible <bruno@clisp.org>
876 * xgettext.c (finalize_header): New function.
879 2002-02-03 Bruno Haible <bruno@clisp.org>
881 * msginit.c (fill_header): Also replace "PACKAGE" in the comment.
883 2002-02-02 Bruno Haible <bruno@clisp.org>
885 * Makefile.am (INCLUDES): Add -I../lib. Needed for builds with
886 builddir != srcdir on platforms that don't have fnmatch and stdbool.h.
888 2002-01-31 Bruno Haible <bruno@clisp.org>
890 * gettext-0.11 released.
892 2002-01-31 Bruno Haible <bruno@clisp.org>
894 * plural-eval.h: Include eval-plural.h instead of plural-eval.c.
896 2002-01-30 Bruno Haible <bruno@clisp.org>
898 Make the gettext and ngettext programs independent of libgettextlib.
899 * Makefile.am (gettext_LDADD, ngettext_LDADD): New variables.
901 2002-01-27 Bruno Haible <bruno@clisp.org>
903 * x-ycp.c (enum token_type_ty): New enum value token_type_symbol.
904 (x_ycp_lex): Assign a value to tp->string if and only if the type is
905 token_type_string_literal or token_type_symbol.
906 (extract_ycp): Simplify cleanup.
908 2002-01-27 Bruno Haible <bruno@clisp.org>
910 * x-java.l (extract_java): Don't create a plural message if the
911 function can take two string argument but actually has only one
914 2002-01-27 Bruno Haible <bruno@clisp.org>
916 * x-lisp.c (extract_lisp): Free memory allocated in toplevel_object.
917 * x-elisp.c (string_of_object): Use memcpy.
918 (extract_elisp): Free memory allocated in toplevel_object.
919 * x-librep.c (string_of_object): Use memcpy.
920 (extract_librep): Free memory allocated in toplevel_object.
922 2002-01-27 Bruno Haible <bruno@clisp.org>
924 * x-c.c (ALERT_CHAR): New macro.
925 (phase7_getc): Accept \a and \v as well.
927 * x-c.c (free_token): New inline function.
928 (phase6_get): Use it.
930 2002-01-27 Bruno Haible <bruno@clisp.org>
932 * format-elisp.c (format_check): Don't use Java syntax for format
933 argument number in error message.
934 * format-librep.c (format_check): Likewise.
935 * format-pascal.c (format_check): Likewise.
937 2002-01-24 Bruno Haible <bruno@clisp.org>
939 * Makefile.am (LDADD): Use @LTLIBINTL@ instead of @INTLLIBS@.
940 (libgettextsrc_la_LDFLAGS): Likewise. Use @LTLIBICONV@ instead of
943 2002-01-21 Bruno Haible <bruno@clisp.org>
945 * msggrep.c (main): On SunOS4, don't pass option "-q" to grep.
947 2002-01-19 Bruno Haible <bruno@clisp.org>
949 * msgfmt.c (check_header_entry): Emit error messages including the
952 2002-01-19 Bruno Haible <bruno@clisp.org>
954 * open-po.c (open_po_file): Use 'size_t' instead of 'int'.
955 * x-java.l (translate_esc): Likewise.
956 * read-mo.c (read_mo_file): Use 'unsigned int' instead of 'int'.
958 2002-01-13 Bruno Haible <bruno@clisp.org>
960 * msgl-iconv.c (iconv_message_list): Don't complain by a nonportable
961 encoding name if it has been overridden by an argument canon_from_code.
963 2002-01-13 Bruno Haible <bruno@clisp.org>
965 * msgl-ascii.c (is_ascii_message): Don't consider a message as being
966 ASCII if its msgid or msgid_plural is not ASCII.
968 2002-01-12 Bruno Haible <bruno@clisp.org>
970 * gettext.c (main): Update year in --version output.
971 * ngettext.c (main): Likewise.
972 * msgattrib.c (main): Likewise.
973 * msgcat.c (main): Likewise.
974 * msgcmp.c (main): Likewise.
975 * msgcomm.c (main): Likewise.
976 * msgconv.c (main): Likewise.
977 * msgen.c (main): Likewise.
978 * msgexec.c (main): Likewise.
979 * msgfilter.c (main): Likewise.
980 * msgfmt.c (main): Likewise.
981 * msggrep.c (main): Likewise.
982 * msginit.c (main): Likewise.
983 * msgmerge.c (main): Likewise.
984 * msgunfmt.c (main): Likewise.
985 * msguniq.c (main): Likewise.
986 * xgettext.c (main): Likewise.
988 2002-01-11 Bruno Haible <bruno@clisp.org>
990 * write-po.c: Include po-charset.h.
992 2002-01-11 Bruno Haible <bruno@clisp.org>
994 * msgfmt.c (install_sigfpe_handler, uninstall_sigfpe_handler): On AIX,
995 treat SIGTRAP like SIGFPE.
997 2002-01-09 Bruno Haible <bruno@clisp.org>
999 * msgfmt.c (USE_SIGINFO): New macro.
1000 (sigfpe_code, sigfpe_handler, install_sigfpe_handler,
1001 uninstall_sigfpe_handler, check_plural_eval): Use USE_SIGINFO instead
1003 (install_sigfpe_handler, uninstall_sigfpe_handler): On Irix, treat
1004 SIGTRAP like SIGFPE.
1006 2002-01-09 Bruno Haible <bruno@clisp.org>
1008 * x-java.l (strip_ending_spaces): Fix logic.
1010 2002-01-09 Tommy Johansson <tommy.johansson@kanalen.org>
1012 * x-java.l: Avoid endless loop when encountering unterminated string.
1014 2002-01-08 Bruno Haible <bruno@clisp.org>
1016 * message.h (format_type): New enum value 'format_elisp'.
1017 (NFORMATS): Increment.
1018 * message.c (format_language): Add format_elisp entry.
1019 (format_language_pretty): Likewise.
1020 * format.h (formatstring_elisp): New declaration.
1021 * format-elisp.c: New file.
1022 * format.c (formatstring_parsers): Add formatstring_elisp.
1023 * x-elisp.h: New file.
1024 * x-elisp.c: New file.
1025 * xgettext.c: Include x-elisp.h.
1026 (main): Call x_elisp_extract_all, x_elisp_keyword.
1027 (usage): Mention the languages Lisp, EmacsLisp, librep.
1028 (language_to_scanner): Add elisp rule.
1029 (extension_to_language): Add elisp rule.
1030 * Makefile.am (noinst_HEADERS): Add x-elisp.h.
1031 (FORMAT_SOURCE): Add format-elisp.c.
1032 (xgettext_SOURCES): Add x-elisp.c.
1034 2002-01-06 Bruno Haible <bruno@clisp.org>
1036 * x-librep.c (read_object): Fix handling of #[ and #(.
1038 2002-01-06 Bruno Haible <bruno@clisp.org>
1040 * x-lisp.c (read_object): Treat ',.' like ',@'.
1042 2002-01-05 Bruno Haible <bruno@clisp.org>
1044 Make "msgmerge --update" work better on CJK files even if iconv() is
1046 * po-charset.h (po_is_charset_weird): New declaration.
1047 (po_is_charset_weird_cjk): Likewise..
1048 (po_lex_weird_cjk): New variable declaration.
1049 * po-charset.c (po_is_charset_weird): New function, extracted from
1051 (po_is_charset_weird_cjk): New function.
1052 (po_lex_weird_cjk): New variable.
1053 (po_lex_charset_init): Initialize po_lex_weird_cjk.
1054 (po_lex_charset_set): Call po_is_charset_weird and
1055 po_is_charset_weird_cjk. Set po_lex_weird_cjk.
1056 (po_lex_charset_close): Reset po_lex_weird_cjk.
1057 * po-lex.c (mbfile_getc): If po_lex_weird_cjk is set, possibly return
1058 a double byte instead of single byte.
1059 * write-po.c (wrap): Call po_is_charset_weird_cjk. If it returns true,
1060 group double bytes where possible.
1062 2002-01-05 Bruno Haible <bruno@clisp.org>
1064 * gettext.c: TESTS version is now separate.
1066 2002-01-05 Bruno Haible <bruno@clisp.org>
1068 * x-java.l (extract_java): Avoid "uninitialized variable" warnings.
1069 Free a temporary string.
1071 2002-01-05 Bruno Haible <bruno@clisp.org>
1073 * Makefile.am (libgettextsrc_la_LDFLAGS): Add -lc. Needed on AIX.
1075 2002-01-05 Bruno Haible <bruno@clisp.org>
1077 * x-c.c (buflen): Make static.
1078 * x-librep.c (buflen): Likewise.
1079 * x-lisp.c (buflen): Likewise.
1081 2001-12-23 Bruno Haible <bruno@clisp.org>
1083 * msgexec.c (process_string): Use xsetenv instead of setenv.
1084 * msginit.c (canonical_locale_charset): Likewise.
1085 (get_title): Likewise.
1087 2001-12-22 Bruno Haible <bruno@clisp.org>
1089 * dir-list.c: Include <stddef.h> instead of <stdlib.h>.
1090 * xgettext.h: Likewise.
1091 * file-list.c: Include exit.h instead of system.h.
1092 * gettext.c: Likewise.
1093 * hostname.c: Likewise.
1094 * msgattrib.c: Likewise.
1095 * msgcat.c: Likewise.
1096 * msgcomm.c: Likewise.
1097 * msgconv.c: Likewise.
1098 * msgexec.c: Likewise.
1099 * msgunfmt.c: Likewise.
1100 * msguniq.c: Likewise.
1101 * ngettext.c: Likewise.
1102 * read-java.c: Likewise.
1103 * x-ycp.c: Likewise.
1104 * msgcmp.c: Include exit.h instead of system.h. Don't include
1106 * msgfilter.c: Likewise.
1107 * msgen.c: Include exit.h instead of system.h. Don't include xmalloc.h.
1108 * msgfmt.c: Include exit.h, stpcpy.h instead of system.h. Don't
1109 include <errno.h>, getline.h.
1110 * msggrep.c: Include exit.h instead of system.h. Don't include
1112 * msginit.c: Include liballoca.h, <limits.h>, exit.h, pathname.h
1113 instead of system.h.
1114 * msgl-cat.c: Include liballoca.h, exit.h instead of system.h.
1115 Include <stddef.h> instead of <stdlib.h>.
1116 * msgl-charset.c: Likewise.
1117 * msgl-iconv.c: Include liballoca.h, exit.h instead of system.h.
1118 * write-po.c: Likewise.
1119 * msgmerge.c: Include liballoca.h, exit.h, strcase.h, stpcpy.h,
1120 stpncpy.h instead of system.h.
1121 * format-java.c: Include liballoca.h instead of system.h.
1122 * format-lisp.c: Don't include system.h.
1123 * open-po.c: Include pathname.h, xmalloc.h instead of system.h.
1124 Don't include <sys/types.h>, error.h.
1125 * po-charset.c: Include liballoca.h, string.h, strcase.h instead of
1126 system.h. Don't include error.h. Include progname.h.
1127 (program_name): Remove declaration.
1128 * po-gram-gen.y: Include <string.h>.
1129 * po-hash-gen.y: Include <string.h>.
1130 * po-lex.c: Include exit.h instead of system.h. Don't include
1132 * read-mo.c: Include binary-io.h, exit.h instead of system.h.
1133 Include <stddef.h> instead of <stdlib.h>.
1134 * urlget.c: Include <unistd.h>, binary-io.h, exit.h instead of
1136 (O_BINARY): Remove fallback definition.
1137 * write-java.c: Include liballoca.h, pathname.h instead of system.h.
1138 * write-mo.c: Include liballoca.h, binary-io.h, exit.h instead of
1139 system.h. Don't include msgfmt.h.
1140 * x-c.c: Include exit.h instead of system.h. Don't include <ctype.h>.
1141 * x-librep.c: Include exit.h instead of system.h. Include hash.h.
1142 * x-lisp.c: Likewise.
1143 * x-rst.c: Include exit.h instead of system.h. Include <stddef.h>
1144 instead of <stdlib.h>.
1145 * xgettext.c: Include <string.h>, exit.h, pathname.h, strcase.h,
1146 stpcpy.h instead of system.h. Include str-list.h. Don't include
1147 <sys/param.h>, <pwd.h>, <sys/types.h>, <unistd.h>, getline.h.
1148 (getpwuid): Remove declaration.
1150 2001-12-21 Bruno Haible <bruno@clisp.org>
1152 * format-lisp.c: Include minmax.h.
1154 2001-12-21 Bruno Haible <bruno@clisp.org>
1156 * file-list.c: Include gettext.h instead of libgettext.h.
1157 * format-c.c: Likewise.
1158 * format-java.c: Likewise.
1159 * format-librep.c: Likewise.
1160 * format-lisp.c: Likewise.
1161 * format-pascal.c: Likewise.
1162 * format-python.c: Likewise.
1163 * format-ycp.c: Likewise.
1164 * gettext.c: Likewise.
1165 * hostname.c: Likewise.
1166 * msgattrib.c: Likewise.
1167 * msgcat.c: Likewise.
1168 * msgcmp.c: Likewise.
1169 * msgcomm.c: Likewise.
1170 * msgconv.c: Likewise.
1171 * msgen.c: Likewise.
1172 * msgexec.c: Likewise.
1173 * msgfilter.c: Likewise.
1174 * msgfmt.c: Likewise.
1175 * msggrep.c: Likewise.
1176 * msginit.c: Likewise.
1177 * msgl-cat.c: Likewise.
1178 * msgl-charset.c: Likewise.
1179 * msgl-iconv.c: Likewise.
1180 * msgmerge.c: Likewise.
1181 * msgunfmt.c: Likewise.
1182 * msguniq.c: Likewise.
1183 * ngettext.c: Likewise.
1184 * open-po.c: Likewise.
1185 * po-charset.c: Likewise.
1186 * po-gram-gen.y: Likewise.
1187 * po-lex.c: Likewise.
1188 * read-java.c: Likewise.
1189 * read-mo.c: Likewise.
1190 * read-po.c: Likewise.
1191 * urlget.c: Likewise.
1192 * write-java.c: Likewise.
1193 * write-mo.c: Likewise.
1194 * write-po.c: Likewise.
1196 * x-librep.c: Likewise.
1197 * x-lisp.c: Likewise.
1199 * x-rst.c: Likewise.
1200 * x-ycp.c: Likewise.
1201 * xgettext.c: Likewise.
1203 2001-12-21 Bruno Haible <bruno@clisp.org>
1205 * message.h (message_merge): Remove declaration.
1206 * message.c (msgfmt_check_pair_fails, message_merge): Move to
1208 * msgmerge.c (msgfmt_check_pair_fails, message_merge): Moved to here
1211 2001-12-20 Bruno Haible <bruno@clisp.org>
1213 * format-java.c: Include system.h.
1214 * format-lisp.c (parse_upto): Fix prototype. char promotes to int.
1215 * po-lex.c (mb_iseq, mb_setascii): Likewise.
1216 * po-hash-gen.y: alloca fix for AIX 3.
1217 * x-lisp.c (syntax_code_of, read_char_syntax, attribute_of, is_number):
1218 Move prototypes, to avoid compilation errors on AIX 3.
1219 (syntax_code_of, attribute_of): Fix prototype. unsigned char promotes
1221 * x-java.l (TOKEN_TYPE): Remove trailing comma in enum.
1222 (PARSER_STATE): Likewise.
1223 * msgfilter.c: Include <sys/select.h> on AIX.
1225 2001-12-12 Bruno Haible <bruno@clisp.org>
1227 * xgettext.c: Include <limits.h>.
1228 (copyright_holder): New variable.
1229 (foreign_user): Remove variable.
1230 (long_options): Add --copyright-holder option.
1231 (main): Implement --copyright-holder option.
1232 (usage): Document --copyright-holder option.
1233 (construct_header): Use the copyright_holder variable. If it is
1234 empty, add a "public domain" comment.
1236 2001-12-17 Bruno Haible <bruno@clisp.org>
1238 * msggrep.c: Include <fnmatch.h>.
1239 (filename_list_match): New function.
1240 (is_message_selected): Use it instead of string_list_member.
1242 2001-12-16 Bruno Haible <bruno@clisp.org>
1244 * message.h (format_type): New enum value 'format_librep'.
1245 (NFORMATS): Increment.
1246 * message.c (format_language): Add format_librep entry.
1247 (format_language_pretty): Likewise.
1248 * format.h (formatstring_librep): New declaration.
1249 * format-librep.c: New file.
1250 * format.c (formatstring_parsers): Add formatstring_librep.
1251 * x-librep.h: New file.
1252 * x-librep.c: New file.
1253 * xgettext.c: Include x-librep.h.
1254 (main): Call x_librep_extract_all, x_librep_keyword.
1255 (language_to_scanner): Add librep rule.
1256 (extension_to_language): Add librep rule.
1257 * Makefile.am (noinst_HEADERS): Add x-librep.h.
1258 (FORMAT_SOURCE): Add format-librep.c.
1259 (xgettext_SOURCES): Add x-librep.c.
1261 2001-12-15 Bruno Haible <bruno@clisp.org>
1263 * msgfmt.c (check_plural): Use ngettext for two messages.
1264 Reported by Primoz Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>.
1266 2001-12-15 Bruno Haible <bruno@clisp.org>
1268 * xgettext.c (remember_a_message_plural): Mark the message as xx-format
1269 if the English plural form has xx format syntax and the singular form
1270 may or may not have xx format syntax.
1272 2001-12-15 Bruno Haible <bruno@clisp.org>
1274 * format.h (struct formatstring_parser): Add 'equality' and
1275 'pretty_msgstr' arguments to 'check' field.
1276 * format-c.c (format_check): Add 'equality' and 'pretty_msgstr'
1278 * format-java.c (format_check): Likewise.
1279 * format-lisp.c (format_check): Likewise.
1280 * format-pascal.c (format_check): Likewise.
1281 * format-python.c (format_check): Likewise.
1282 * format-ycp.c (format_check): Likewise.
1283 * msgfmt.c (check_pair): Check messages with plural forms as well.
1284 * message.c (msgfmt_check_pair_fails): Add msgid_plural, msgstr_len
1285 arguments. Check messages with plural forms as well.
1286 (message_merge): Check messages with plural forms as well.
1288 2001-12-11 Bruno Haible <bruno@clisp.org>
1290 * x-java.l (strip_ending_spaces): Fix isspace call.
1292 * xgettext.h (xgettext_omit_header): Renamed from omit_header.
1293 * xgettext.c (xgettext_omit_header): Likewise.
1294 (long_options, main, remember_a_message): Update.
1295 * x-po.c (extract_directive_message): Update.
1297 2001-12-09 Bruno Haible <bruno@clisp.org>
1299 * x-lisp.h: New file.
1300 * x-lisp.c: New file.
1301 * xgettext.c: Include x-lisp.h.
1302 (main): Call x_lisp_extract_all, x_lisp_keyword.
1303 (language_to_scanner): Add Lisp rule. Remove preliminary Lisp rule.
1304 (extension_to_language): Add Lisp rule.
1305 * Makefile.am (noinst_HEADERS): Add x-lisp.h.
1306 (xgettext_SOURCES): Add x-lisp.c.
1308 2001-12-09 Bruno Haible <bruno@clisp.org>
1310 * xgettext.h (split_keywordspec): New declaration.
1311 * xgettext.c (split_keywordspec): New function.
1312 * x-c.c (x_c_keyword): Use split_keywordspec.
1313 * x-java.l (extract_keyword, extract_msgid_arg,
1314 extract_msgid_plural_arg): Remove functions.
1315 (x_java_keyword): Use split_keywordspec.
1317 2001-12-09 Bruno Haible <bruno@clisp.org>
1321 2001-12-08 Bruno Haible <bruno@clisp.org>
1323 * msgattrib.c (process_message_list): Never make the header entry
1326 2001-12-08 Bruno Haible <bruno@clisp.org>
1328 * msgfilter.c (main): Fix getopt_long string: -i takes an argument.
1330 2001-12-08 Bruno Haible <bruno@clisp.org>
1332 * xgettext.c (remember_a_message): Don't print the line number if it
1335 2001-12-08 Bruno Haible <bruno@clisp.org>
1337 * msgfilter.c: Renamed from msgexec.c.
1338 * msgexec.c: New file.
1339 * Makefile.am (bin_PROGRAMS): Add msgfilter.
1340 (msgfilter_SOURCES): New variable.
1341 (msgfilter_LDADD): New variable.
1343 2001-12-07 Bruno Haible <bruno@clisp.org>
1345 * msgexec.c (keep_header): New variable.
1346 (long_options): New option --keep-header.
1347 (usage): Document option --keep-header.
1348 (process_message): Implement --keep-header.
1350 2001-12-06 Bruno Haible <bruno@clisp.org>
1352 * format.h (struct formatstring_parser): Add 'noisy' argument to
1354 * format-c.c (format_check): Add 'noisy' argument.
1355 * format-java.c (format_check): Likewise.
1356 * format-lisp.c (format_check): Likewise.
1357 * format-pascal.c (format_check): Likewise.
1358 * format-python.c (format_check): Likewise.
1359 * format-ycp.c (format_check): Likewise.
1360 * msgfmt.c (check_pair): Pass noisy=true.
1361 * message.c: Include format.h.
1362 (msgfmt_check_pair_fails): New function.
1363 (message_merge): Set fuzzy flag when adding a -format specifier that
1364 needs the translator's attention.
1366 2001-12-10 Bruno Haible <bruno@clisp.org>
1368 * x-java.l (tailcmp): If s1 ends with s2, it must be either equal to
1369 s2 or have a dot right before s2.
1371 2001-12-01 Bruno Haible <bruno@clisp.org>
1373 * msginit.c (project_id): Make it possible to specify the location
1374 of the project-id script through an environment variable.
1375 (project_id_version): Likewise.
1377 2001-12-03 Tommy Johansson <tommy.johansson@kanalen.org>
1379 * x-java.l (tailcmp): New function.
1380 (do_compare): Use it instead of strcmp.
1381 (extract_java): After seeing an invocation, don't set the state to
1384 2001-11-30 Bruno Haible <bruno@clisp.org>
1386 * message.c (message_merge): Determine whether postprocessing is
1388 * msgmerge.c (match_domain): Postprocess some problematic cases.
1389 * Makefile.am (libgettextsrc_la_SOURCES): Add plural.c.
1390 (msgfmt_SOURCES): Remove plural.c.
1392 2001-11-29 Bruno Haible <bruno@clisp.org>
1394 * plural-eval.c: Include config.h and plural-exp.h.
1396 2001-11-27 Bruno Haible <bruno@clisp.org>
1398 * msgfmt.c (struct msgfmt_class_ty): New field
1399 'has_nonfuzzy_header_entry'.
1400 (format_constructor): Initialize it.
1401 (format_debrief): Give a warning if the header entry exists but is
1403 (format_directive_message): Update has_nonfuzzy_header_entry.
1405 2001-11-25 Bruno Haible <bruno@clisp.org>
1407 * x-c.c (comment_start, comment_add, comment_line_end): New inline
1409 (phase4_getc): Use them.
1411 2001-11-25 Bruno Haible <bruno@clisp.org>
1413 * msginit.c (no_translator): New variable.
1414 (long_options): Add option --no-translator.
1415 (main): Handle option --no-translator.
1416 (usage): Document option --no-translator.
1417 (po_revision_date): Add header argument. Return POT's creation date
1419 (last_translator): Return a dummy string if no_translator.
1420 (language_team): Likewise.
1421 (fields): Allow getter with 0 or 1 argument.
1422 (get_field): New function.
1423 (fill_header): Call getter with 0 or 1 argument.
1425 2001-11-25 Bruno Haible <bruno@clisp.org>
1427 * msginit.c (canonical_locale_charset): Return the charset of 'locale'
1429 (get_title): Return a correct value even if 'locale' is a nonexistent
1432 2001-11-24 Bruno Haible <bruno@clisp.org>
1434 * urlget.c (fetch): Call execute_java_class with quiet=true. If Java
1435 program failed, try wget or lynx.
1437 * read-java.c (msgdomain_read_java): Update for changed
1438 execute_java_class parameter list.
1440 2001-11-24 Bruno Haible <bruno@clisp.org>
1442 * msgexec.c (process_message): Really process each plural form once.
1444 2001-11-17 Bruno Haible <haible@clisp.cons.org>
1446 * msgfmt.c (is_nonobsolete): New function.
1447 (main): Remove obsolete messages after reading all input files.
1448 (check_header_entry): New function, extracted from
1449 format_directive_message.
1450 (format_directive_message): Perform duplicate checking also on
1451 obsolete, untranslated and fuzzy messages, like msgmerge and the
1452 other tools do. Put also obsolete, untranslated and fuzzy messages
1453 on the result list, but mark them obsolete.
1454 (read_po_file): Call po_lex_pass_obsolete_entries.
1456 2001-11-17 Bruno Haible <haible@clisp.cons.org>
1458 * po.c (po_callback_message): Ignore obsolete header entries, for
1459 consistency with msgdomain_list_print(), compare_po_locale_charsets(),
1460 iconv_message_list(), catenate_msgdomain_list().
1462 2001-11-17 Bruno Haible <haible@clisp.cons.org>
1464 * msgfmt.c (struct msg_domain): Remove symbol_tab field.
1465 (main, new_domain): Update.
1466 (format_directive_message): Use message_list_search instead of
1467 explicit hash table calls.
1469 2001-11-17 Bruno Haible <haible@clisp.cons.org>
1471 * message.h: Include hash.h.
1472 (message_list_ty): Add use_hashtable, htable fields.
1473 (message_list_alloc): Add 'use_hashtable' argument.
1474 (msgdomain_alloc): Likewise.
1475 (msgdomain_list_ty): Add use_hashtable field.
1476 (msgdomain_list_alloc): Add 'use_hashtable' argument.
1477 * message.c: Include hash.h.
1478 (message_list_alloc): Add 'use_hashtable' argument.
1479 (message_list_free): Delete the hash table if present.
1480 (message_list_append): If a hash table is in use, verify no duplicates.
1481 (message_list_prepend): Likewise.
1482 (message_list_remove_if_not): Remove hash table after removal.
1483 (message_list_search): Use hash table if present.
1484 (msgdomain_alloc): Add 'use_hashtable' argument.
1485 (msgdomain_list_alloc): Add 'use_hashtable' argument.
1486 (msgdomain_list_sublist): Use 'use_hashtable'.
1487 * msgcmp.c (compare): Update.
1488 (compare_constructor): Allocate a message list with hash table.
1489 * msgfmt.c (new_domain): Allocate a message list with hash table.
1490 Remove impossible error message.
1491 * msgl-cat.c (catenate_msgdomain_list): Allocate message lists with
1493 * msgmerge.c (merge): Update.
1494 * msgunfmt.c (main): Update.
1495 * read-po.c (readall_constructor): Allocate a message list with hash
1496 table if and only if duplicates will lead to an error message.
1497 * xgettext.c (main): Allocate a message list with hash table, to
1499 (exclude_directive_message): Allocate a message list with hash table,
1500 to speed up exclusion test.
1502 2001-11-17 Bruno Haible <haible@clisp.cons.org>
1504 * message.h (msgdomain_list_sublist): Change last argument to bool.
1505 * message.c (msgdomain_list_sublist): Likewise.
1506 * msgcmp.c (compare): Update msgdomain_list_sublist calls.
1507 (compare_constructor, compare_directive_message): Likewise.
1508 * msgl-cat.c (catenate_msgdomain_list): Likewise.
1509 * msgmerge.c (merge): Likewise.
1510 * read-po.c (readall_constructor, readall_directive_message): Likewise.
1512 2001-11-17 Bruno Haible <haible@clisp.cons.org>
1514 * msgfmt.c (format_directive_message): Finish 2001-08-30 patch.
1516 2001-11-17 Bruno Haible <haible@clisp.cons.org>
1518 * msgfmt.c (accelerator_char): New variable.
1519 (long_options): --check-accelerators has optional argument.
1520 (main): Store --check-accelerators value in accelerator_char.
1521 (usage): --check-accelerators has optional argument.
1522 (check_pair): Use accelerator_char instead of hardwired '&'.
1524 2001-11-17 Bruno Haible <haible@clisp.cons.org>
1526 * msginit.c (main): Print a blank line.
1527 (get_title): Always use the English title first.
1528 (fill_header): Update accordingly.
1530 2001-11-17 Bruno Haible <haible@clisp.cons.org>
1532 * message.h (NFORMATS): Fix misapplied patch.
1534 2001-11-11 Bruno Haible <haible@clisp.cons.org>
1536 * msgfmt.c (check_accelerators): New variable.
1537 (long_options): Add --check-accelerators.
1538 (main): Handle --check-accelerators.
1539 (usage): Document --check-accelerators option.
1540 (check_pair): Implement check_accelerators handling.
1542 2001-11-11 Bruno Haible <haible@clisp.cons.org>
1544 * msgl-cat.c (catenate_msgdomain_list): Fix a typo in 2001-11-01 patch.
1545 Reported by Karl Eichwalder.
1547 2001-11-11 Bruno Haible <haible@clisp.cons.org>
1549 * msginit.c (verbose): Remove variable.
1550 (long_options): Remove --verbose.
1551 (main): Remove --verbose option handling.
1552 (usage): Remove --verbose documentation.
1553 (language_team_address): Don't pass a verbose option to the subprocess.
1555 2001-11-08 Bruno Haible <haible@clisp.cons.org>
1557 * message.h: New enum value format_smalltalk.
1558 * message.c (format_language): Add value for format_smalltalk.
1559 (format_language_pretty): Likewise.
1560 * format.h (formatstring_smalltalk): New declaration.
1561 * format-ycp.c (formatstring_smalltalk): New variable.
1562 * format.c (formatstring_parsers): Add value for format_smalltalk.
1564 2001-11-05 Bruno Haible <haible@clisp.cons.org>
1566 * format-lisp.c (parse_upto): Remove 'base' argument. It is always 0.
1567 (format_parse): Update.
1569 * msgl-equal.c: Include string.h.
1570 * str-list.c: Likewise.
1572 2001-11-03 Bruno Haible <haible@clisp.cons.org>
1574 * xgettext.c (line_comment): Remove variable, so default value is
1577 2001-11-03 Bruno Haible <haible@clisp.cons.org>
1579 * x-c.c (extract_parenthesized): New function, extracted from
1581 (extract_c): Call extract_parenthesized.
1583 2001-11-03 Bruno Haible <haible@clisp.cons.org>
1585 Add YCP plural form support.
1586 * x-ycp.c (enum token_type_ty): New value token_type_comma.
1587 (x_ycp_lex): Recognize comma.
1588 (extract_ycp): Also recognize the _("singular","plural" pattern.
1590 2001-11-01 Bruno Haible <haible@clisp.cons.org>
1592 * msgfmt.c (check_plural_eval): Fix #if mistake.
1594 2001-11-01 Bruno Haible <haible@clisp.cons.org>
1596 * msgl-iconv.h (iconv_message_list): Add argument 'canon_from_code'.
1597 * msgl-iconv.c (iconv_message_list): Add argument 'canon_from_code'.
1598 (iconv_msgdomain_list): Update.
1599 * write-java.c (msgdomain_write_java): Update.
1600 * msgl-cat.c (catenate_msgdomain_list): Pass the canon_charsets[n][k]
1601 to iconv_message_list; the header entry that contained the charset
1602 specification may already have been removed from the message list.
1604 2001-11-01 Bruno Haible <haible@clisp.cons.org>
1606 * msgl-equal.h (string_list_equal): New declaration.
1607 * msgl-equal.c (string_list_equal): Export function.
1608 * message.h (struct altstr): New fields 'comment', 'comment_dot'.
1609 * msgl-cat.c: Include msgl-equal.h.
1610 (catenate_msgdomain_list): If all alternative comments are equal,
1611 use one copy of them, instead of concatenating them. Likewise for dot
1613 * Makefile.am (libgettextsrc_la_SOURCES): Add msgl-equal.c.
1614 (msgmerge_SOURCES): Remove msgl-equal.c.
1616 2001-10-31 Bruno Haible <haible@clisp.cons.org>
1618 * Makefile.am (noinst_HEADERS): Add read-java.h, write-java.h,
1619 format.h, msgunfmt.h.
1620 (EXTRA_DIST): Add project-id, gnu/gettext/*.java.
1621 * message.h (NFORMATS): Define via #define, not via an enum value.
1622 * format.h (struct formatstring_parser): Use PARAMS.
1623 * format-c.c (FAT_SIZE_MASK): Remove extraneous backslashes.
1624 * po-charset.c (po_lex_charset_set): Fix syntax error.
1625 * write-java.c (write_java_string): Drop hexdigit[] size.
1626 * x-java.l (add_object): Remove C++ style comment.
1628 2001-10-28 Bruno Haible <haible@clisp.cons.org>
1630 * hostname.c: Include "progname.h".
1631 (program_name): Remove variable.
1632 (main): Call set_program_name instead of setting program_name.
1634 2001-10-28 Bruno Haible <haible@clisp.cons.org>
1636 Create a libgettextsrc shared library.
1637 * Makefile.am (lib_LTLIBRARIES): New variable.
1638 (libgettextsrc_la_SOURCES): New variable.
1639 (msgcmp_SOURCES, msgfmt_SOURCES, msgmerge_SOURCES, msgunfmt_SOURCES,
1640 xgettext_SOURCES, msgattrib_SOURCES, msgcat_SOURCES, msgcomm_SOURCES,
1641 msgconv_SOURCES, msgen_SOURCES, msgexec_SOURCES, msggrep_SOURCES,
1642 msginit_SOURCES, msguniq_SOURCES): Remove source files listed in
1643 libgettextsrc_la_SOURCES.
1644 (libgettextsrc_la_LDFLAGS): New variable.
1645 (msgcmp_LDADD, msgfmt_LDADD, msgmerge_LDADD, msgunfmt_LDADD,
1646 xgettext_LDADD, msgattrib_LDADD, msgcat_LDADD, msgcomm_LDADD,
1647 msgconv_LDADD, msgen_LDADD, msgexec_LDADD, msggrep_LDADD,
1648 msginit_LDADD, msguniq_LDADD): Add libgettextsrc.la. Remove all
1649 dependencies already listed in libgettextsrc_la_LDFLAGS.
1650 (po-lex.lo): Depend on po-gram-gen2.h.
1652 2001-10-21 Bruno Haible <haible@clisp.cons.org>
1654 * Makefile.am (LDADD): Replace libnlsut.a with libgettextlib.la.
1655 (*_LDADD): Likewise.
1657 2001-10-26 Bruno Haible <haible@clisp.cons.org>
1659 * x-c.h (EXTENSIONS_C): Add ".hxx".
1661 2001-10-21 Bruno Haible <haible@clisp.cons.org>
1663 * msgmerge.c (match_domain): Change type of 'processed' argument to
1665 (merge): Change type of 'processed' to 'unsigned int'.
1667 2001-10-21 Bruno Haible <haible@clisp.cons.org>
1669 Avoid warnings on platforms where size_t is larger than int.
1670 * msgfmt.c (check_pair): Use an 'unsigned int' variable instead of
1671 'size_t', to avoid warnings.
1672 * po-lex.h (po_gram_error): Cast line number to 'unsigned long'.
1673 * po-lex.c (po_gram_error): Likewise.
1674 * x-c.c (extract_c): Likewise.
1676 2001-10-21 Bruno Haible <haible@clisp.cons.org>
1678 * msgexec.c [BeOS]: Fix #ifdef conditional.
1680 2001-10-21 Bruno Haible <haible@clisp.cons.org>
1682 * read-java.c (execute_and_read_po_output): Return false, not 0.
1684 2001-10-11 Bruno Haible <haible@clisp.cons.org>
1686 * msgattrib.c (usage): Fix: --sort-output doesn't deal with duplicates.
1687 * msgcat.c (usage): Likewise.
1688 * msgcomm.c (usage): Likewise.
1689 * msgconv.c (usage): Likewise.
1690 * msgen.c (usage): Likewise.
1691 * msgexec.c (usage): Likewise.
1692 * msggrep.c (usage): Likewise.
1693 * msgmerge.c (usage): Likewise.
1694 * msgunfmt.c (usage): Likewise.
1695 * msguniq.c (usage): Likewise.
1696 * xgettext.c (usage): Likewise.
1698 2001-10-09 Bruno Haible <haible@clisp.cons.org>
1700 * write-po.c (memcpy_small): New function.
1701 (wrap): Use it instead of memcpy. Optimize handling of escape
1704 2001-10-09 Bruno Haible <haible@clisp.cons.org>
1706 * write-po.c (putc): Define as putc_unlocked if available.
1708 2001-10-09 Bruno Haible <haible@clisp.cons.org>
1710 * po-lex.c (getc): Define as getc_unlocked if available.
1712 2001-10-21 Bruno Haible <haible@clisp.cons.org>
1714 * msginit.c: New file.
1715 * project-id: New file.
1716 * Makefile.am (bin_PROGRAMS): Add msginit.
1717 (projectsdir): New variable.
1718 (DEFS): Add -DLIBDIR and -DPROJECTSDIR.
1719 (msginit_SOURCES): New variable.
1720 (msginit_LDADD): New variable.
1721 (install-exec-local): Also install project-id.
1722 (uninstall-local): Also uninstall project-id.
1724 2001-10-21 Bruno Haible <haible@clisp.cons.org>
1726 * gnu/gettext/GetURL.java: New file.
1727 * urlget.c: New file.
1728 * Makefile.am (noinst_PROGRAMS): Add urlget.
1729 (urlget_SOURCES): New variable.
1730 (install-exec-local): Also install urlget.
1731 (uninstall-local): Also uninstall urlget.
1732 (gnu/gettext/GetURL.class): New rule.
1733 (gettext.jar): Also include gnu/gettext/GetURL*.class.
1735 2001-10-08 Bruno Haible <haible@clisp.cons.org>
1737 * msgl-english.h: New file.
1738 * msgl-english.c: New file, extracted from msgen.c.
1739 * msgen.c: Include msgl-english.h.
1740 (english): Move to msgl-english.c.
1741 (main): Update accordingly.
1742 * Makefile.am (noinst_HEADERS): Add msgl-english.h.
1743 (msgen_SOURCES): Add msgl-english.c.
1745 2001-10-08 Bruno Haible <haible@clisp.cons.org>
1747 * po-time.h: New file.
1748 * po-time.c: New file, extracted from xgettext.c.
1749 * xgettext.c: Include po-time.h.
1750 (difftm): Move to po-time.c.
1751 (construct_header): Move some code to po-time.c. Call po_strftime.
1752 * Makefile.am (noinst_HEADERS): Add po-time.h.
1753 (xgettext_SOURCES): Add po-time.c.
1755 2001-09-29 Bruno Haible <haible@clisp.cons.org>
1757 * user-email.in: New file.
1758 * Makefile.am (install-exec-local): Install user-email.
1759 (uninstall-local): Uninstall user-email.
1760 (DISTCLEANFILES): Add user-email.
1762 2001-09-29 Bruno Haible <haible@clisp.cons.org>
1764 * hostname.c: New file.
1765 * Makefile.am (noinst_PROGRAMS, hostname_SOURCES): New variables.
1766 (install-exec-local, installdirs-local, uninstall-local): New rules.
1768 2001-10-10 Bruno Haible <haible@clisp.cons.org>
1770 * msgexec.c (process_string): Update for changed create_pipe_bidi(),
1772 * msggrep.c (is_string_selected): Update for changed create_pipe_out(),
1774 * read-java.c (execute_and_read_po_output): Update for changed
1775 create_pipe_in(), wait_subprocess().
1777 2001-10-08 Bruno Haible <haible@clisp.cons.org>
1779 * xgettext.c (remember_a_message): When the comment tag is seen,
1780 remember all remaining comment lines, not just one.
1782 2001-09-25 Bruno Haible <haible@clisp.cons.org>
1784 Upgrade to automake-1.5.
1785 * Makefile.am (AUTOMAKE_OPTIONS): Add 'no-dependencies'.
1786 (COMMON_SOURCE): Renamed from COMMON_SOURCES.
1787 (FORMAT_SOURCE): Renamed from FORMAT_SOURCES.
1788 * ylwrap: Remove file.
1790 2001-09-22 Bruno Haible <haible@clisp.cons.org>
1792 * xgettext.c (extractor_func): New typedef.
1793 (scanner_fp): Remove typedef.
1794 (main): Use extractor_func and call it via extract_from_file.
1795 (extract_from_file): New function.
1796 (scan_c_file, scan_po_file, scan_java_file, scan_ycp_file,
1797 scan_rst_file): Remove functions.
1798 (language_to_extractor): Renamed from language_to_scanner.
1799 * x-c.h (SCANNERS_C): Use extract_c instead of scan_c_file.
1800 * x-java.h (SCANNERS_JAVA): Use extract_java instead of scan_java_file.
1801 * x-po.h (SCANNERS_PO): Use extract_po instead of scan_po_file.
1802 * x-rst.h (SCANNERS_RST): Use extract_rst instead of scan_rst_file.
1803 * x-ycp.h (SCANNERS_YCP): Use extract_ycp instead of scan_ycp_file.
1805 2001-09-23 Bruno Haible <haible@clisp.cons.org>
1807 * plural-eval.c: New file.
1808 * msgfmt.c: Include plural-exp.h.
1809 (sigfpe_exit, sigfpe_code): New variables.
1810 (sigfpe_handler, install_sigfpe_handler, uninstall_sigfpe_handler,
1811 check_plural_eval, check_plural): New functions.
1812 (main): Call it if --check-header is enabled.
1813 * Makefile.am (msgfmt_SOURCES): Add plural-eval.c.
1815 2001-10-04 Tommy Johansson <tommy.johansson@kanalen.org>
1817 * x-java.l (object_list): New type.
1818 (INITIAL_OBJECT_LIST_SIZE, OBJECT_LIST_GROWTH): New macros.
1819 (java_keyword): New type.
1820 (strip_ending_spaces): New function.
1821 (object_list_alloc, object_list_destroy, get_num_objects, get_object,
1822 add_object, alloc_keyword): New functions.
1823 (java_keywords): Change type.
1824 (extract_keyword, extract_msgid_arg, extract_msgid_plural_arg): New
1826 (is_keyword): Change return type.
1827 (x_java_keyword): Update.
1828 (extract_java): Count arguments, and support plural keywords like
1831 2001-09-19 Bruno Haible <haible@clisp.cons.org>
1833 * xgettext.h (omit_header): New declaration.
1834 * xgettext.c (omit_header): Make global.
1835 * x-po.c (extract_directive_message): Don't throw the header entry
1836 away if omit_header is true.
1838 2001-09-19 Bruno Haible <haible@clisp.cons.org>
1840 * write-po.c (msgdomain_list_print): Treat charset=CHARSET as if it
1841 were absent, i.e. like ASCII, not like an unknown 8-bit encoding.
1843 2001-09-18 Bruno Haible <haible@clisp.cons.org>
1845 * msgl-equal.h: New file.
1846 * msgl-equal.c: New file.
1847 * msgmerge.c: Include msgl-equal.h, backupfile.h, copy-file.h.
1848 (update_mode, version_control_string, backup_suffix_string): New
1850 (long_options): Add --backup, --suffix, --update.
1851 (main): Accept options --backup, --suffix, -U/--update. If in update
1852 mode, compare old and new message lists, backup the def.po file, and
1853 overwrite the def.po file.
1854 (usage): Document --backup, --suffix, -U/--update.
1855 (DOT_FREQUENCY): Renamed from DOT_FREQUENCE.
1856 (merge): Also return def.po message list. Don't share messages between
1857 def and result; copy instead.
1858 * Makefile.am (noinst_HEADERS): Add msgl-equal.h.
1859 (msgmerge_SOURCES): Add msgl-equal.c.
1861 2001-09-19 Bruno Haible <haible@clisp.cons.org>
1863 * po-hash-gen.y (number): Change type from 'int' to 'size_t'.
1864 (filepos): Accept strings without line number.
1865 (yylex): Change n from 'int' to 'size_t'.
1866 * po.h (po_method_ty): In field comment_filepos, change line's type
1867 from 'int' to 'size_t'.
1868 (po_callback_comment_filepos): Change line's type from 'int' to
1870 * read-po.c (readall_comment_filepos): Likewise.
1871 * x-po.c (extract_comment_filepos): Likewise.
1872 * po.c (po_comment_filepos): Likewise.
1873 (po_callback_comment_filepos): Likewise.
1874 (po_callback_comment): Reduce the possibility that po_hash succeeds
1875 if the comment is not a Sun file position comment.
1877 2001-09-16 Bruno Haible <haible@clisp.cons.org>
1879 * x-rst.h: New file.
1880 * x-rst.c: New file.
1881 * xgettext.c: Include x-rst.h.
1882 (scan_rst_file): New function.
1883 (language_to_scanner): Add RST rule.
1884 (extension_to_language): Add RST rule.
1885 * write-po.c (message_print): Don't print the line number if it is
1887 * Makefile.am (noinst_HEADERS): Add x-rst.h.
1888 (xgettext_SOURCES): Add x-rst.c.
1890 2001-09-20 Bruno Haible <haible@clisp.cons.org>
1892 * format-pascal.c: New file.
1893 * format.h (formatstring_pascal): New declaration.
1894 * message.h (enum format_type): Add format_pascal.
1895 * message.c (format_language): Add format_pascal entry.
1896 (format_language_pretty): Likewise.
1897 * format.c (formatstring_parsers): Add formatstring_pascal.
1898 * Makefile.am (FORMAT_SOURCES): Add format-pascal.c.
1900 2001-09-16 Bruno Haible <haible@clisp.cons.org>
1902 * x-ycp.h: New file.
1903 * x-ycp.c: New file.
1904 * xgettext.c: Include x-ycp.h.
1905 (usage): Mention YCP.
1906 (scan_ycp_file): New function.
1907 (language_to_scanner): Add YCP rule. Remove preliminary YCP rule.
1908 (extension_to_language): Add YCP rule.
1909 * Makefile.am (noinst_HEADERS): Add x-ycp.h.
1910 (xgettext_SOURCES): Add x-ycp.c.
1912 2001-09-17 Bruno Haible <haible@clisp.cons.org>
1914 * gettext.c: Include basename.h.
1915 * ngettext.c: Likewise.
1916 * msgattrib.c: Likewise.
1917 * msgcat.c: Likewise.
1918 * msgcmp.c: Likewise.
1919 * msgcomm.c: Likewise.
1920 * msgconv.c: Likewise.
1921 * msgen.c: Likewise.
1922 * msgexec.c: Likewise.
1923 * msgfmt.c: Likewise.
1924 * msggrep.c: Likewise.
1925 * msgl-cat.c: Likewise.
1926 * msgl-charset.c: Likewise.
1927 * msgl-iconv.c: Likewise.
1928 * msgmerge.c: Likewise.
1929 * msgunfmt.c: Likewise.
1930 * msguniq.c: Likewise.
1931 * xgettext.c: Likewise.
1932 * po-charset.c: Include <stdlib.h> and basename.h.
1934 2001-09-16 Bruno Haible <haible@clisp.cons.org>
1936 * x-c.c (phase4_getc): Rename local variable 'state' to
1939 2001-09-11 Bruno Haible <haible@clisp.cons.org>
1941 * Makefile.am (COMMON_SOURCES, FORMAT_SOURCES): New variables.
1942 (msgcmp_SOURCES, msgfmt_SOURCES, msgmerge_SOURCES, msgunfmt_SOURCES,
1943 xgettext_SOURCES, msgattrib_SOURCES, msgcat_SOURCES, msgcomm_SOURCES,
1944 msgconv_SOURCES, msgen_SOURCES, msgexec_SOURCES, msggrep_SOURCES,
1945 msguniq_SOURCES): Simplify.
1947 2001-09-09 Bruno Haible <haible@clisp.cons.org>
1949 * file-list.c: Include system.h.
1950 * format-c.c: Include xmalloc.h instead of system.h.
1951 * format-ycp.c: Likewise.
1952 * read-po.c: Likewise.
1954 * format-java.c: Include xmalloc.h.
1955 * format-lisp.c: Likewise.
1956 * format-python.c: Likewise.
1957 * gettext.c: Likewise.
1958 * msgen.c: Likewise.
1959 * msgexec.c: Likewise.
1960 * msggrep.c: Likewise.
1961 * ngettext.c: Likewise.
1962 * po-lex.c: Likewise.
1963 * read-mo.c: Likewise.
1965 * message.c: Include xmalloc.h and strstr.h.
1966 * msgfmt.c: Likewise.
1967 * write-po.c: Likewise.
1968 * msgl-cat.c: Include string.h, xmalloc.h and strstr.h.
1969 * msgl-iconv.c: Likewise.
1970 * msgl-charset.c: Include strstr.h.
1971 * po-charset.c: Likewise.
1972 * po-gram-gen.y: Include stdlib.h, xmalloc.h instead of system.h.
1973 * po-hash-gen.y: Likewise.
1974 * str-list.c: Likewise.
1975 * po.c: Include string.h, xmalloc.h instead of system.h.
1976 * write-java.c: Include string.h, xmalloc.h.
1977 * x-java.l: Include stdlib.h, xmalloc.h, strstr.h instead of system.h.
1978 * xgettext.c: Include xmalloc.h, strstr.h, xerror.h.
1979 (main, construct_header): Use xasprintf instead of asprintf.
1981 2001-09-24 Bruno Haible <haible@clisp.cons.org>
1983 * po-lex.c (mb_iseq): Compare the byte sequence, not the Unicode
1984 equivalent. This is necessary for non-ASCII-compatible encodings like
1987 2001-09-08 Bruno Haible <haible@clisp.cons.org>
1989 * msgunfmt.h: New file.
1990 * msgunfmt.c (verbose): New variable.
1991 (java_mode, java_resource_name, java_locale_name): New variables.
1992 (long_options): Add --java, --locale, --resource, --verbose.
1993 (main): Recognize new options -j, -l, -r, -v. Handle java mode
1995 (usage): Document --java, --resource, --locale, --verbose.
1996 * read-java.h: New file.
1997 * read-java.c: New file.
1998 * read-po.h (read_po): New declaration.
1999 * read-po.c (read_po): New function.
2000 * gnu/gettext/DumpResource.java: New file.
2001 * Makefile.am (jardir): New variable.
2002 (DEFS): Define GETTEXTJAR, for read-java.c.
2003 (JAR): New variable.
2004 (JAVACOMP): New variable.
2005 (msgunfmt_SOURCES): Add open-po.c, po-gram-gen.y, po-hash-gen.y,
2006 po-charset.c, po-lex.c, po.c, read-po.c, dir-list.c, read-java.c.
2007 (all-local, all-java-no, all-java-yes, gnu/gettext/DumpResource.class,
2008 gettext.jar, install-data-local, install-java-no, install-java-yes,
2009 installdirs-local, installdirs-java-no, installdirs-java-yes,
2010 uninstall-local, uninstall-java-no, uninstall-java-yes): New rules.
2011 (CLEANFILES): New variable.
2013 2001-09-08 Bruno Haible <haible@clisp.cons.org>
2015 * msgexec.c (nonintr_select): Add function prototype.
2017 * xgettext.c (scan_java_file): Add function prototype.
2019 2001-09-23 Bruno Haible <haible@clisp.cons.org>
2021 * xgettext.c (remember_a_message): Warn about empty msgid if it
2022 conflicts with construct_header().
2024 2001-09-08 Bruno Haible <haible@clisp.cons.org>
2026 * msgcat.c (main): Move the option checking after the handling of
2027 --version and --help, but before opening of any file.
2028 * msgcomm.c (main): Move the option checking after the handling of
2029 --version and --help.
2030 * msguniq.c (main): Likewise.
2031 * xgettext.c (main): Likewise.
2032 * msgconv.c (main): Additional option checking for --sort-by-file.
2033 * msgen.c (main): Likewise.
2034 * msgexec.c (main): Likewise.
2035 * msggrep.c (main): Likewise.
2036 * msgmerge.c (main): Likewise.
2038 2001-09-08 Bruno Haible <haible@clisp.cons.org>
2040 * dir-list.c: Include specification header before all other headers.
2041 * file-list.c: Likewise.
2042 * message.c: Likewise.
2043 * msgl-cat.c: Likewise.
2044 * msgl-charset.c: Likewise.
2045 * msgl-iconv.c: Likewise.
2046 * open-po.c: Likewise.
2048 * po-gram-gen.y: Likewise.
2049 * po-hash-gen.y: Likewise.
2050 * po-lex.c: Likewise.
2051 * read-po.c: Likewise.
2052 * str-list.c: Likewise.
2053 * write-mo.c: Likewise.
2054 * write-po.c: Likewise.
2055 * msgfmt.h: Don't include message.h.
2056 * open-po.h: Include <stdio.h>, for FILE.
2057 * write-mo.h: Include message.h and <stddef.h>.
2059 2001-09-21 Tommy Johansson <tommy.johansson@kanalen.org>
2061 * x-java.l (create_char_buf): Fix problem with empty messages.
2062 (//): Remove leading "//" from result.
2063 (x_java_keyword): Handle NULL argument.
2065 2001-09-19 Tommy Johansson <tommy.johansson@kanalen.org>
2067 * x-java.l (is_keyword): Swap arguments of do_compare.
2069 2001-09-02 Bruno Haible <haible@clisp.cons.org>
2071 * write-java.h: New file.
2072 * write-java.c: New file.
2073 * plural.c: New file.
2074 * msgfmt.c: Include write-java.h.
2075 (java_mode, assume_java2, java_resource_name, java_locale_name,
2076 java_class_directory): New variables.
2077 (long_options): Add --java, --java2, --locale, --resource.
2078 (main): Add command line option -d, -j, -l, -r. Handle them and
2079 --java2. Forbid some options depending on whether --java was given
2080 or not. In java_mode, call msgdomain_write_java.
2082 (format_directive_domain): In java_mode, ignore domain directives.
2083 * Makefile.am (msgfmt_SOURCES): Add write-java.c, msgl-ascii.c,
2084 msgl-iconv.c, plural.c.
2086 2001-09-16 Bruno Haible <haible@clisp.cons.org>
2088 * Makefile.am (noinst_HEADERS): Add x-java.h.
2090 2001-09-14 Tommy Johansson <tommy.johansson@kanalen.org>
2092 * x-java.h (x_java_extract_all): New declaration.
2093 * x-java.l (extract_all_strings): New variable.
2094 (x_java_extract_all): New function.
2095 (extract_java): Test extract_all_strings.
2096 * xgettext.c (main): Call x_java_extract_all.
2098 2001-09-03 Bruno Haible <haible@clisp.cons.org>
2100 * x-c.h (EXTENSIONS_C, SCANNERS_C): Remove extraneous commas.
2101 * x-po.h (EXTENSIONS_PO, SCANNERS_PO): Likewise.
2103 2001-09-11 Bruno Haible <haible@clisp.cons.org>
2105 * xgettext.c: Set msgstr_prefix to "", not NULL.
2106 Reported by Martin Quinson <Martin.Quinson@ens-lyon.fr>.
2108 2001-09-10 Bruno Haible <haible@clisp.cons.org>
2110 * msgattrib.c (main): Call set_program_name instead of assigning
2111 program_name directly.
2112 * msgcat.c (main): Likewise.
2113 * msgconv.c (main): Likewise.
2114 * msgen.c (main): Likewise.
2115 * msgexec.c (main): Likewise.
2116 * msggrep.c (main): Likewise.
2117 * msguniq.c (main): Likewise.
2119 2001-09-08 Bruno Haible <haible@clisp.cons.org>
2121 * msgattrib.c: New file.
2122 * Makefile.am (bin_PROGRAMS): Add msgattrib.
2123 (msgattrib_SOURCES, msgattrib_LDADD): New variables.
2125 2001-09-02 Bruno Haible <haible@clisp.cons.org>
2127 * format-lisp.c (gcd): Remove function. Include "gcd.h" instead.
2129 2001-09-03 Bruno Haible <haible@clisp.cons.org>
2131 * xgettext.c (usage): Mention ObjectiveC and Java.
2132 * xgettext.h (substring_match): New declaration.
2133 * Makefile.am (x-java.c): New rule. Automake's .l.c rules doesn't
2134 work if $(LEX) is defined to ":".
2136 2001-09-03 Tommy Johansson <tommy.johansson@kanalen.org>
2138 * x-java.h: New file.
2139 * x-java.l: New file.
2140 * xgettext.c: Include x-java.h.
2141 (substring_match): New variable.
2142 (long_options): Add --keyword-substring.
2143 (main): For -k, also call x_java_keyword. Treat --keyword-substring.
2144 (scan_java_file): New function.
2145 (language_to_scanner): Add Java rule. Remove preliminary Java rule.
2146 (extension_to_language): Add Java rule.
2147 * Makefile.am (xgettext_SOURCES): Add x-java.l.
2149 2001-09-02 Bruno Haible <haible@clisp.cons.org>
2151 * read-mo.h: New file.
2152 * read-mo.c: New file, extracted from msgunfmt.c.
2153 (read_mo_file): Require non-null message list argument. Return void.
2154 * msgunfmt.c (endian, read32, seek32, string32, read_mo_file): Move to
2156 (main): Pass a fresh list, not NULL, to read_mo_file.
2157 * Makefile.am (noinst_HEADERS): Add read-mo.h.
2158 (msgunfmt_SOURCES): Add read-mo.c.
2160 2001-09-02 Bruno Haible <haible@clisp.cons.org>
2162 * msgfmt.h (struct hashtable_entry): Remove type.
2163 (verbose): New declaration.
2164 * msgfmt.c (msg_domain): Add a message list field.
2165 (verbose): Make non-static.
2166 (main): Pass the message list, not the hash table, to
2167 msgdomain_write_mo. Free the message list when done.
2168 (new_domain): Initialize the message list to empty.
2169 (format_directive_message): Change type of entry to 'message_ty *'.
2171 * write-mo.h: Don't include hash.h.
2172 (msgdomain_write_mo): Change argument type from hash table to message
2174 * write-mo.c (id_str_pair): Add const.
2175 (write_table): Change argument type from hash table to message list.
2176 Use 'message_ty' instead of 'struct hashtable_entry'.
2177 (msgdomain_write_mo): Change argument type from hash table to message
2180 2001-09-01 Bruno Haible <haible@clisp.cons.org>
2182 * msgfmt.h: New file, extracted from msgfmt.c.
2183 * write-mo.h: New file, extracted from msgfmt.c.
2184 * write-mo.c: New file, extracted from msgfmt.c.
2185 (write_table): Don't call delete_hash here.
2186 (msgdomain_write_mo): Add check against writing on full disk.
2187 * msgfmt.c (struct id_str_pair): Move to write-mo.c.
2188 (struct hashtable_entry): Move to msgfmt.h.
2189 (alignment): Move to write-mo.h and write-mo.c.
2190 (no_hash_table): Likewise. Change type to boolean.
2191 (long_options): Don't take &no_hash_table.
2192 (roundup): Move to write-mo.c.
2193 (main): Set no_hash_table here. Call msgdomain_write_mo and
2195 (compare_id): Move to write-mo.c.
2196 (write_table): Likewise.
2197 (read_po_file): Renamed from grammar.
2198 * Makefile.am (noinst_HEADERS): Add msgfmt.h, write-mo.h.
2199 (msgfmt_SOURCES): Add write-mo.c.
2201 2001-09-01 Bruno Haible <haible@clisp.cons.org>
2203 * write-po.c (msgdomain_list_print): Before fclose, check for ferror.
2205 2001-09-01 Bruno Haible <haible@clisp.cons.org>
2207 * message.c (message_list_list_search): If the first match has an
2208 empty translation but there is later in the list a non-empty
2209 translation, return the latter one. This fixes the msgmerge-8 test.
2211 2001-08-30 Bruno Haible <haible@clisp.cons.org>
2213 Reorganize msgfmt checking options.
2214 * msgfmt.c: Include limits.h.
2215 (verbose): Renamed from verbose_level.
2216 (check_format_strings): Renamed from do_check.
2217 (check_header, check_domain, check_compatibility): New variables.
2218 (long_options): Add --check-domain, --check-format, --check-header,
2219 --check-compatibility.
2220 (main): Recognize options -C, --check-compatibility, --check-domain,
2221 --check-format, --check-header. Option -c implies the last three.
2223 (format_debrief): Test check_header, not verbose_level.
2224 (format_directive_domain): Test check_domain, not verbose_level.
2225 (format_directive_message): Test check_compatibility and check_header,
2226 not verbose_level. Always perform the check for duplicates.
2227 (format_comment_special): Test check_compatibility, not verbose_level.
2228 (check_pair): Error if check_compatibility is true an msgid_plural is
2231 2001-08-26 Bruno Haible <haible@clisp.cons.org>
2233 * format.h: New file.
2234 * format-c.c: New file.
2235 * format-java.c: New file.
2236 * format-lisp.c: New file.
2237 * format-python.c: New file.
2238 * format-ycp.c: New file.
2239 * format.c: New file.
2240 * Makefile.am (msgfmt_SOURCES): Add format.c, format-c.c,
2241 format-java.c, format-lisp.c, format-python.c, format-ycp.c.
2242 (xgettext_SOURCES): Likewise.
2243 * message.h (enum format_type): New type.
2244 (format_language, format_language_pretty): New declarations.
2245 (parse_c_format_description_string): Remove declaration.
2246 (possible_format_p): Renamed from possible_c_format_p.
2247 (struct message_ty): Change field 'is_c_format' to an array and
2248 rename it to 'is_format'.
2249 * message.c (parse_c_format_description_string): Remove function.
2250 (format_language): New array.
2251 (format_language_pretty): New array.
2252 (possible_format_p): Renamed from possible_c_format_p.
2253 (parse_c_width_description_string): Remove function.
2254 (message_alloc): Update for is_format array.
2255 (message_copy): Likewise.
2256 (message_merge): Likewise.
2257 * po.h (po_parse_comment_special): New declaration.
2258 * po.c (po_parse_comment_special): New function.
2259 * msgl-cat.c (catenate_msgdomain_list): Update for is_format array.
2260 * read-po.c (struct readall_class_ty): Change field 'is_c_format' to
2261 an array and rename it to 'is_format'.
2262 (readall_constructor): Update for is_format array.
2263 (readall_directive_message): Likewise.
2264 (readall_comment_special): Call po_parse_comment_special instead of
2265 parse_c_format_description_string and parse_c_width_description_string.
2266 * write-po.c (make_format_description_string): Renamed from
2267 make_c_format_description_string. Add a language argument. Remove the
2268 impossible and undecided cases.
2269 (significant_format_p): Renamed from significant_c_format_p.
2270 (has_significant_format_p): New function.
2271 (message_print): Update for is_format array.
2272 * msgfmt.c: Include format.h instead of printf.h.
2273 (struct msgfmt_class_ty): Change field 'is_c_format' to an array and
2274 rename it to 'is_format'.
2275 (format_constructor): Update for is_format array.
2276 (format_directive_message): Likewise.
2277 (format_comment_special): Call po_parse_comment_special instead of
2278 parse_c_format_description_string and parse_c_width_description_string.
2279 (check_pair): Change is_format argument to an array. Call language
2280 dependent format string checking routines.
2281 * x-po.c (struct extract_class_ty): Change field 'is_c_format' to
2282 an array and rename it to 'is_format'.
2283 (extract_constructor): Update for is_format array.
2284 (extract_directive_message): Likewise.
2285 (extract_comment_special): Call po_parse_comment_special instead of
2286 parse_c_format_description_string and parse_c_width_description_string.
2287 * x-c.h (SCANNERS_C): Refer to formatstring_c.
2288 * x-po.h (SCANNERS_PO): Add NULL formatstring reference.
2289 * xgettext.c: Include format.h instead of printf-parse.h.
2290 (test_whether_c_format): Remove function.
2291 (current_formatstring_parser): New variable.
2292 (remember_a_message): Update for is_format array. Call
2293 po_parse_comment_special instead of parse_c_format_description_string
2294 and parse_c_width_description_string. Decide whether format string
2295 depending on current_formatstring_parser.
2296 (language_to_scanner): Also set current_formatstring_parser. Add
2297 dummy table entries for Python, Lisp, Java, YCP.
2299 2001-08-12 Bruno Haible <haible@clisp.cons.org>
2301 * pos.h: Include <stddef.h>.
2303 2001-08-12 Bruno Haible <haible@clisp.cons.org>
2305 * x-c.c (real_file_name): Renamed from file_name.
2306 (last_comment_line, last_non_comment_line, newline_count): Don't
2307 initialize statically.
2308 (phase1_getc): Update.
2309 (x_c_lex): Don't reset last_comment_line, last_non_comment_line,
2310 newline_count upon EOF.
2311 (extract_c): Reset them here. Update.
2313 * x-c.c (x_c_lex): Move lazy keyword initialization...
2314 (init_keywords): ... to here. New function.
2315 (extract_c): Call init_keywords.
2317 * x-c.c (x_c_lex): Look up token without NUL in hash table.
2318 (x_c_keyword): Store keywords without NUL in hash table.
2320 2001-07-28 Bruno Haible <haible@clisp.cons.org>
2322 * gettext.c (usage): If IN_HELP2MAN is set, output template for
2323 localedir, not its value.
2324 * ngettext.c (usage): Likewise.
2326 2001-07-28 Bruno Haible <haible@clisp.cons.org>
2328 * po-lex.c: Include c-ctype.h instead of <ctype.h>.
2329 (control_sequence): Use C locale character classifications.
2330 * xgettext.c (main): Cast isspace argument to 'unsigned char'.
2332 2001-07-28 Bruno Haible <haible@clisp.cons.org>
2334 * po-lex.h (lex_start, lex_end): New declarations.
2335 * po-lex.c (lex_start): New function.
2336 (lex_end): New function.
2337 (lex_open): Call lex_start.
2338 (lex_close): Call lex_end.
2339 * open-po.h (open_po_file): Nop.
2340 * open-po.c (open_po_file): Small optimization.
2341 * po.h (po_scan): New declaration.
2342 (po_scan_file): Renamed from po_scan.
2343 * po.c (po_scan): New function.
2344 (po_scan_file): Renamed from po_scan.
2345 * msgcmp.c (grammar): Update po_scan_file call.
2346 * msgfmt.c (grammar): Likewise.
2347 * read-po.c (read_po_file): Likewise.
2350 (extract_class_ty, extract_constructor, extract_directive_domain,
2351 extract_directive_message, extract_parse_brief, extract_comment,
2352 extract_comment_dot, extract_comment_filepos, extract_comment_special,
2353 extract_methods): Moved here from xgettext.c.
2354 (extract_po): New function, extracted from read_po_file.
2355 * xgettext.h (line_comment, exclude): New declarations.
2356 * xgettext.c: Include x-po.h.
2357 (line_comment): Make non-static.
2358 (exclude): Likewise.
2359 (main): Update scan_po_file call.
2360 (read_exclusion_file): Update po_scan_file call.
2361 (extract_class_ty, extract_constructor, extract_directive_domain,
2362 extract_directive_message, extract_parse_brief, extract_comment,
2363 extract_comment_dot, extract_comment_filepos, extract_comment_special,
2364 extract_methods): Move to x-po.c.
2365 (scan_po_file): Renamed from read_po_file. Call xgettext_open and
2367 (language_to_scanner): Use SCANNERS_PO.
2368 (extension_to_language): Use EXTENSIONS_PO.
2369 * Makefile.am (noinst_HEADERS): Add x-po.h.
2370 (xgettext_SOURCES): Add x-po.c.
2372 2001-07-27 Bruno Haible <haible@clisp.cons.org>
2376 (xgettext_token_type_ty, xgettext_token_ty): Moved here from
2377 xget-lex.h. In xgettext_token_ty, unify line_number and file_name into
2379 (token_type_ty, token_ty): Moved here from xget-lex.c.
2380 (extract_all): Moved here from xgettext.c.
2381 (keywords, default_keywords, trigraphs, file_name, logical_file_name,
2382 line_number, fp, last_comment_line, last_non_comment_line,
2383 newline_count): Moved here from xget-lex.c.
2384 (phase1_pushback, phase1_pushback_length, phase1_getc, phase1_ungetc,
2385 phase2_pushback, phase2_pushback_length, phase2_getc, phase2_ungetc,
2386 phase3_pushback, phase3_pushback_length, phase3_getc, phase3_ungetc,
2387 phase4_getc, phase4_ungetc, phase7_getc, phase7_ungetc,
2388 phase5_pushback, phase5_pushback_length, phase5_get, phase5_unget,
2389 phaseX_get, phase6_pushback, phase6_pushback_length, phase6_get,
2390 phase6_unget, phase8_get): Moved here from xget-lex.c. Use
2391 xgettext_comment_add instead of accessing 'comment'. Don't free
2392 logical_file_name; it is still used as file_name of messages in mdlp.
2393 (x_c_lex): Moved here from xget-lex.c, renamed from xgettext_lex.
2394 (extract_c): Moved here from xgettext.c, renamed from scan_c_file.
2395 Change arguments from filename to FILE * and two filenames. Don't call
2396 xgettext_lex_open and xgettext_lex_close.
2397 (x_c_extract_all): New function.
2398 (x_c_keyword): Moved here from xget-lex.c, renamed from
2399 xgettext_lex_keyword.
2400 (x_c_any_keywords): Moved here from xget-lex.c, renamed from
2401 xgettext_any_keywords.
2402 (x_c_trigraphs): Moved here from xget-lex.c, renamed from
2403 xgettext_lex_trigraphs.
2404 * xgettext.h: New file.
2405 * xgettext.c (extract_all): Move to x-c.c.
2406 (comment): Moved here from xget-lex.c.
2407 (xgettext_comment_add): New function.
2408 (xgettext_comment): Moved here from xget-lex.c, renamed from
2409 xgettext_lex_comment.
2410 (xgettext_comment_reset): Moved here from xget-lex.c, renamed from
2411 xgettext_lex_comment_reset.
2412 (xgettext_open): New function, mostly taken from xgettext_lex_open
2414 (remember_a_message): Make non-static. Replace xgettext_token_ty arg
2415 with lex_pos_ty argument.
2416 (remember_a_message_plural): Likewise.
2417 (scan_c_file): Moved the body to x-c.c:extract_c.
2418 (language_to_scanner): Use SCANNERS_C.
2419 (extension_to_language): Use EXTENSIONS_C.
2420 * xget-lex.h: Remove file.
2421 * xget-lex.c: Remove file.
2422 * Makefile.am (noinst_HEADERS): Remove xget-lex.h. Add xgettext.h and
2424 (xgettext_SOURCES): Remove xget-lex.c. Add x-c.c.
2426 2001-07-26 Bruno Haible <haible@clisp.cons.org>
2428 * file-list.h: New file.
2429 * file-list.c: New file, extracted from msgcomm.c.
2430 * msgcat.c: Include file-list.h.
2431 (main): Call read_names_from_file instead of read_name_from_file.
2432 (read_name_from_file): Remove function.
2433 * msgcomm.c: Include file-list.h.
2434 (main): Call read_names_from_file instead of read_name_from_file.
2435 (read_name_from_file): Remove function.
2436 * xgettext.c: Include file-list.h.
2437 (main): Call read_names_from_file instead of read_name_from_file.
2438 (read_name_from_file): Remove function.
2439 * Makefile.am (noinst_HEADERS): Add file-list.h.
2440 (xgettext_SOURCES): Add file-list.c.
2441 (msgcat_SOURCES): Likewise.
2442 (msgcomm_SOURCES): Likewise.
2444 2001-07-23 Bruno Haible <haible@clisp.cons.org>
2446 * msgcomm.c: Assume <limits.h> exists.
2447 * msgexec.c: Likewise.
2448 * msggrep.c: Likewise.
2449 * write-po.c: Likewise.
2451 2001-08-02 Bruno Haible <haible@clisp.cons.org>
2453 * gettext.c (usage): Change bug report address to
2454 <bug-gnu-gettext@gnu.org>.
2455 * ngettext.c (usage): Likewise.
2456 * msgcat.c (usage): Likewise.
2457 * msgcmp.c (usage): Likewise.
2458 * msgcomm.c (usage): Likewise.
2459 * msgconv.c (usage): Likewise.
2460 * msgen.c (usage): Likewise.
2461 * msgexec.c (usage): Likewise.
2462 * msgfmt.c (usage): Likewise.
2463 * msggrep.c (usage): Likewise.
2464 * msgmerge.c (usage): Likewise.
2465 * msgunfmt.c (usage): Likewise.
2466 * msguniq.c (usage): Likewise.
2467 * xgettext.c (usage): Likewise.
2469 2001-07-22 Bruno Haible <haible@clisp.cons.org>
2471 * xgettext.c (language_to_scanner): Add language "ObjectiveC".
2472 (extension_to_language): Map extension "m" to "ObjectiveC".
2474 2001-07-22 Bruno Haible <haible@clisp.cons.org>
2476 Make msgcomm work with multidomain input and different encodings.
2477 * msgl-cat.h (msgcomm_mode, omit_header): New declarations.
2478 * msgl-cat.c (msgcomm_mode, omit_header): New variables.
2479 (is_message_selected): Different behaviour if omit_header is true.
2480 (is_message_needed): Different behaviour if msgcomm_mode is true.
2481 (catenate_msgdomain_list): Likewise.
2482 * msgcomm.c: Don't include <sys/types.h>, <unistd.h>, po.h. Include
2483 read-po.h, msgl-cat.h instead.
2484 (line_comment, omit_header, more_than, less_than): Remove variables.
2485 (to_code): New variable.
2486 (long_options): New option --to-code.
2487 (main): New option -t/--to-code. Don't take the address of omit_header.
2488 Call catenate_msgdomain_list instead of read_po_file and
2489 is_message_selected.
2490 (is_message_selected, extract_constructor, extract_directive_domain,
2491 extract_directive_message, extract_parse_brief, extract_comment,
2492 extract_comment_dot, extract_comment_filepos, extract_comment_special,
2493 read_po_file): Remove functions.
2494 * Makefile.am (msgcomm_SOURCES): Add read-po.c, msgl-iconv.c,
2497 2001-07-22 Bruno Haible <haible@clisp.cons.org>
2499 * msgl-ascii.h: New file.
2500 * msgl-ascii.c: New file.
2501 * po-charset.h (po_charset_ascii, po_charset_ascii_compatible): New
2503 * po-charset.c (po_charset_ascii): New variable.
2504 (po_charset_ascii_compatible): New function.
2505 * write-po.c (has_nonascii): Remove function.
2506 (message_print, message_print_obsolete): Use is_ascii_string instead.
2507 * msgl-iconv.c (iconv_message_list): Don't complain about missing
2508 header entry with charset if all messages are ASCII.
2509 * msgl-cat.c (catenate_msgdomain_list): Don't complain about missing
2510 header entry with charset if all messages are ASCII. Better choice of
2511 canon_to_code: when combining ASCII and an ASCII compatible encoding,
2512 choose the latter, not UTF-8. Avoid performing trivial conversions.
2513 * Makefile.am (noinst_HEADERS): Add msgl-ascii.h.
2514 (msgmerge_SOURCES): Add msgl-ascii.c.
2515 (msgunfmt_SOURCES): Likewise.
2516 (msgcat_SOURCES): Likewise.
2517 (msgcomm_SOURCES): Likewise.
2518 (msgconv_SOURCES): Likewise.
2519 (msgen_SOURCES): Likewise.
2520 (msgexec_SOURCES): Likewise.
2521 (msggrep_SOURCES): Likewise.
2522 (msguniq_SOURCES): Likewise.
2524 2001-07-22 Bruno Haible <haible@clisp.cons.org>
2526 * msgl-cat.h: Include <stdbool.h>.
2528 * read-po.h: Likewise.
2529 * write-po.h: Likewise.
2530 * xget-lex.h: Likewise.
2532 2001-07-21 Bruno Haible <haible@clisp.cons.org>
2534 * msgl-cat.h: New file.
2535 * msgl-cat.c: New file, extracted from msgcat.c.
2536 * msgcat.c (more_than, less_than): Move to msgl-cat.c.
2537 (use_first): Likewise. Change type to bool.
2538 (long_options): Don't take the address of use_first.
2539 (main): Initialize more_than, less_than, use_first explicitly.
2540 Add --use-first handling.
2541 (is_message_selected, is_message_needed, is_message_first_needed,
2542 catenate_msgdomain_list): Move to msgl-cat.c.
2543 * read-po.h (allow_duplicates): New declaration.
2544 * read-po.c (allow_duplicates): New variable.
2545 (readall_directive_message): If allow_duplicates is true, don't search
2546 for the message ID, just append the message.
2547 * msguniq.c: New file.
2548 * Makefile.am (bin_PROGRAMS): Add msguniq.
2549 (noinst_HEADERS): Add msgl-cat.h.
2550 (msgcat_SOURCES): Add msgl-cat.c.
2551 (msguniq_SOURCES, msguniq_LDADD): New variables.
2553 2001-07-21 Bruno Haible <haible@clisp.cons.org>
2555 * msgcat.c (usage): The default value for more-than is 0 here.
2556 (is_message_selected): Always keep the header entry. Needed when
2557 option --unique is used.
2559 2001-07-21 Bruno Haible <haible@clisp.cons.org>
2561 * message.h (struct message_ty): Add fields 'alternative_count',
2563 * msgcat.c (catenate_msgdomain_list): is_c_format defaults to
2564 undecided, not to no. If all alternative translations of a message
2565 are the same, keep the first translation instead of mentioning them
2566 all, and don't make the message fuzzy.
2568 2001-07-21 Bruno Haible <haible@clisp.cons.org>
2570 * msgcomm.c (extract_directive_message): Don't make the message fuzzy
2571 if the first occurrence wasn't fuzzy.
2573 2001-07-21 Bruno Haible <haible@clisp.cons.org>
2575 * message.c (message_comment_filepos): Don't keep the filepos[] array
2577 * write-po.c (cmp_by_msgid): Renamed from msgid_cmp.
2578 (cmp_filepos, msgdomain_list_sort_filepos): New functions.
2579 (cmp_by_filepos): Renamed from filepos_cmp.
2580 (msgdomain_list_sort_by_filepos): Call msgdomain_list_sort_filepos.
2582 2001-07-12 Bruno Haible <haible@clisp.cons.org>
2584 * msgexec.c: New file.
2585 * msgsed.c: Remove file.
2586 * Makefile.am (bin_PROGRAMS): Replace msgsed with msgexec.
2587 (msgexec_SOURCES, msgexec_LDADD): New variables.
2588 (msgsed_SOURCES, msgsed_LDADD): Remove variables.
2590 2001-07-11 Bruno Haible <haible@clisp.cons.org>
2592 * xgettext.c (test_whether_c_format): When encountering an
2593 unterminated % format specifier, return 'impossible'.
2594 Reported by Gaute B Strokkenes <gs234@cam.ac.uk>.
2596 2001-07-09 Bruno Haible <haible@clisp.cons.org>
2598 * write-po.c (has_nonascii): New function.
2599 (message_print): Warn if the msgid is not fully ASCII.
2600 (message_print_obsolete): Likewise.
2602 2001-07-05 Bruno Haible <haible@clisp.cons.org>
2604 * msgcomm.c (is_message_selected): Keep the header entry.
2606 2001-07-01 Bruno Haible <haible@clisp.cons.org>
2608 * po-charset.h (po_lex_charset): New declaration.
2609 * po-charset.c (po_lex_charset): Export variable.
2610 * po-lex.h: Include xerror.h.
2611 (gram_pos_column): New declaration.
2612 (po_gram_error): Also output current column number.
2613 (po_gram_error_at_line): Work around ## problem in gcc.
2614 * po-lex.c: Include linebreak.h and utf8-ucs4.h.
2615 (gram_pos_column): New variable.
2616 (po_gram_error): Also output current column number.
2617 (MBCHAR_BUF_SIZE): New macro.
2618 (struct mbchar, mbchar_t): New types.
2619 (memcpy_small, mb_iseof, mb_ptr, mb_len, mb_iseq, mb_isnul, mb_cmp,
2620 mb_equal, mb_isascii): New functions.
2621 (MB_UNPRINTABLE_WIDTH): New macro.
2622 (mb_width, mb_putc, mb_setascii, mb_copy): New functions.
2623 (NPUSHBACK): New macro.
2624 (struct mbfile, mbfile_t): New types.
2625 (signal_eilseq): New variable.
2626 (mbfile_init, mbfile_getc, mbfile_ungetc): New functions.
2627 (mbf): New variable.
2628 (fp): Remove variable.
2629 (lex_open): Initialize mbf, gram_pos_column, signal_eilseq.
2630 (lex_close): Reset mbf, gram_pos_column, signal_eilseq.
2631 (lex_getc): Return a multibyte character. Update gram_pos_column.
2632 (lex_ungetc): Take a multibyte character. Update gram_pos_column.
2633 (keyword_p): Use po_gram_error_at_line instead of po_gram_error.
2634 No column number needed here.
2635 (control_sequence): Read multibyte characters instead of bytes.
2636 (po_gram_lex): Likewise.
2637 * xgettext.c (exclude_directive_domain): Use po_gram_error_at_line
2638 instead of po_gram_error. No column number needed here.
2639 (extract_directive_domain): Likewise.
2640 * msgcomm.c (extract_directive_domain): Likewise.
2642 2001-06-30 Bruno Haible <haible@clisp.cons.org>
2644 * message.h: Include stdbool.h.
2645 (message_ty): Change type of fields 'is_fuzzy', 'obsolete' to bool.
2646 (message_predicate_ty): Change return type to bool.
2647 * message.c (message_alloc): Update.
2648 * msgcat.c (is_message_selected): Change return type to bool.
2649 (is_message_needed): Likewise.
2650 (is_message_first_needed): Likewise.
2652 (catenate_msgdomain_list): Update. Use yes/no for is_c_format and
2654 * msgcmp.c (multi_domain_mode): Change type to bool.
2655 (compare_directive_message): Change 'obsolete' argument type to bool.
2657 * msgcomm.c (is_message_selected): Change return type to bool.
2658 (extract_directive_message): Change 'obsolete' argument type to bool.
2660 (struct extract_class_ty): Change type of field 'is_fuzzy' to bool.
2661 Change type of field 'filepos_count' to size_t.
2662 (extract_constructor): Update.
2663 (extract_parse_brief): Update.
2664 (extract_comment_special): Update.
2665 (read_po_file): Update.
2666 * msgconv.c (main): Use bool.
2667 * msgen.c (main): Use bool.
2668 * msgfmt.c (struct msgfmt_class_ty): Change type of fields 'is_fuzzy',
2669 'has_header_entry' to bool.
2670 (include_all): Change type to bool.
2671 (do_check): Likewise.
2672 (long_options): Update.
2673 (format_directive_message): Change 'obsolete' argument type to bool.
2675 (format_constructor): Update.
2676 (format_debrief): Update.
2677 (format_comment_special): Update.
2678 (check_pair): Update.
2679 * msggrep.c (is_string_selected): Change return type to bool.
2680 (is_message_selected): Likewise.
2682 * msgl-charset.c (compare_po_locale_charsets): Use bool.
2683 * msgl-iconv.c (iconv_message_list): Update.
2684 * msgmerge.c (quiet): Change type to bool.
2685 (multi_domain_mode): Likewise.
2687 (match_domain): Update.
2689 * msgsed.c (main): Use bool.
2690 * msgunfmt.c (main): Use bool.
2691 * po-gram-gen.y (string, stringlist, number, pos, rhs): Change type of
2692 'obsolete' field to bool.
2693 * po-lex.h: Include stdbool.h.
2694 (pass_obsolete_entries): Change type to bool.
2695 (po_lex_pass_comments): Change argument type to bool.
2696 (po_lex_pass_obsolete_entries): Likewise.
2697 (po_gram_error): Update.
2698 (po_gram_error_at_line): Update.
2699 * po-lex.c (po_lex_obsolete): Change type to bool.
2700 (pass_comments): Likewise.
2701 (pass_obsolete_entries): Likewise.
2703 (lex_close): Update.
2704 (po_gram_error): Update.
2705 (po_gram_error_at_line): Update.
2706 (po_gram_lex): Update.
2707 (po_lex_pass_comments): Change argument type to bool.
2708 (po_lex_pass_obsolete_entries): Likewise.
2709 * po.h (struct po_method_ty): Change 'obsolete' argument type of
2710 directive_message to bool.
2711 (po_callback_message): Change 'obsolete' argument type to bool.
2712 * po.c (po_directive_message): Change 'obsolete' argument type to bool.
2713 (po_callback_message): Likewise.
2714 * read-po.c (struct readall_class_ty): Change type of field 'is_fuzzy'
2716 (readall_directive_message): Change 'obsolete' argument type to bool.
2717 (readall_constructor): Update.
2718 (readall_parse_brief): Update.
2719 (readall_comment_special): Update.
2720 (read_po_file): Update.
2721 * str-list.h: Include stdbool.h.
2722 (string_list_member): Change return type to bool.
2723 * str-list.c (string_list_member): Change return type to bool.
2724 * write-po.h (message_print_style_escape, msgdomain_list_print): Change
2725 argument type to bool.
2726 * write-po.c (make_c_format_description_string) Change argument type
2728 (message_print): Likewise.
2729 (message_print_obsolete): Likewise.
2730 (indent): Change type to bool.
2731 (uniforum): Likewise.
2733 (message_print_style_indent): Update.
2734 (message_print_style_uniforum): Update.
2735 (message_print_style_escape): Change argument type to bool.
2737 (msgdomain_list_print): Change argument type to bool.
2738 * xget-lex.h (xgettext_any_keywords): Change return type to bool.
2739 * xget-lex.c (trigraphs): Change type to bool.
2740 (default_keywords): Likewise.
2741 (phase5_get): Use NULL not 0. Update.
2742 (phaseX_get): Use bool.
2743 (xgettext_lex): Update.
2744 (xgettext_lex_keyword): Update.
2745 (xgettext_any_keywords): Change return type to bool.
2746 (xgettext_lex_trigraphs): Update.
2747 * xgettext.c (add_all_comments): Change type to bool.
2748 (extract_all): Likewise.
2749 (long_options): Update.
2750 (exclude_directive_message): Change 'obsolete' argument type to bool.
2751 (extract_directive_message): Likewise.
2753 (scan_c_file): Update.
2754 (struct extract_class_ty): Change type of field 'is_fuzzy' to bool.
2755 Change type of field 'filepos_count' to size_t.
2756 (extract_constructor): Update.
2757 (extract_parse_brief): Update.
2758 (extract_comment_special): Update.
2759 (construct_header): Update.
2761 2001-06-25 Bruno Haible <haible@clisp.cons.org>
2763 * msggrep.c (usage): Explain the pattern syntax.
2765 2001-06-18 Karl Eichwalder <ke@suse.de>
2767 * msgcomm.c (long_options): Add '--unique' option as documented
2768 within --help output.
2770 2001-06-12 Bruno Haible <haible@clisp.cons.org>
2772 * xgettext.c (extension_to_language): Recognize "*.hh" as being C++.
2773 Reported by Felix Natter.
2775 2001-06-10 Bruno Haible <haible@clisp.cons.org>
2777 * msgcmp.c (main): Set gram_max_allowed_errors to UINT_MAX, as in
2780 2001-06-10 Bruno Haible <haible@clisp.cons.org>
2782 * message.c (message_alloc): Cast xmalloc return value.
2783 (message_list_alloc): Likewise.
2784 (message_list_list_alloc): Likewise.
2785 (msgdomain_alloc): Likewise.
2786 (msgdomain_list_alloc): Likewise.
2787 * msgunfmt.c (string32): Likewise.
2788 * po.c (po_alloc): Likewise.
2789 * str-list.c (string_list_concat): Likewise.
2790 (string_list_join): Likewise.
2792 2001-06-10 Bruno Haible <haible@clisp.cons.org>
2794 * message.h (message_ty): New field 'tmp'.
2795 (message_predicate_ty): New type.
2796 (message_list_remove_if_not): New declaration.
2797 * message.c (message_list_delete_nth): Comment out.
2798 (message_list_remove_if_not): New function.
2799 * msgl-charset.h: New file.
2800 * msgl-charset.c: New file.
2801 * msgl-iconv.h: New file.
2802 * msgl-iconv.c: New file.
2803 * msgcat.c: New file.
2804 * msgconv.c: New file.
2805 * msgen.c: New file.
2806 * msggrep.c: New file.
2807 * msgsed.c: New file.
2808 * msgcomm.c (default_domain, output_dir): Remove variables.
2809 (long_options): Remove --default-domain and --output-dir. Add
2811 (main): Don't accept -a, -C, -d, -k, -l, -L, -m, -M, -p, -T, -x.
2812 Use output_file instead of complexly computed file_name.
2813 Use O(n) loop instead of O(n^2) loop for removing messages.
2814 (usage): Don't document --default-domain and --output-dir.
2815 (is_message_selected): New function.
2816 * Makefile.am (bin_PROGRAMS): Add msgcat, msgconv, msgen, msggrep,
2818 (noinst_HEADERS): Add msgl-charset.h, msgl-iconv.h.
2819 (msgcat_SOURCES, msgconv_SOURCES, msgen_SOURCES, msggrep_SOURCES,
2820 msgsed_SOURCES): New variables.
2821 (msgcat_LDADD, msgconv_LDADD, msgen_LDADD, msggrep_LDADD,
2822 msgsed_LDADD): New variables.
2824 2001-06-10 Bruno Haible <haible@clisp.cons.org>
2826 * message.h (struct message_variant_ty): Remove type.
2827 (struct message_ty): Remove variant_count, variant fields. Add
2828 msgstr, msgstr_len, pos fields.
2829 (message_alloc): Add msgstr, msgstr_len, pp arguments.
2830 (message_variant_search, message_variant_append): Remove declarations.
2831 (msgdomain_ty): New type.
2832 (msgdomain_alloc, msgdomain_free): New declarations.
2833 (msgdomain_list_ty): New type.
2834 (msgdomain_list_alloc, msgdomain_list_free, msgdomain_list_append,
2835 msgdomain_list_append_list, msgdomain_list_sublist,
2836 msgdomain_list_search, msgdomain_list_search_fuzzy): New declarations.
2837 * message.c (message_alloc): Add msgstr, msgstr_len, pp arguments.
2838 (message_free): Update.
2839 (message_variant_search): Remove function.
2840 (message_variant_append): Remove function.
2841 (message_copy): Update.
2842 (message_merge): Update.
2843 (message_list_alloc): Use NULL, not 0.
2844 (message_list_search): Likewise.
2845 (message_list_search_fuzzy_inner): Update.
2846 (message_list_list_alloc): Use NULL, not 0.
2847 (message_list_list_search): Likewise.
2848 (message_list_list_free): Comment out.
2849 (msgdomain_alloc, msgdomain_free, msgdomain_list_alloc,
2850 msgdomain_list_append, msgdomain_list_sublist): New functions.
2851 * read-po.h (read_po_file): Change return type to
2852 'msgdomain_list_ty *'.
2853 * read-po.c (readall_class_ty): Remove field domain_list, add field
2855 (readall_constructor): Update.
2856 (readall_destructor): Likewise.
2857 (readall_directive_message): Likewise.
2858 (readall_parse_debrief): Remove function.
2859 (readall_methods): Use NULL instead of readall_parse_debrief.
2860 (read_po_file): Change return type to 'msgdomain_list_ty *'.
2861 * write-po.h (message_list_print, message_list_sort_by_msgid,
2862 message_list_sort_by_filepos): Remove declarations.
2863 (msgdomain_list_print, msgdomain_list_sort_by_msgid,
2864 msgdomain_list_sort_by_filepos): New declarations.
2865 * write-po.c (message_print): Remove domain argument. Update. Assume
2867 (message_print_obsolete): Likewise.
2868 (msgdomain_list_print): Renamed from message_list_print. Change type
2870 (msgdomain_list_sort_by_msgid): Renamed from
2871 message_list_sort_by_msgid. Change type of argument.
2872 (msgdomain_list_sort_by_filepos): Renamed from
2873 message_list_sort_by_filepos. Change type of argument.
2874 * msgcmp.c (compare_class_ty): Remove field domain_list, add field
2876 (multi_domain_mode): New variable.
2877 (long_options): Add --multi-domain.
2878 (main): Accept -m/--multi-domain.
2879 (usage): Explain --multi-domain.
2880 (match_domain): New function, extracted from 'compare'.
2881 (compare): Update. Handle multi_domain_mode. Change argument types to
2883 (compare_constructor): Update.
2884 (compare_destructor): Likewise.
2885 (compare_directive_message): Likewise.
2886 (compare_parse_debrief): Remove function.
2887 (compare_methods): Use NULL instead of compare_parse_debrief.
2888 (grammar): Change argument type to 'const char *' and return type to
2889 'msgdomain_list_ty *'.
2890 * msgcomm.c (main): Update.
2891 (extract_directive_message): Update.
2892 * msgmerge.c (multi_domain_mode): New variable.
2893 (long_options): Add --multi-domain.
2894 (struct statistics): New type.
2895 (main): Accept -m/--multi-domain. Update.
2896 (usage): Explain --multi-domain.
2897 (compendium): Update.
2898 (match_domain): New function, extracted from 'merge'.
2899 (merge): Update. Handle multi_domain_mode.
2900 * msgunfmt.c (main): Update.
2901 (read_mo_file): Update.
2902 * xgettext.c (main): Update.
2903 (exclude_directive_message): Update.
2904 (remember_a_message): Likewise.
2905 (remember_a_message_plural): Likewise.
2906 (scan_c_file): Change argument type to 'msgdomain_list_ty *'.
2907 (extract_directive_message): Update.
2908 (read_po_file): Change argument type to 'msgdomain_list_ty *'.
2909 (construct_header): Update.
2911 * dir-list.h: Don't use reserved identifiers in prototypes.
2912 * gettext.c: Likewise.
2913 * message.c: Likewise.
2914 * msgcmp.c: Likewise.
2915 * msgcomm.c: Likewise.
2916 * msgfmt.c: Likewise.
2917 * msgunfmt.c: Likewise.
2918 * ngettext.c: Likewise.
2919 * open-po.h: Likewise.
2920 * po-hash.h: Likewise.
2921 * po-lex.h: Likewise.
2922 * po-lex.c: Likewise.
2925 * str-list.h: Likewise.
2926 * write-po.c: Likewise.
2927 * xget-lex.h: Likewise.
2928 * xget-lex.c: Likewise.
2929 * xgettext.c: Likewise.
2931 2001-06-10 Bruno Haible <haible@clisp.cons.org>
2933 * message.h (message_list_prepend): New declaration.
2934 * message.c (message_list_prepend): New function.
2935 * msgmerge.c (merge): Add a header entry to the ref list if it has
2938 2001-06-10 Bruno Haible <haible@clisp.cons.org>
2940 * msgfmt.c: Change the --strict option to not apply to domain
2941 directives, only to the output filename argument.
2942 (struct msg_domain): Add file_name field.
2943 (domain_list): Renamed from domain.
2944 (new_domain): Add file_name argument.
2945 (main): Pass file name to new_domain(). Use file_name passed to
2946 new_domain() in fopen call; don't free it.
2947 (new_domain): New argument 'file_name'.
2948 (format_directive_domain): Always ensure ".mo" suffix, independently
2950 (format_directive_message): Likewise.
2951 (add_mo_suffix): Don't call xstrdup.
2953 2001-06-01 Bruno Haible <haible@clisp.cons.org>
2955 * Makefile.am (datadir): Remove definition.
2956 Reported by Albert Chin-A-Young <china@thewrittenword.com>.
2958 2001-05-15 Bruno Haible <haible@clisp.cons.org>
2960 * msgcmp.c (main): Call set_program_name instead of assigning
2961 program_name directly.
2962 * msgcomm.c (main): Likewise.
2963 * msgfmt.c (main): Likewise.
2964 * msgmerge.c (main): Likewise.
2965 * msgunfmt.c (main): Likewise.
2966 * xgettext.c (main): Likewise.
2967 * gettext.c (main): Remove "lt-" prefix from program_name.
2968 * ngettext.c (main): Likewise.
2970 2001-05-04 Bruno Haible <haible@clisp.cons.org>
2972 * gettext.c (usage): Add description of what the program does.
2973 Separate blocks with blank lines.
2974 * ngettext.c (usage): Likewise.
2976 * msgcmp.c (usage): Add a blank line after the first usage line.
2977 Hardwire the blank line output.
2978 * msgcomm.c (usage): Likewise.
2979 * msgfmt.c (usage): Likewise.
2980 * msgmerge.c (usage): Likewise.
2981 * msgunfmt.c (usage): Likewise.
2982 * xgettext.c (usage): Likewise.
2984 2001-05-05 Karl Eichwalder <ke@suse.de>
2986 * xgettext.c (read_name_from_file): Remove trailing space from line.
2987 * msgcomm.c (read_name_from_file): Likewise.
2989 2001-05-02 Bruno Haible <haible@clisp.cons.org>
2991 * po-charset.c: Don't include stdio.h, stdlib.h, mbswidth.h. Include
2993 (multiline_warning): Move to xerror.c.
2994 (po_lex_charset_set): Use xasprintf instead of asprintf.
2995 * msgfmt.c: Include xerror.h.
2996 (format_debrief): Use multiline_error for the error message.
2998 2001-05-01 Bruno Haible <haible@clisp.cons.org>
3000 Prefix most error messages with the program name, except those
3001 starting with "filename:lineno:".
3002 * po-lex.h: Include progname.h.
3003 (po_gram_error): Set error_with_progname = 0 during error_at_line()
3005 (po_gram_error_at_line): Likewise.
3006 * po-lex.c (po_gram_error): Likewise.
3007 (po_gram_error_at_line): Likewise.
3008 * msgcmp.c: Include progname.h.
3009 (program_name): Remove variable.
3010 (error_print): Remove function.
3011 (main): Initialize error_print_progname with maybe_print_progname.
3012 * msgcomm.c: Include progname.h.
3013 (program_name): Remove variable.
3014 (error_print): Remove function.
3015 (main): Initialize error_print_progname with maybe_print_progname.
3016 * msgfmt.c: Include progname.h.
3017 (program_name): Remove variable.
3018 (error_print): Remove function.
3019 (main): Initialize error_print_progname with maybe_print_progname.
3020 (format_directive_message): Set error_with_progname = 0 during
3021 error_at_line() call.
3022 (check_pair): Likewise.
3023 * msgmerge.c: Include progname.h.
3024 (program_name): Remove variable.
3025 (error_print): Remove function.
3026 (main): Initialize error_print_progname with maybe_print_progname.
3027 * msgunfmt.c: Include progname.h.
3028 (program_name): Remove variable.
3029 (error_print): Remove function.
3030 (main): Initialize error_print_progname with maybe_print_progname.
3031 * xget-lex.c: Include progname.h.
3032 (phase5_get): Set error_with_progname = 0 during error() call.
3033 * xgettext.c: Include progname.h.
3034 (program_name): Remove variable.
3035 (error_print): Remove function.
3036 (main): Initialize error_print_progname with maybe_print_progname.
3037 (scan_c_file): Set error_with_progname = 0 during error() call.
3039 2001-04-30 Bruno Haible <haible@clisp.cons.org>
3041 Save the messages' obsoleteness status in the 'message_ty'.
3042 * po.h (struct po_method_ty): Add 'obsolete' argument to
3043 directive_message method.
3044 (po_callback_message): Add 'obsolete' argument.
3045 * po.c (po_directive_message): Add 'obsolete' argument. Pass it to
3046 method->directive_message.
3047 (po_callback_message): Add 'obsolete' argument.
3048 * po-gram-gen.y (message): Pass 'obsolete' argument to
3049 po_callback_message.
3050 * msgcmp.c (compare_directive_message): Add 'obsolete' argument.
3051 * msgcomm.c (extract_directive_message): Likewise.
3052 * msgfmt.c (format_directive_message): Likewise.
3053 * xgettext.c (exclude_directive_message, extract_directive_message):
3055 * read-po.c (readall_directive_message): Likewise. Set mp->obsolete.
3057 2001-05-01 Bruno Haible <haible@clisp.cons.org>
3059 Reduce running time for very long msgstrs from O(n^2) to O(n) where
3060 n is the number of string pieces.
3061 * str-list.h (string_list_init, string_list_destroy,
3062 string_list_concat, string_list_concat_destroy): New declarations.
3063 * str-list.c (string_list_init, string_list_destroy,
3064 string_list_concat, string_list_concat_destroy): New functions.
3065 * po-gram-gen.y Include str-list.h.
3066 (%union): Add new alternative of type string_list_ty.
3067 (string_list): Change type to stringlist.
3068 (message): Use string_list_concat_destroy to convert a stringlist to
3069 a single string. Use string_list_destroy instead of free.
3070 (msgid_pluralform): Likewise.
3071 (pluralform): Likewise.
3072 (string_list): Return a stringlist. Don't concatenate the strings one
3074 * po-lex.c: Include str-list.h.
3076 2001-04-30 Bruno Haible <haible@clisp.cons.org>
3078 * message.h (message_alloc): Add const to prototype.
3079 * message.c (message_alloc): Add const to argument type.
3080 * msgcmp.c (compare_class_ty): Add const to 'domain' field.
3081 * msgcomm.c (default_domain): Add const.
3082 (main): Add const to 'file_name' variable.
3083 * xgettext.c (default_domain): Add const.
3084 (msgstr_prefix): Likewise.
3085 (msgstr_suffix): Likewise.
3086 (main): Add const to 'file_name' variable.
3088 2001-04-29 Bruno Haible <haible@clisp.cons.org>
3090 * read-po.h: New file.
3091 * read-po.c: New file, extracted from msgmerge.c.
3092 * msgmerge.c: Don't include string.h. Include read-po.h instead.
3093 (merge_class_ty, line_comment, merge_constructor, merge_destructor,
3094 merge_directive_domain, merge_directive_message, merge_parse_brief,
3095 merge_parse_debrief, merge_comment, merge_comment_dot,
3096 merge_comment_special, merge_comment_filepos, grammar): Move out to
3098 (compendium, merge): Call read_po_file() instead of grammar().
3099 * Makefile.am (noinst_HEADERS): Add read-po.h.
3100 (msgmerge_SOURCES): Add read-po.c.
3103 2001-04-28 Bruno Haible <haible@clisp.cons.org>
3105 * msgcmp.c (usage): Restructure usage message. Talk about ref.pot, not
3107 * msgcomm.c (long_options): Remove --add-comments, --join-existing
3109 (main): Rename local variables sort_output, sort_by_file to
3110 sort_by_msgid, sort_by_filepos. Remove -c and -j options.
3111 (usage): Restructure usage message. INPUTFILE is not mandatory. Remove
3113 * msgfmt.c (usage): Restructure usage message.
3114 * msgmerge.c (main): Signal error if both --sort-output and
3115 --sort-by-file were given.
3116 (usage): Restructure usage message. Talk about ref.pot, not ref.po.
3117 Document --sort-output, --sort-by-file, --quiet.
3118 * msgunfmt.c (long_options): Add --sort-output.
3119 (main): Recognize -s/--sort-output option, and sort the message list
3121 (usage): Restructure usage message.
3122 * xgettext.c (main): Rename local variables sort_output, sort_by_file
3123 to sort_by_msgid, sort_by_filepos.
3124 (usage): Restructure usage message.
3126 2001-04-28 Bruno Haible <haible@clisp.cons.org>
3128 * po-charset.h: New file.
3129 * po-charset.c: New file, extracted from po.c. Don't warn about wrong
3130 or missing charset if it's a POT file.
3131 * po-lex.h (iconv.h, po_lex_iconv): Move to po-charset.h.
3132 (po_lex_charset): Remove declaration.
3133 * po-lex.c: Include po-charset.h.
3134 (po_lex_charset, po_lex_iconv): Move to po-charset.c.
3135 (lex_open): Call po_lex_charset_init.
3136 (lex_close): Call po_lex_charset_close.
3137 * po.c: Don't include ctype.h, stdio.h, mbswidth.h, libgettext.h.
3138 Include po-charset.h instead.
3139 (program_name, _, SIZEOF, multiline_warning): Move to po-charset.c.
3140 (po_callback_message): Move charset handling to po-charset.c.
3141 * Makefile.am (noinst_HEADERS): Add po-charset.h.
3142 (msgcmp_SOURCES, msgfmt_SOURCES, msgmerge_SOURCES, xgettext_SOURCES,
3143 msgcomm_SOURCES): Add po-charset.c.
3146 * msgfmt.c: Don't include ctype.h.
3147 * msgunfmt.c: Likewise.
3149 2001-04-28 Bruno Haible <haible@clisp.cons.org>
3151 * po.h (PO_BASE_TY): Remove next_is_fuzzy field.
3152 * po.c (po_alloc): Don't reset next_is_fuzzy.
3153 (po_callback_message): Ignore fuzziness of the header entry. Don't
3154 reset next_is_fuzzy.
3155 (po_callback_comment): Don't set next_is_fuzzy.
3156 * msgfmt.c (format_directive_message): Ignore fuzziness of the header
3157 entry. Count fuzzy untranslated entries as untranslated.
3159 2001-09-13 Bruno Haible <haible@clisp.cons.org>
3161 * gettext-0.10.40 released.
3163 2001-07-24 Bruno Haible <haible@clisp.cons.org>
3165 * gettext-0.10.39 released.
3167 2001-05-23 Bruno Haible <haible@clisp.cons.org>
3169 * gettext-0.10.38 released.
3171 2001-05-23 Bruno Haible <haible@clisp.cons.org>
3173 * write-po.c (wrap): Avoid broken EUC-KR conversion in glibc-2.1.
3175 2001-05-21 Bruno Haible <haible@clisp.cons.org>
3177 * xgettext.c (construct_header): Replace 8-bit with 8bit.
3179 2001-04-19 Bruno Haible <haible@clisp.cons.org>
3181 * gettext-0.10.37 released.
3183 2001-04-18 Bruno Haible <haible@clisp.cons.org>
3185 * po.c (po_callback_message): Don't call iconv_open when the
3186 OLD_PO_FILE_INPUT environment variable is set.
3187 * write-po.c (wrap): Don't call iconv_open when the OLD_PO_FILE_OUTPUT
3188 environment variable is set.
3190 2001-04-09 Bruno Haible <haible@clisp.cons.org>
3192 * po.c: Include mbswidth.h.
3193 (program_name): New declaration.
3194 (multiline_warning): New function.
3195 (po_callback_message): Change messages again. Call multiline_warning
3198 2001-04-04 Bruno Haible <haible@clisp.cons.org>
3200 * gettext.c (program_name): Change type to 'const char *'.
3201 * ngettext.c (program_name): Likewise.
3203 2001-04-04 Bruno Haible <haible@clisp.cons.org>
3205 * write-po.c (wrap): Prohibit line breaks inside backslash escape
3208 2001-03-29 Bruno Haible <haible@clisp.cons.org>
3210 * gettext-0.10.36 released.
3212 2001-03-27 Bruno Haible <haible@clisp.cons.org>
3214 * po.c (po_callback_message): Change message again.
3216 2001-03-26 Bruno Haible <haible@clisp.cons.org>
3218 * xgettext.c (test_whether_c_format): Recognize '%%' as valid.
3219 * msgfmt.c (check_pair): In error message, count format
3220 specifications starting from 1, not 0.
3222 2001-03-25 Bruno Haible <haible@clisp.cons.org>
3224 * xgettext.c (warn_id_len): Remove unused variable.
3225 (main): Don't set it. 'l' option becomes a nop.
3226 (usage): Remove mention of --string-limits/-l.
3228 2001-03-23 Bruno Haible <haible@clisp.cons.org>
3230 * msgcomm.c (main): Don't give an error message if there are "too few"
3231 messages in the input files. Do sanity checking before reading the
3232 input files. Make --add-location the default, even if --omit-header
3235 2001-03-22 Bruno Haible <haible@clisp.cons.org>
3237 * xgettext.c (construct_header): Replace ENCODING with 8-bit.
3239 2001-03-20 Bruno Haible <haible@clisp.cons.org>
3241 * po.c (po_callback_message): Change message, refer to GNU libiconv.
3243 2001-03-18 Bruno Haible <haible@clisp.cons.org>
3245 * gettext.c [TESTS]: When testing, set HAVE_SETLOCALE.
3246 (main): Expand escape sequences also if no domain is given. Don't need
3247 to call bindtextdomain if there are no string arguments.
3248 * ngettext.c: New file.
3249 * Makefile.am (bin_PROGRAMS): Add ngettext.
3250 (ngettext_SOURCES): New variable.
3252 2001-03-19 Bruno Haible <haible@clisp.cons.org>
3254 * xgettext.c (extension_to_language): Recognize "*.cpp" and "*.hpp" as
3256 Patch by Dennis Bjorklund <db@zigo.dhs.org>.
3258 2001-03-11 Bruno Haible <haible@clisp.cons.org>
3260 * gettext.c: Force inclusion of libgnuintl.h. On Solaris, <locale.h>
3261 has already included libintl.h.
3263 2001-03-11 Bruno Haible <haible@clisp.cons.org>
3264 Karl Eichwalder <ke@suse.de>
3266 * po.c (po_callback_message): Add comments to support translators.
3268 2001-03-11 Bruno Haible <haible@clisp.cons.org>
3270 * po-lex.c (lex_close): Use ngettext and plural-form message.
3271 * msgcmp.c (compare): Likewise.
3272 * msgfmt.c (main): Likewise.
3274 2001-03-10 Bruno Haible <haible@clisp.cons.org>
3276 * po.c (po_callback_message): Cast %*s argument from size_t to int.
3277 * msgfmt.c (format_debrief): Likewise.
3278 (check_pair): Cast format string argument from size_t to long.
3279 * msgmerge.c (merge): Likewise.
3281 * gettext.c (main): Update copyright year.
3282 * msgcmp.c (main): Likewise.
3283 * msgcomm.c (main): Likewise.
3284 * msgfmt.c (main): Likewise.
3285 * msgmerge.c (main): Likewise.
3286 * msgunfmt.c (main): Likewise.
3287 * xgettext.c (main): Likewise.
3289 * po.c (po_callback_message): Also warn if no iconv is present and
3290 the charset is a CJK encoding requiring iconv. Also avoid broken
3291 EUC-KR conversion in glibc-2.1.
3293 2001-03-09 Bruno Haible <haible@clisp.cons.org>
3295 Fix output of strings in CJK encodings.
3296 * write-po.c: Include iconv.h.
3297 (wrap): While preparing a line, use iconv to avoid treating the second
3298 byte of a multi-byte character as an ASCII character.
3300 2001-03-04 Bruno Haible <haible@clisp.cons.org>
3302 * msgcomm.c (main): Use IS_ABSOLUTE_PATH and concatenated_pathname.
3303 Fixes an incorrectly computed memory allocation.
3304 * xgettext.c (main): Likewise.
3305 * open-po.c (open_po_file): Use IS_ABSOLUTE_PATH and
3306 concatenated_pathname.
3307 * xget-lex.c (xgettext_lex_open): Likewise.
3308 * msgfmt.c (main): Use SET_BINARY instead of setmode.
3309 * msgunfmt.c (read_mo_file): Likewise.
3311 2001-03-04 Bruno Haible <haible@clisp.cons.org>
3313 Check syntax of obsolete entries of PO files, not only in msgmerge.
3314 * po-lex.h (pass_obsolete_entries): New declaration.
3315 (msgstr_def): Remove pos field.
3316 * po-lex.c (po_lex_obsolete): New variable.
3317 (pass_obsolete_entries): Make non-static.
3318 (lex_open): Initialize po_lex_obsolete.
3319 (lex_close): Reset po_lex_obsolete.
3320 (po_gram_lex): Don't look at pass_obsolete_entries. Instead, set
3321 po_lex_obsolete to 1 when "#~" is seen. Reset po_lex_obsolete when
3322 a newline is seen. Before returning, fill the 'pos' and 'obsolete'
3323 fields of any token.
3324 * po-gram.gen.y (check_obsolete): New macro.
3325 (union): Add a 'pos' and 'obsolete' field for any symbol type.
3326 (NAME): Assign to type <string>.
3327 (DOMAIN, MSGID, MSGID_PLURAL, MSGSTR, '[', ']'): Assign to type <pos>.
3328 (msgid, msgstr): Remove.
3329 (message, msgid_pluralform, pluralform_list, pluralform, string_list):
3330 Signal an error if the 'obsolete' field is not the same across the
3331 entire token sequence of the rule.
3332 (message): Deal with pass_obsolete_entries here.
3333 (msgid_pluralform, pluralform_list, pluralform, string_list): Fill the
3334 'pos' and 'obsolete' fields of $$.
3336 2001-03-03 Bruno Haible <haible@clisp.cons.org>
3338 Fix parsing of strings in CJK encodings.
3339 * po.h (PO_BASE_TY): New field next_is_fuzzy.
3340 * po-lex.h: Include iconv.h.
3341 (po_lex_charset, po_lex_iconv): New declarations.
3342 * po.c (SIZEOF): New macro.
3343 (po_alloc): Initialize next_is_fuzzy.
3344 (po_callback_message): Add check of charset in header entry.
3345 Set po_lex_charset and po_lex_iconv.
3346 After calling po_directive_message, reset next_is_fuzzy.
3347 (po_callback_comment): Set next_is_fuzzy.
3348 * msgfmt.c (format_directive_message): Remove check of charset in
3349 header entry, now done in po.c.
3350 * po-lex.c (po_lex_charset, po_lex_iconv): New variables.
3351 (lex_open): Initialize them.
3352 (lex_close): Reset them.
3353 (po_gram_lex): While parsing a string, use 'po_lex_iconv' to avoid
3354 treating the second byte of a multi-byte character as an ASCII
3356 * Makefile.am (msgcmp_LDADD, msgfmt_LDADD): New variables.
3358 2001-03-03 Bruno Haible <haible@clisp.cons.org>
3360 * write-po.h: New file, pieces of message.h.
3361 * message.h (message_page_width_set, message_print_style_indent,
3362 message_print_style_uniforum, message_print_style_escape,
3363 message_list_print, message_list_sort_by_msgid,
3364 message_list_sort_by_filepos): Move to write-po.h.
3365 * write-po.c: New file, pieces of message.c.
3366 (wrap): Add charset argument. Rewritten to use mbs_width_linebreaks().
3367 Use c_isprint() instead of isprint().
3368 (message_print): Add charset argument. Insert a space after '#' even
3369 if the comment line's first character is a tab.
3370 (message_print_obsolete): Likewise.
3371 (message_list_print): Don't change locales. Extract the charset name
3372 from the header entry.
3373 (msgid_cmp, filepos_cmp): Always use strcmp, never use strcoll.
3374 (message_list_sort_by_msgid, message_list_sort_by_filepos): Don't
3376 * message.c (indent, uniforum, escape, page_width,
3377 make_c_format_description_string, significant_c_format_p,
3378 make_c_width_description_string, message_print_style_indent,
3379 message_print_style_uniforum, message_print_style_escape, wrap,
3380 print_blank_line, message_print, message_print_obsolete,
3381 message_list_print, msgid_cmp, message_list_sort_by_msgid,
3382 filepos_cmp, message_list_sort_by_filepos, message_page_width_set):
3384 * msgmerge.c: Include write-po.h.
3385 * msgunfmt.c: Likewise.
3386 * xgettext.c: Likewise.
3387 * msgcomm.c: Likewise.
3388 * Makefile.am (noinst_HEADERS): Add write-po.h.
3389 (msgmerge_SOURCES): Add write-po.c.
3390 (msgunfmt_SOURCES): Likewise.
3391 (xgettext_SOURCES): Likewise.
3392 (msgcomm_SOURCES): Likewise.
3393 (msgmerge_LDADD, msgunfmt_LDADD, xgettext_LDADD, msgcomm_LDADD): New
3396 2001-03-03 Bruno Haible <haible@clisp.cons.org>
3398 * msgcmp.c (compare): Internationalize error message.
3400 2001-02-10 Bruno Haible <haible@clisp.cons.org>
3402 * msgunfmt.c (main): Accept -e and -E options.
3404 2001-02-04 Bruno Haible <haible@clisp.cons.org>
3406 * msgfmt.c (main): Open the output file in binary mode.
3407 * msgunfmt.c (read_mo_file): Open the input file in binary mode.
3409 2001-01-21 Bruno Haible <haible@clisp.cons.org>
3412 * Makefile.am (LDADD): Remove ../intl/libintl.$la, not needed any more.
3415 2001-01-20 Bruno Haible <haible@clisp.cons.org>
3417 * msgcomm.c (main): Options '-<' and '->' want an argument.
3419 2001-01-07 Bruno Haible <haible@clisp.cons.org>
3421 * gettext.c: Renamed from gettextp.c. Use included libintl if TESTS
3423 * setlocale.c: Move to ../tests.
3424 * Makefile.am (EXTRA_PROGRAMS, all-local, CLEANFILES): Remove.
3425 (tstgettext_SOURCES): Remove.
3426 (gettext_SOURCES): Update.
3428 2001-01-07 Bruno Haible <haible@clisp.cons.org>
3430 * msgcmp.c: Include libgettext.h instead of libintl.h, so that the
3431 configure argument --disable-nls gets respected.
3432 * msgfmt.c: Likewise.
3433 * msgmerge.c: Likewise.
3434 * msgunfmt.c: Likewise.
3435 * open-po.c: Likewise.
3436 * po-gram-gen.y: Likewise.
3437 * po-lex.c: Likewise.
3438 * xgettext.c: Likewise. Don't include gettext.h.
3440 2001-01-07 Bruno Haible <haible@clisp.cons.org>
3442 Assume <stddef.h>, <stdlib.h>, <string.h>, <locale.h> exist.
3443 * dir-list.c: Likewise.
3444 * gettextp.c: Likewise.
3445 * message.c: Likewise.
3446 * msgcmp.c: Likewise.
3447 * msgcomm.c: Likewise.
3448 * msgfmt.c: Likewise.
3449 * msgmerge.c: Likewise.
3450 * msgunfmt.c: Likewise.
3451 * open-po.c: Likewise.
3453 * setlocale.c: Likewise.
3454 * str-list.h: Likewise.
3455 * xget-lex.c: Likewise.
3456 * xgettext.c: Likewise.
3458 2001-01-06 Bruno Haible <haible@clisp.cons.org>
3460 * Makefile.am (datadir): Assume DATADIRNAME = share.
3462 2001-01-06 Bruno Haible <haible@clisp.cons.org>
3464 * setlocale.c: New file.
3465 * Makefile.am (EXTRA_PROGRAMS): New variable.
3466 (all-local): New target.
3467 (CLEANFILES): New variable.
3468 (tstgettext_SOURCES): New variable.
3470 2001-01-05 Bruno Haible <haible@clisp.cons.org>
3472 * Makefile.am (po-gram-gen.h): Don't use $^, not supported by the
3473 SUSV2 "make" specification.
3474 (LDADD): Add @INTLLIBS@. Needed on Solaris without
3475 --with-included-gettext.
3476 * po-lex.c (gram_max_allowed_errors): Change type to
3479 2001-01-01 Bruno Haible <haible@clisp.cons.org>
3481 Implement plural form handling.
3482 * message.h (struct message_variant_ty): Add msgstr_len field.
3483 (struct message_ty): Add msgid_plural field.
3484 (message_alloc): Take additional msgid_plural argument.
3485 (message_variant_append): Take additional msgstr_len argument.
3486 * message.c (message_alloc): Take additional msgid_plural argument.
3487 (message_free): Free msgid_plural field.
3488 (message_variant_append): Take additional msgstr_len argument.
3489 (message_copy): Copy msgid_plural as well. Pass msgstr_len.
3490 (message_merge): Likewise.
3491 (message_print): Print plural entries using a different format.
3492 (message_print_obsolete): Likewise.
3493 * msgunfmt.c (string32): Return the string's size as well. Verify
3494 the string is NUL terminated.
3495 (read_mo_file): Split the original string into msgid and msgid_plural.
3497 * po-lex.h (msgstr_def): New definition, taken from msgfmt.c.
3498 * po-lex.c (keyword_p): Recognize the msgid_plural keyword.
3499 (po_gram_lex): Accept brackets as single-character tokens.
3500 * po.h (struct po_method_ty): Method 'directive_message' takes
3501 additional arguments 'msgid_plural', 'msgstr_len'.
3502 (po_callback_message): Additional arguments 'msgid_plural',
3504 * po-hash-gen.y (yyerror): Effectively rename to po_hash_error.
3505 * po-gram-gen.y (yyerror): Effectively rename to po_gram_error,
3506 thus enabling reporting of syntax errors.
3507 (plural_counter): New variable.
3508 (%token): Add MSGID_PLURAL, '[', ']' as new tokens.
3509 (%union): Add new alternative of type 'struct msgstr_def'.
3510 (msgid_pluralform, pluralform, pluralform_list): New productions.
3511 (message): Add plural rules.
3512 * po.c (po_directive_message): Additional arguments 'msgid_plural',
3514 (po_callback_message): Likewise.
3515 * msgfmt.c (SIZEOF): New macro.
3516 (struct id_str_pair): Add id_len, id_plural, id_plural_len, str_len
3518 (struct hashtable_entry): Renamed from struct msgstr_def. Add
3519 'msgid_plural', 'msgstr_len' fields.
3520 (format_directive_message): Additional arguments 'msgid_plural',
3521 'msgstr_len'. Verify the validity of the charset field in the header.
3522 Compare msgstr using memcmp, not strcmp.
3523 (check_pair): Additional arguments 'msgid_plural', 'msgstr_len'.
3524 Apply the tests to msgid_plural and each msgstr[i] string.
3525 (format_debrief): Change error message.
3526 (write_table): Store msgid_plural and msgstr_len in msg_arr[], then
3527 output the strings including embedded NULs.
3528 * msgcmp.c (compare_directive_message): Additional arguments
3529 'msgid_plural', 'msgstr_len'.
3530 * msgcomm.c (extract_directive_message): Additional arguments
3531 'msgid_plural', 'msgstr_len'.
3532 * msgmerge.c (merge_directive_message): Additional arguments
3533 'msgid_plural', 'msgstr_len'.
3534 * xget-lex.h (struct xgettext_token_ty): Replace argnum field with
3536 * xget-lex.c (xgettext_lex): Add to default keywords: "ngettext:1,2",
3537 "dngettext:2,3", "dcngettext:2,3".
3538 (xgettext_lex_keyword): Accept new syntax "id:argnum1,argnum2".
3539 * xgettext.c (exclude_directive_message): Additional arguments
3540 'msgid_plural', 'msgstr_len'.
3541 (remember_a_message): Return the new message.
3542 (remember_a_message_plural): New function.
3543 (scan_c_file): Extend state machine to allow remembering msgid1 and
3545 (extract_directive_message): Additional arguments 'msgid_plural',
3546 'msgstr_len'. Compare msgstr using memcmp, not strcmp.
3547 (construct_header): Update.
3549 2000-12-31 Bruno Haible <haible@clisp.cons.org>
3551 * msgfmt.c (format_directive_message): Pass to insert_entry and
3552 find_entry the length including the terminating NUL.
3553 * xget-lex.c (xgettext_lex, xgettext_lex_keyword): Likewise.
3555 2000-12-31 Bruno Haible <haible@clisp.cons.org>
3557 * msgunfmt.c (read_mo_file): Recognize "/dev/stdin", not "/dev/stdout".
3559 2000-12-31 Bruno Haible <haible@clisp.cons.org>
3561 * str-list.h: Fix typo. Add comments.
3562 * str-list.c: Add comments.
3564 * dir-list.h: Add comments.
3565 * dir-list.c: Likewise.
3567 * domain.h: Remove file.
3568 * msgfmt.c: Incorporate it here. Don't include "domain.h".
3569 * msgunfmt.c: Don't include "domain.h".
3570 * xgettext.c: Likewise.
3571 * Makefile.am (noinst_HEADERS): Remove domain.h.
3573 * open-po.h: New file.
3574 * open-po.c: Include it.
3575 * po-lex.c: Likewise.
3576 * Makefile.am (noinst_HEADERS): Add open-po.h.
3578 * open-po.c (open_po_file): Merge duplicated code.
3580 * po-lex.h: Add comments.
3581 (gram_max_allowed_errors): Change type to 'unsigned int'.
3582 (po_gram_error_at_line): Renamed from gram_error_at_line.
3583 (po_gram_error, po_gram_error_at_line): Use ISO C 99 macro vararg
3585 * po-lex.c: Add comments. Don't include "po-gram.h".
3586 (po_gram_error_at_line): Renamed from gram_error_at_line.
3587 * msgmerge.c (main): Initialize gram_max_allowed_errors to UINT_MAX.
3589 * message.h: Add comments.
3590 (enum is_wrap): New type.
3591 (parse_c_width_description_string): Change return type.
3592 (message_ty): Change type of do_wrap field.
3593 * message.c (wrap): Change type of do_wrap argument.
3594 * msgfmt.c (msgfmt_class_ty): Change type of do_wrap field.
3595 * msgmerge.c (merge_class_ty): Change type of do_wrap field.
3596 * msgcomm.c (extract_class_ty): Change types of is_c_format, do_wrap
3598 * xgettext.c (extract_class_ty): Likewise.
3599 (remember_a_message): Change type of do_wrap.
3602 * po-lex.h: Include it.
3603 (struct lex_pos_ty): Remove type, now in pos.h.
3604 * message,h: Include pos.h instead of po-lex.h.
3605 * Makefile.am (noinst_HEADERS): Add pos.h.
3607 * po.h: Add comments.
3609 * gettextp.c (main): Use bindtextdomain instead of bindtextdomain__,
3610 and dgettext instead of dgettext__. There is no need to use the
3611 included libintl when GNU gettext or an X/Open gettext or a catgets
3612 has been found in the system's C library.
3614 * ylwrap: Update from automake-1.4.
3617 * Makefile.am (EXTRA_DIST): New variable.
3619 2000-12-30 Bruno Haible <haible@clisp.cons.org>
3621 * xgettext.c (scanner_c, scanner_cxx): Remove declarations.
3623 2000-12-30 Bruno Haible <haible@clisp.cons.org>
3625 * msgfmt.c (write_table): Pass additional argument &id_len to
3628 2000-09-13 Bruno Haible <haible@clisp.cons.org>
3630 Look into #define bodies.
3631 * xget-lex.c (phaseX_get): Simplify.
3632 (phase6_get): Stop the loop when recognizing a #define directive.
3633 Based on a patch by Martin v. Löwis.
3635 Accept ISO C 99 comment syntax.
3636 * xget-lex.c (cplusplus_comments: Remove variable.
3637 (phase4_getc): Always recognize // comments.
3638 (xgettext_lex_cplusplus): Remove function.
3639 * xget-lex.h (xgettext_lex_cplusplus): Remove declaration.
3640 * xgettext.c (scan_c_file): Remove is_cpp_file argument.
3641 (scanner_c, scanner_cxx): Remove functions.
3642 (language_to_scanner): Call scan_c_file directly.
3644 2000-08-23 Bruno Haible <haible@clisp.cons.org>
3646 * po-lex.c (ALERT_CHAR): New constant macro.
3647 (control_sequence): Accept \a. Don't accept \X.
3649 2000-08-23 Ulrich Drepper <drepper@redhat.com>
3651 * po-lex.c (control_sequence): Unget character which ended \x..
3654 2000-07-28 Bruno Haible <haible@clisp.cons.org>
3656 * xget-lex.h (enum xgettext_token_type_ty): Rename
3657 xgettext_token_type_lp/rp to xgettext_token_type_lparen/rparen.
3658 * xget-lex.c (enum token_type_ty): Rename token_type_lp/rp to
3659 token_type_lparen/rparen.
3660 (xgettext_any_keywords): `keywords' is now a hash table.
3661 * xgettext.c (construct_header): Change two printf directives %02d
3664 1998-07-17 Paul Eggert <eggert@twinsun.com>
3666 Add support for user-specified argument numbers for keywords.
3667 Extract all strings from a keyword arg, not just the first one.
3668 Handle parenthesized commas inside keyword args correctly.
3669 Warn about nested keywords.
3671 * xgettext.c (scan_c_file):
3672 Warn about nested keywords, e.g. _(_("xxx")).
3673 Warn also about not-yet-implemented but allowed nesting, e.g.
3674 dcgettext(..._("xxx")..., "yyy").
3675 Get all strings in a keyword arg, not just the first one.
3676 Handle parenthesized commas inside keyword args correctly.
3678 * xget-lex.h (enum xgettext_token_type_ty):
3679 Replace xgettext_token_type_keyword1 and
3680 xgettext_token_type_keyword2 with just plain
3681 xgettext_token_type_keyword; it now has argnum value.
3682 Add xgettext_token_type_rp.
3683 (struct xgettext_token_ty): Add argnum member.
3684 line_number and file_name are now also set for
3685 xgettext_token_type_keyword.
3686 (xgettext_lex_keyword): Arg is const char *.
3688 * xget-lex.c: Include "hash.h".
3689 (enum token_type_ty): Add token_type_rp.
3690 (keywords): Now a hash table.
3691 (phase5_get): Return token_type_rp for ')'.
3692 (xgettext_lex, xgettext_lex_keyword): Add support for keyword argnums.
3693 (xgettext_lex): Return xgettext_token_type_rp for ')'.
3694 Report keyword argnum, line number, and file name back to caller.
3696 2000-05-06 Ulrich Drepper <drepper@redhat.com>
3698 * Makefile.am (EXTRA_DIST): Replace po-gram.gen.h and po-hash.gen.h
3699 with po-gram-gen.h and po-hash-gen.h.
3700 (YACC): Define as @YACC@ -d.
3702 (msgcmp_SOURCES): Replace dependencies on po-gram.gen.c and
3703 po-hash.gen.c with po-gram-gen.y and po-hash-gen.y.
3704 (msgmerge_SOURCES): Likewise.
3705 (xgettext_SOURCES): Likewise.
3706 (msgcomm_SOURCES): Likewise.
3707 Add rule to built po-gram-gen2.h and make po-lex.o depend on it.
3708 Remove rules to generate po-gram.gen.c and po-hash.gen.c.
3709 Patches by Jim Meyering.
3711 * po-lex.c: Include "po-gram-gen2.h" instead of "po-gram.gen.h".
3713 * message.c (message_list_search_fuzzy_inner): Define static. Take
3714 extra parameter with best weight so far.
3715 (message_list_search_fuzzy): New function.
3716 (message_list_list_alloc): New function.
3717 (message_list_list_append): New function.
3718 (message_list_list_append_list): New function.
3719 (message_list_list_search): New function.
3720 (message_list_list_search_fuzzy): New function.
3721 (message_list_list_free): New function.
3722 * message.h (message_list_list_ty): Define type.
3723 (message_list_list_alloc): Add prototype.
3724 (message_list_list_free): Likewise.
3725 (message_list_list_append): Likewise.
3726 (message_list_list_append_list): Likewise.
3727 (message_list_list_search): Likewise.
3728 (message_list_list_search_fuzzy): Likewise.
3729 * msgmerge.c: Implement --compendium/-C option.
3730 * xget-lex.c (xgettext_any_keywords): New function.
3731 * xget-lex.h (xgettext_any_keywords): Add prototype.
3732 * xgettext.c: Use xgettext_any_keywords to see whether keywords are
3734 Patches by Peter Miller.
3736 1998-05-15 Ulrich Drepper <drepper@cygnus.com>
3738 * po-lex.c (control_sequence): Replace illegal with invalid.
3740 1998-05-01 08:47 Ulrich Drepper <drepper@cygnus.com>
3742 * gettext-0.10.35 released.
3744 1998-04-30 Ulrich Drepper <drepper@cygnus.com>
3746 * dir-list.c: Update Peter Miller's mail address.
3747 * dir-list.h: Likewise.
3748 * message.c: Likewise.
3749 * message.h: Likewise.
3750 * msgcmp.c: Likewise.
3751 * msgcomm.c: Likewise.
3752 * msgmerge.c: Likewise.
3753 * po-gram.h: Likewise.
3754 * po-gram.y: Likewise.
3755 * po-hash.h: Likewise.
3756 * po-hash.y: Likewise.
3757 * po-lex.c: Likewise.
3758 * po-lex.h: Likewise.
3761 * str-list.c: Likewise.
3762 * str-list.h: Likewise.
3763 * xget-lex.c: Likewise.
3764 * xget-lex.h: Likewise.
3766 1998-04-30 Ulrich Drepper <drepper@cygnus.com>
3768 * msgfmt.c: Fix typo in --help text.
3769 Reported by Jan.Djarv@mbox200.swipnet.se.
3771 1998-04-03 01:18 1998 Philippe De Muyter <phdm@macqel.be>
3773 * str-list.h (stddef.h): Include that file only if STDC_HEADERS.
3774 Otherwise include sys/types.h and stdio.h.
3775 * msgmerge.c (string.h): Include that file if HAVE_STRING_H, not
3778 1998-04-29 Ulrich Drepper <drepper@cygnus.com>
3780 * message.c: Use unsigned char for various local variables.
3781 * xgettext.c (comment_tag): Define as unsigned char *.
3782 For loosing Solaris systems. Patches by Jim Meyering.
3784 * msgfmt.c: Use extra braces in if to shut up gcc.
3785 * po-lex.h: Don't declare function po_gram_error and
3786 gram_error_at_line if macros with the same names are defined.
3787 * Makefile.am (MAINTAINERCLEANFILES): New variable.
3788 Patches by Jim Meyering.
3790 1998-04-27 Ulrich Drepper <drepper@cygnus.com>
3792 * xgettext.c: Update year and bug report address. Add little
3793 explanation in --help messages.
3794 * msgfmt.c: Likewise.
3796 * msgmerge.c: Update year and bug report address.
3797 * msgcomm.c: Likewise.
3798 * msgcmp.c: Likewise.
3799 * msgunfmt.c: Likewise.
3801 1997-08-31 22:20 Ulrich Drepper <drepper@cygnus.com>
3803 * msgfmt.c (format_directive_message): Count fuzzy messages as
3804 fuzzy, even if they are not written to the output file.
3806 1997-08-18 13:47 Philippe De Muyter <phdm@info.ucl.ac.be>
3808 * msgcomm.c (sys/types.h): File included.
3810 1997-08-15 12:38 Ulrich Drepper <drepper@cygnus.com>
3812 * xgettext.c: Include <sys/param.h> to define MIN/MAX for HP/UX.
3813 Patch by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
3815 * msgfmt.c: Change DEFAULT_ALIGNMENT to DEFAULT_OUTPUT_ALIGNMENT
3816 to avoid clash with macro with same name in obstack.c.
3817 Reported by Akim Demaille <demaille@inf.enst.fr>.
3819 1997-08-01 15:48 Ulrich Drepper <drepper@cygnus.com>
3821 * Makefile.am (AUTOMAKE_OPTIONS): Require version 1.2.
3823 1997-05-07 04:21 Ulrich Drepper <drepper@cygnus.com>
3825 * msgcomm.c (main): Print author in --version message.
3826 * msgunfmt.c: Likewise.
3827 * msgcmp.c: Likewise.
3828 * msgmerge.c: Likewise.
3829 * msgfmt.c: Likewise.
3830 * xgettext.c: Likewise.
3831 * gettextp.c: Likewise.
3833 1997-05-01 02:33 Ulrich Drepper <drepper@cygnus.com>
3835 * msgcmp.c (main): Update copyright.
3836 * msgunfmt.c (main): Likewise.
3837 * msgcomm.c (main): Likewise.
3838 * msgmerge.c (main): Likewise.
3839 * msgfmt.c (main): Likewise.
3840 * gettextp.c (main): Likewise.
3842 * msgcomm.c: Fix comment about default output (Jan Djarv). Split
3845 1997-03-31 16:09 Ulrich Drepper <drepper@cygnus.com>
3847 * msgcomm.c (usage): Use program_name as argument for print to
3848 print message, not stdout.
3849 Patch by Jan Djarv <jan.djarv@mbox200.swipnet.se>.
3851 Mon Mar 10 06:18:58 1997 Ulrich Drepper <drepper@cygnus.com>
3853 * xgettext.c: Implement generic language scanner handling.
3855 * xget-lex.c (phase7_getc): Better comments.
3856 (phase5_get): Print warnings about unterminated strings and
3857 character constants.
3859 * po-lex.c (po_gram_error): Don't count continuation lines in
3861 (gram_error_at_line): Likewise.
3862 * po-lex.h: Likewise for macro versions.
3864 * po-hash.y: Correct typo.
3866 * msgunfmt.c: Implement --force-po option.
3868 * msgmerge.c: Implement --force-po, --no-location, and
3869 --add-location options.
3871 * msgfmt.c (format_directive_message): If messages are duplicated
3872 and translations are different this is a fatal error.
3874 * msgcmp.c (compare_directive_message): Use correct format for
3875 continuation line in message.
3877 * message.h: Add prototype for message_list_delete_nth.
3879 * message.c: Add message_list_delete_nth function.
3881 * Makefile.am (bin_PROGRAMS): Add msgcomm. (l): New variable.
3882 Set to `l' is using libtool. (LDADD): Change for the needs of
3883 libtool. (msgcomm_SOURCES): New variable.
3885 * msgcomm.c: New file.
3887 Wed Dec 4 01:58:10 1996 Ulrich Drepper <drepper@cygnus.com>
3889 * Makefile.am (LDADD): Change for use of libtool.
3891 Tue Dec 3 18:08:46 1996 Ulrich Drepper <drepper@cygnus.com>
3893 * xget-lex.c (phase7_getc): Return \n when newline is seen, not
3896 * xgettext.c (main): Implement --foreign-user flag.
3898 * msgcmp.c (main): Change --version output to what is required by
3899 GNU standards. (usage): Correct bug report address.
3900 * msgfmt.c: Likewise.
3901 * msgunfmt.c: Likewise.
3902 * msgmerge.c: Likewise.
3903 * xgettext.c: Likewise.
3904 * gettextp.c: Likewise.
3906 Sat Sep 14 04:28:09 1996 Ulrich Drepper <drepper@cygnus.com>
3908 * msgunfmt.c (usage): Put bug report address in separate string.
3909 * msgmerge.c (usage): Likewise.
3910 * msgcmp.c (usage): Likewise.
3911 * xgettext.c (usage): Likewise.
3912 * msgfmt.c (usage): Likewise.
3913 * gettextp.c (usage): Likewise.
3915 Thu Sep 12 21:40:48 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3917 * msgfmt.c (check_pair): Fix error messages.
3919 Sat Aug 31 14:05:29 1996 Ulrich Drepper <drepper@cygnus.com>
3921 * msgunfmt.c (usage): Add hint about where to report bugs to.
3922 * msgmerge.c (usage): Likewise.
3923 * msgcmp.c (usage): Likewise.
3924 * xgettext.c (usage): Likewise.
3925 * msgfmt.c (usage): Likewise.
3926 * gettextp.c (usage): Likewise.
3928 Sat Aug 31 04:49:38 1996 Ulrich Drepper <drepper@cygnus.com>
3930 * gettextp.c: Don't include <libintl.h> since this can generate
3933 Mon Jul 15 02:21:25 1996 Ulrich Drepper <drepper@cygnus.com>
3935 * msgfmt.c: Major change: msgfmt now does not write fuzzy messages
3936 out by default. The option -f/--use-fuzzy must be used to
3937 explicitely tell to do it.
3939 Sat Jul 13 20:23:34 1996 Ulrich Drepper <drepper@cygnus.com>
3941 * xget-lex.c (phase6_get): Reset selected comments on every
3942 preprocessor directive.
3944 Fri Jul 12 12:38:49 1996 Ulrich Drepper <drepper@cygnus.com>
3946 * xgettext.c (main): Remove `v' from short option list.
3948 Sat Jul 6 11:22:47 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3950 * message.c (message_merge): Add some casts to (char *) in alloca
3951 calls. Make KNOWN_FIELDS array static.
3953 Sat Jul 6 11:15:43 1996 Jim Meyering <meyering@na-net.ornl.gov>
3955 * msgfmt.c (check_pair): Correct English in Message.
3957 Fri Jul 5 17:27:11 1996 Ulrich Drepper <drepper@cygnus.com>
3959 * message.c (message_merge): Terminate string for UNKNOWN fields
3962 * message.c (message_merge): Don't print POT-Revision-Date twice.
3964 * msgfmt.c: Implement --statistics.
3965 Suggested by Santiago Vila Doncel.
3967 * msgfmt.c: and change message checking so that tests for leading
3968 and trailing \n are always performed.
3969 Suggested by François Pinard.
3971 Wed Jun 19 02:42:52 1996 Ulrich Drepper <drepper@cygnus.com>
3973 * message.c (message_merge): Implement sorting of header entry
3976 Sat Jun 15 19:46:50 1996 Ulrich Drepper <drepper@cygnus.com>
3978 * msgmerge.c (usage): Correct -w option in help string (was -W).
3980 Tue Jun 11 15:28:44 1996 Ulrich Drepper <drepper@cygnus.com>
3982 * xget-lex.c, xget-lex.h (xgettext_lex_comment): Change parameter
3985 * po-lex.h, po-lex.c (gram_max_allowed_errors): Change type to
3988 * message.c, message.h (message_page_width_set): Change parameter
3991 * Makefile.am (AUTOMAKE_OPTIONS): Add variable. Must be defined
3994 Mon Jun 10 02:53:52 1996 Marcus Daniels <marcus@sysc.pdx.edu>
3996 * dir-list.c: Include system.h in order to get size_t and NULL.
3998 Thu Jun 6 01:59:31 1996 Ulrich Drepper <drepper@cygnus.com>
4000 * str-list.h: Include <stddef.h> to get size_t defined.
4001 Reported by Philippe Defert.
4003 * Makefile.am (LDADD): Remove `@INTLLIBS@ ../lib/libnlsut.a
4004 @LIBS@'. This is not necessary anymore.
4006 Wed Jun 5 00:00:08 1996 Ulrich Drepper <drepper@cygnus.com>
4008 * xgettext.c, msgunfmt.c (usage): Correct --page-width to --width
4011 * open-po.c (open_po_file): Implement search path for PO files.
4013 * xget-lex.c (xgettext_lex_open): Implement search path for PO
4014 files. Patch by Peter Miller.
4016 * message.h (struct message_ty): Add do_wrap member.
4017 Add prototypes for parse_c_width_description_string and
4018 message_page_width_set.
4020 * xgettext.c: Implement --width option to specify width for which
4021 line wrapping is done. Change --directory option implement search
4022 path instead of single directory. Patch by Peter Miller.
4024 * message.c (wrap): Implement no-wrap special comment. If given
4025 no wrapping is performed.
4027 * gettextp.c, msgcmp.c, msgfmt.c, msgmerge.c, msgunfmt.c,
4028 xgettext.c: Add `no-wrap' comments at usage message strings.
4030 * msgcmp.c: Implement --directory to specify search path for .po
4031 files. Patch by Peter Miller.
4033 Tue Jun 4 23:57:59 1996 Ulrich Drepper <drepper@cygnus.com>
4035 * msgfmt.c: Implement --width option to specify width for which
4036 line wrapping is done. Patch by Peter Miller.
4038 * msgmerge.c: Implement --width option to specify width for which
4039 line wrapping is done. Implement --directory to specify search
4040 path for .po files. Patch by Peter Miller.
4042 * msgunfmt.c: Implement --width option to specify width for which
4043 line wrapping is done. Patch by Peter Miller.
4045 Tue Jun 4 00:12:25 1996 Ulrich Drepper <drepper@cygnus.com>
4047 * po-hash.y: Add new clause where in GNU style format the name is
4050 * Makefile.am (noinst_HEADERS): Add dir-list.h.
4051 (msgcmp_SOURCES, msgfmt_SOURCES, msgmerge_SOURCES, xgettext_SOURCES):
4054 Mon Jun 3 00:43:07 1996 Ulrich Drepper <drepper@cygnus.com>
4056 * message.h: Add new parameter for message_list_print.
4058 * msgmerge.c, msgunfmt.c (main): Add new parameter to
4059 message_list_print. Set to 0 because we don't need to know about
4062 * xgettext.c: Implement new option --debug which determines
4063 whether a difference is made between c-format and
4064 possible-c-format. Default is to print c-format for both cases.
4066 * message.c (make_c_format_description_string): Take additional
4067 parameter DEBUG. If nonzero, distinguish between c-format and
4070 * message.c (message_print_obsolete): Copy precious translator
4071 comment to output file. Reported by Santiago Vila Doncel.
4073 * dir-list.c: Include file now is called dir-list.h, not
4076 * message.c: Include <limits.h>.
4078 * Makefile.am (EXTRA_DIST): Add variable to distribute po-gram.y
4081 * Makefile.am (msgfmt_SOURCES): Fix typo: msgfmt.o -> msgfmt.c.
4083 Sat Jun 1 04:33:48 1996 Ulrich Drepper <drepper@cygnus.com>
4085 * Makefile.in: Remove support for tupdate. msgmerge is stable
4088 Wed Apr 10 01:20:49 1996 Ulrich Drepper <drepper@myware>
4090 * message.c (message_print_obsolete): Don't print
4091 c-format/no-c-format flags for obsolete entries.
4093 * xgettext.c (construct_header): Change DIST to ZONE in header
4096 * message.c (message_merge): Insert POT-Creation-Date field before
4099 Tue Apr 9 17:13:34 1996 Ulrich Drepper <drepper@myware>
4101 * xgettext.c (construct_header): Move POT-Creation-Date line
4102 before PO-Revision-Date line.
4104 Fri Apr 5 12:07:19 1996 Ulrich Drepper <drepper@myware>
4106 * msgmerge.c: Implement --quiet option to prevent dots printed as
4108 (merge): Don't print dots if `quiet'.
4110 * msgmerge.c (merge): Nicer statistics message.
4112 * message.c (message_merge): Update POT-Creation-Date field in
4113 header entry from contents in reference file.
4115 * msgfmt.c (format_directive_message): Better test for unchanged
4116 fields in header entry.
4118 * xgettext.c (difftm): Is back.
4119 (construct_header): Print distance to GMT in POT file time stamp.
4121 * xgettext.c (construct_header): Print leading comment and fuzzy
4124 * message.c (message_print): Allow translator comment to fill more
4127 * xgettext.c (construct_header): Introduce POT-Creation-Date
4130 Fri Apr 5 03:05:07 1996 Ulrich Drepper <drepper@myware>
4132 * msgmerge.c (merge): Rename empty in missing. There might be
4133 more empty messages which are not missed.
4135 * msgmerge.c (merge): Terminate `.' line if no verbose output is
4138 * msgmerge.c (main): Implement -v option to increase verbosity
4140 (merge): Print `.' to signal ongoing work.
4141 Unless verbosity level > 1 don't print information about fuzzy and
4142 missing matches. Instead print statistics at the end.
4143 Suggested by François Pinard and Santiago Vila Doncel.
4145 Thu Apr 4 11:59:20 1996 Ulrich Drepper <drepper@myware>
4147 * xgettext.c (difftm): Remove unused function.
4148 (construct_header): Don't fill Last-Translator field with information
4149 about curent user but instead constant text mentioning xgettext.
4151 * message.c (message_list_search_fuzzy): Initialize mp before
4154 * message.c (message_print): Normalize printed messages even more.
4155 Don't print fuzzy flag is msgstr is empty.
4157 * message.c (message_list_search_fuzzy): Don't try to match
4158 against msgid if none if the msgstr of this message in non-empty.
4160 Thu Apr 4 01:57:37 1996 Ulrich Drepper <drepper@myware>
4162 * msgfmt.c (format_directive_message): When testing header entry
4163 also check whether they still contain the initial values.
4164 Suggested by François Pinard.
4166 Tue Apr 2 16:19:42 1996 Ulrich Drepper <drepper@myware>
4168 * xgettext.c (main): Add "warning" to message about unknown input
4171 * Makefile.in (all-gettext): New goal. Same as all.
4173 * xgettext.c (usage): Rearange help strings. One of them was too
4174 long for some dumb catgets programs. Reported by Marcus Daniels.
4176 * msgfmt.c (format_directive_message): Check for standard header
4179 * xgettext.c (construct_header): MIME-VERSION should be written
4182 * msgmerge.c (main): Don't recognize -f option anymore. This is
4185 * msgfmt.c (format_debrief): New function. Warn if no header
4187 (format_directive_message): Remember if header entry is found.
4189 Tue Apr 2 11:12:15 1996 Ulrich Drepper <drepper@myware>
4191 * msgfmt.c (format_constructor): New function. Initialize
4193 (format_directive_message): Clear is_c_format field for next message
4196 * xgettext.c, po-lex.h, po-lex.c, po-gram.y, msgmerge.c, msgfmt.c,
4197 msgcmp.c: Use gram_error_at_line instead of gram_error_with_loc
4198 and error_at_line instead of error_with_loc. Roland does not like
4201 Tue Apr 2 03:27:34 1996 Ulrich Drepper <drepper@myware>
4203 * msgunfmt.c (main): Removed -S option. People should think twice
4204 before using this and so are forced to use the long version.
4206 Tue Apr 2 03:25:56 1996 François Pinard <pinard@iro.umontreal.ca>
4208 * msgunfmt.c (usage): Remove Tab character from message.
4210 Tue Apr 2 03:15:16 1996 Marcus Daniels <marcus@sysc.pdx.edu>
4212 * message.c (significant_c_format_p): If is_c_format is `no' this
4215 Tue Apr 2 03:12:24 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4217 * po.c (po_comment_filepos): Make definition static as declaration
4220 * msgunfmt.c (usage): Add missing \n to help string.
4222 Mon Apr 1 02:37:45 1996 Ulrich Drepper <drepper@myware>
4224 * xgettext.c (main): When recognizing file type, default to C
4225 instead of regarding it as an error. Suggested by Marcus Daniels.
4227 * po.c (po_callback_comment): For now recognize #! also as special
4230 * msgmerge.c (merge): Remove --force option. We now always write
4231 the result. It makes no sense to reject the output because some
4232 messages are not matching.
4234 * po-lex.c (po-gram_error, gram_error_with_loc): Use
4235 error_message_count instead of gram_nerrors.
4236 (gram_nerrors): Remove definition.
4238 * po-lex.h (po-gram_error, gram_error_with_loc): Use
4239 error_message_count instead of gram_nerrors.
4241 * xgettext.c: Remove verbose option and variable.
4242 (test_whether_c_format): Don't return `possible' is string
4243 contains no format specifier.
4245 Sun Mar 31 23:23:40 1996 Ulrich Drepper <drepper@myware>
4247 * xget-lex.c (xgettext_lex): Fix typo. Reported by François
4250 Thu Mar 28 19:01:22 1996 Ulrich Drepper <drepper@myware>
4252 * po.c (po_callback_comment): Correct handling of special
4253 comments. Give whole comment to callback function instead of
4256 Thu Mar 28 18:37:49 1996 Ulrich Drepper <drepper@myware>
4258 * xgettext.c (remember_a_message): Always look through comments
4259 because we have to look for c-format comments.
4261 * message.h, msgmerge.c, xgettext.c, message.c, msgfmt.c:
4262 Implement more detailed C format string handling. Basically coded
4265 Thu Mar 28 16:52:56 1996 Marcus Daniels <marcus@sysc.pdx.edu>
4267 * Makefile.in (MSGFMT_OBJ): Add message.o.
4269 Wed Mar 27 03:16:01 1996 Ulrich Drepper <drepper@myware>
4271 * xget-lex.c (xgettext_lex): Correct implementation of comments
4272 grouped with messages.
4274 Tue Mar 26 21:23:54 1996 Ulrich Drepper <drepper@myware>
4276 * po.c (po_callback_comment): Remove unused variable string.
4277 Include <ctype.h> because isspace is used.
4279 * message.h (message_list_print): Undo change of Mon Mar 25
4280 03:34:44 1996. Don't print trailing comment. Remove additional
4283 * message.c (message_list_print): Undo change of Mon Mar 25
4284 03:34:44 1996. Don't print trailing comment. We now have a
4285 correct implementation of obsolete entry handling.
4286 * msgmerge.c: Ditto.
4288 * po-lex.h: Add prototype for po_lex_pass_obsolete_entries.
4290 * po-lex.c (po_gram_lex): Implement handling of comments for
4291 obsolete entries (#~).
4293 * msgunfmt.c, xgettext.c (main): Undo change of Mon Mar 25
4294 03:34:44 1996. Remove added argument to message_list_print again.
4296 * po-lex.c (po_gram_lex): Small optimization in string collection.
4298 * message.c (message_print_obsolete): Obsolete messages are now
4299 preceded by #~ on each line.
4301 * xgettext.c (remember_a_message): Fix bug with dereferencing
4302 dangling pointer. This caused xgettext test 1 to fail.
4304 * xgettext.c (construct_header): Update format for file header.
4306 * xgettext.c (extract_directive_message): Don't report error when
4307 message variant exists but the value is the same. Reported by
4310 * message.c (wrap): Only write characters in escape notation if
4311 explicitely wanted or if it is one of the well known escapes like
4314 * msgunfmt.c (main): Adopt interface to GNU coding standard. All
4315 given files on command line are input files. Output by default is
4316 written to standard output and can be redirected using -o.
4318 Mon Mar 25 04:25:42 1996 Ulrich Drepper <drepper@myware>
4320 * message.c, message.h (message_list_print): Parameter filename is
4323 * message.c (wrap): Change line break behaviour a bit. While it
4324 is reasonable to break long line containing #: comments
4325 immediately when reaching the the limit, this could lead to unnice
4326 results for the strings in msgid and msgstr. The programmer
4327 usually knows why the lines are that long.
4329 So we break for now after reaching 2 * PAGE_WIDTH instead of
4332 * message.c (message_list_print): Print blank line before trailing
4335 * message.c (message_print_obsolete): Don't print anything for
4336 obsolete entries with empty msgstr.
4338 Mon Mar 25 03:34:44 1996 Ulrich Drepper <drepper@myware>
4340 * msgunfmt.c (main): Make program by default read from stdin and
4341 by default write to stdout in the appropriate argument is not
4342 given. Suggested by François Pinard.
4344 * msgfmt.c (format_directive_domain): Only check for correct
4345 format string elements is special comment contains c-format.
4347 * msgfmt.c: Use sizeof instead of strlen to determine length of
4350 * xgettext.c: Implement generation of c-format special comments.
4352 * msgunfmt.c (main): Call message_list_print with additional
4353 argument set to NULL.
4355 * xgettext.c (main): Call message_list_print with additional
4356 argument set to NULL;
4357 (extract_class_ty): We don't have field comment_special anymore, but
4358 instead flags fuzzy and c_format.
4359 (extract_constructor): Reset fields fuzzy and c_format.
4360 (extract_directive_message): Set flags according to special comments,
4362 (extract_comment_special): Set flags according to special comment.
4364 * message.h (message_ty): We don't have field comment_special
4365 anymore. Instead flags fuzzy and c_format.
4366 (message_comment_special_append): Remove prototype.
4367 (message_list_print): Add new argument to prototype.
4369 * message.c (message_alloc): We don't have the comment_special,
4370 but fuzzy and c_format.
4371 (message_comment_special_append): Remove function. We now have flags.
4372 (message_copy, message_merge): Copy fuzzy and c_format flag
4374 (message_print, message_print_obsolete): Print special comment using
4375 flags, not string list.
4376 (message_list_print): Additional argument with trailing comments.
4377 Printed at the end if not NULL.
4379 * msgmerge.c (merge_class_ty): New fields fuzzy and c_format for
4381 (trailing_comments): New global variable for list of trailing
4382 comments in definition file.
4383 (grammar): Takes an additional argument which if NULL gets the list of
4384 trailing comments assigned to.
4385 (main): Call message_list_print with additional argument of trailing
4387 (merge_comment_special): Recognize fuzzy and c-format special comment.
4389 Sun Mar 24 17:35:26 1996 Ulrich Drepper <drepper@myware>
4391 * xgettext.c (usage): Option --output-suffix does not exist
4394 * msgmerge.c (usage): --strict does not have short form -S.
4396 * message.h (message_ty): New field `obsolete'.
4398 * msgmerge.c (merge): Change behaviour not not matched entries.
4399 Instead of giving a message write them out at the end of the
4400 regular output and precede each line with `# '.
4402 * message.c (message_list_print): Handle obsolete entries
4403 separately by printing them at the end and preceded by `# '.
4404 (message_print_obsolete): New function to print obsolete entries.
4406 * Makefile.in ($(PROGRAMS)): Add generated libraries as
4407 dependencies for programs.
4409 * Makefile.in (PROGRAMS): Remove msgjoin.
4411 Sun Mar 24 01:03:32 1996 Ulrich Drepper <drepper@myware>
4413 * xgettext.c (extract_comment_filepos): Only add line comment if
4414 requested by -n option.
4416 * po.c (po_callback_comment): Short by one bug in special comment
4419 * po.c (po_callback_comment): Handle special comments. Separate
4420 them into a list of comma separate entries.
4422 * message.c (message_print): Format of lines containing fuzzy
4423 comments et.al. is now `#, xxx'.
4425 * Makefile.in: msgjoin program is not anymore generated.
4427 * xgettext.c: First step to implementing general input file
4428 handling. The program now recognizes the file type by the file
4429 name extension and uses the appropriate function. For now two
4430 file types are recognized: C/C++ and PO. Especially handling PO
4431 files make the msgjoin program obsolete.
4433 Sat Mar 23 01:50:00 1996 Ulrich Drepper <drepper@myware>
4435 * msgfmt.c (verbose): Rename to verbose_level.
4436 (main): Increment verbose_level each time -v option is given.
4437 (format_directive_domain): Print some of the diagnostic messages only
4438 if verbosity level is > 1. Suggested by François Pinard for a
4439 better interface to PO mode.
4441 * xgettext.c (scan_c_file): Extract all string if `extract-all'
4442 option is given. Reported by Roland McGrath.
4444 Thu Mar 14 14:55:20 1996 Ulrich Drepper <drepper@myware>
4446 * msgfmt.c (format_comment_special): Be prepared that special
4447 comment contains more than one entry, separated by commas.
4449 * message.c (message_print): Special comments are now written in a
4450 line, separated by commas.
4452 * msgmerge.c (merge): Replace `INEXACT' with `fuzzy'.
4454 Thu Mar 14 11:50:48 1996 Marcus Daniels <marcus@sysc.pdx.edu>
4456 * po-hash.h (po_hash): Change __P to PARAMS in prototype.
4458 Fri Mar 1 13:35:01 1996 Ulrich Drepper <drepper@myware>
4460 * msgfmt.c (main): Set error_one_per_line to 1 to prevent more
4461 than one error message per line. Suggested by François Pinard.
4463 * po-lex.h (po_gram_error): Don't write source file name in fatal
4465 (po_gram_error_with_loc): Ditto.
4467 * po-lex.c (lex_close): Don't write source file name in fatal
4469 (po_gram_error): Ditto.
4470 (po_gram_error_with_loc): Ditto.
4472 Fri Mar 1 00:30:49 1996 Ulrich Drepper <drepper@myware>
4474 * po-lex.h: Use PARAMS instead of __P in header declarations.
4476 * msgcmp.c (compare_methods): Set new field comment_special to
4479 * msgjoin.c (join_methods): Set new field comment_special to NULL.
4481 * xgettext.c (exclude_methods): Set new field comment_special to
4484 * po.h (struct po_method_ty): New field comment_special.
4485 (po_directive_domain, po_directive_message, po_parse_brief,
4486 po_parse_debrief, po_comment, po_comment_dot, po_comment_filepos):
4487 Remove prototypes. Now are local functions.
4489 * po.c (po_parse_brief, po_parse_debrief, po_directive_domain,
4490 po_directive_message, po_comment, po_comment_dot,
4491 po_comment_filepos): Declare functions as local and add
4493 (po_comment_special): New function.
4494 (po_callback_comment): For special comments call po_comment_special.
4496 * msgmerge.c (usage): Add --force in help message.
4497 (merge_methods): Set special comment callback to NULL.
4499 * po-lex.c (lex_open): Don't set pass_comments to 0. This has to
4500 be done in upper layer functions.
4501 (po_gram_lex): Also pass #! comments up.
4503 * msgfmt.c (main): Make lexer pass comments up.
4504 (format_comment_special): New function. Warns about `#! INEXACT'
4506 (format_methods): Add callback for special comment.
4508 Wed Feb 14 01:56:14 1996 Ulrich Drepper <drepper@myware>
4510 * xgettext.c (main): Remove option --output-suffix. When default
4511 domain name is "-" write to stdout.
4513 Mon Feb 12 02:20:09 1996 Ulrich Drepper <drepper@myware>
4515 * xgettext.c (main): Implement --output-suffix parameter to
4516 determine alternative form of suffix for output file.
4518 * xgettext.c, msgjoin.c, msgmerge.c, msgunfmt.c (main): Add
4519 additional argument to message_list_print call: control output in
4520 case of empty PO file.
4521 * message.c (message_list_print): Implement FORCE parameter.
4522 * message.h: Change prototype.
4524 Sun Jan 21 17:24:56 1996 Ulrich Drepper <drepper@myware>
4526 * Makefile.in (install-exec): Include empty else case for case
4527 when Perl is not available. Reported by John David Anglin.
4529 Sat Dec 23 12:41:43 1995 Jun Young <bangjy@nownuri.nowcom.co.kr>
4531 * gettextp.c (usage): Short option for version info is -V.
4533 Tue Dec 19 22:10:12 1995 Ulrich Drepper <drepper@myware>
4535 * Makefile.in (Makefile, tupdate): Explicitly use $(SHELL) for
4536 running shell scripts.
4538 Sat Dec 9 17:06:11 1995 Ulrich Drepper <drepper@myware>
4540 * xgettext.c, xget-lex.h, xget-lex.c, str-list.h, po.h, po.c,
4541 po-lex.c, po-hash.y, po-gram.h, open-po.c, msgunfmt.c, msgmerge.c,
4542 msgjoin.c, msgfmt.c, msgcmp.c, message.h, message.c, gettextp.c:
4543 Use PARAMS instead of __P. Suggested by Roland McGrath.
4545 Fri Dec 8 01:38:40 1995 Ulrich Drepper <drepper@myware>
4547 * Makefile.in (PROGRAMS): Add definitions for new msgjoin program.
4549 * msgjoin.c: Initial revision.
4551 Wed Dec 6 18:43:14 1995 Ulrich Drepper <drepper@myware>
4553 * open-po.c (open_po_file): Recognize /dev/stdin as name for
4554 stdin. Recognize .pot as valid extension.
4556 Wed Dec 6 18:05:11 1995 Ulrich Drepper <drepper@myware>
4558 * msgmerge.c (main): Sort options in getopt loop.
4560 Mon Dec 4 15:37:22 1995 Ulrich Drepper <drepper@myware>
4562 * msgmerge.c: (main): Remove unused variable `exit_status'.
4564 Sun Dec 3 02:51:31 1995 Ulrich Drepper <drepper@myware>
4566 * xget-lex.h: [xgettext_token_type_ty]: We now have two keyword
4567 types and also the comma is important.
4569 * xgettext.c (remember_a_message):
4570 Correct handling of -c option. This is not a
4571 string to prepend to output. Instead it selects single strings to
4572 include (instead of all). Reported by Marcus Daniels.
4573 (scan_c_file): Extend state machine. We have to retrieve the second
4574 argument for the keywords `dgettext' and `dcgetetxt`.
4576 * xget-lex.c (phase5_get): Recognize ','.
4577 (xgettext_lex): Pass ',' on caller.
4578 Return different value for keywords `dgetetxt' and `dcgettext`.
4580 * xget-lex.c (xgettext_lex): `gettext_noop' is an default keyword.
4582 * msgunfmt.c (usage):
4583 Message should not contain TABs. Reported by François Pinard.
4585 * msgunfmt.c (usage):
4586 Correct typo: Uniforun -> Uniforum. Reported by François Pinard.
4588 Mon Nov 20 21:12:52 1995 Ulrich Drepper <drepper@myware>
4590 * po-lex.c, message.c: Some more pretty printing.
4592 * message.c (wrap): Don't support '\a' and '\v'.
4594 * xget-lex.c (phase7_getc): Don't support '\v'.
4596 * po-lex.c (control_sequence): Don't support '\v'.
4598 * gettextp.c (expand_escape): Don't support \a and \v.
4600 * msgcmp.c (compare): Really define static.
4602 Thu Nov 16 22:42:33 1995 Ulrich Drepper <drepper@myware>
4604 * msgmerge.c (merge): Remove additional parameter in in prototype.
4606 * xgettext.c: Reomved unused type definition. Patch by Peter Miller.
4608 * xget-lex.c: Correct some comments and better implementation of
4609 -k option. Patch by Peter Miller.
4611 * po.h: Fix typos. By Peter Miller.
4613 * po-lex.c (po_gram_lex): Prevent accumulation of #! comments.
4615 * po-gram.y (comments): Remove unused rule.
4617 * msgmerge.c: Implement new options sort-by-file and sort-output.
4618 Patches by Peter Miller.
4620 * msgcmp.c (domain): Remove unused global variable.
4621 (domain_directive): Remove unused function.
4623 * message.h: Fix comment for MESSAGE_DOMAIN_DEFAULT definition.
4625 * message.c (message_print): Correct typo.
4626 Clarify comments about ANSI escape sequences.
4627 Patches by Peter Miller.
4629 * Makefile.in (DISTFILES): Remove $(COMSRCS).
4630 (MSGFMT_OBJ): Correct indentation. Patches by Peter Miller.
4632 Sun Nov 12 12:52:29 1995 Ulrich Drepper <drepper@myware>
4634 * xgettext.c (line, string, comment): Remove unused global variables.
4635 (read_name_from_file): Remove unused variable `cp'.
4637 * msgmerge.c (merge): Add missing return statement.
4639 * msgfmt.c (check_pair): Correctly pair comparisons.
4641 * msgcmp.c (domain_list, mlp): Remove unused global variables.
4643 Sat Nov 11 21:39:17 1995 Ulrich Drepper <drepper@myware>
4645 * message.c (message_list_print):
4646 Prevent output if we have no (real) entry.
4648 * xgettext.c (remember_a_message): Implement exclude file handling.
4650 Sat Nov 11 17:38:05 1995 Ulrich Drepper <drepper@myware>
4652 * msgunfmt.c: Fix message.
4654 * xgettext.c: Use string handling from str-list and .po file
4655 handling use xget-lex et.al.
4657 * xget-lex.h, xget-lex.c, str-list.h, str-list.c, po.h:
4660 * po-lex.h: Allow variable upper limit of errors.
4663 * po-lex.c: Allow variable upper limit of errors.
4664 Make comment's text available to the caller.
4666 * po.c, po-hash.y, po-hash.h: Initial revision.
4668 * po-gram.y: Add handling of comments.
4670 * po-gram.h: Remove all but one declaration.
4672 * msgunfmt.c, msgmerge.c: Initial revision.
4674 * msgfmt.c: Adopt for new interface to parser.
4676 * msgcmp.c: Move lot's of general code to other files.
4678 * message.h, message.c:
4679 Extended functionality for Peter Miller's pseudo-OO programming.
4681 * Makefile.in: Rewrite after adding rules for new programs.
4683 Fri Nov 10 10:01:37 1995 Ulrich Drepper <drepper@myware>
4685 * Makefile.in (PROGRAMS): Add new programs msgmerge and msgunfmt.
4687 Thu Nov 9 01:29:46 1995 Ulrich Drepper <drepper@myware>
4689 * gettextp.c (usage): Split message in two parts.
4691 * xgettext.c (usage): Split message in three parts.
4693 * xgettext.c (main):
4694 Print warning if --files-from option and file names on command
4697 * xgettext.c (long_options):
4698 Mixed up `default-domain' and `directory' values.
4700 Wed Nov 8 23:31:34 1995 Ulrich Drepper <drepper@myware>
4702 * xgettext.c: Implement -D and -f option.
4704 Tue Nov 7 13:44:44 1995 Ulrich Drepper <drepper@myware>
4706 * Makefile.in (LIBS): One @LIBS@ must be @INTLLIBS@.
4708 * Makefile.in (LIBS): Correct definition. We must be prepared to
4709 use two different libintl.a libraries.
4710 (po-gram.gen.c): Don't use $< in non-implicit rule.
4712 * Makefile.in (install-exec): Use `test -n' instead of
4713 `test XXX != ""'. Proposed by François Pinard.
4715 Sun Nov 5 23:59:03 1995 Ulrich Drepper <drepper@myware>
4717 * Makefile.in (INSTALL_PROGRAM): Do not specify mode.
4719 Sun Nov 5 21:13:57 1995 Ulrich Drepper <drepper@myware>
4721 * xgettext.c, msgfmt.c:
4722 Comments describing what has to be done should start with FIXME.
4724 Sun Nov 5 19:39:56 1995 Ulrich Drepper <drepper@myware>
4726 * Makefile.in (dist-gettext): Make synonym for dist.
4728 Sun Nov 5 18:11:15 1995 Ulrich Drepper <drepper@myware>
4730 * po-lex.h (gram_error, gram_error_with_loc):
4731 Don't define macros when !__STDC__
4732 even when using gcc.
4734 * po-lex.c (gram_error, gram_error_with_loc):
4735 Compile if !__STDC__ even if using gcc.
4737 * Makefile.in (po-gram.gen.c po-gram.gen.h):
4738 Remove file prior of generation.
4740 Sun Nov 5 11:39:21 1995 Ulrich Drepper <drepper@myware>
4742 * Makefile.in (dist): Suppress error message when ln failed.
4743 Get files from $(srcdir) explicitly.
4745 * xgettext.c (process_c_source):
4746 Make gettext_noop the forth builtin marker.
4748 Fri Nov 3 00:57:52 1995 Ulrich Drepper <drepper@myware>
4750 * msgfmt.c (main): Don't free fname when no suffix was added.
4752 Thu Nov 2 22:55:44 1995 Ulrich Drepper <drepper@myware>
4754 * Makefile.in (dist): Also remove msgcmp.
4756 Tue Oct 31 22:27:52 1995 Ulrich Drepper <drepper@myware>
4758 * msgfmt.c: New option --strict: Only if this is given the .mo
4759 file ending is forced.
4761 * msgfmt.c (message_directive):
4762 Call error_with_loc with correct parameters.
4764 * msgfmt.c (message_directive):
4765 Ignores empty message does not count as fatal error.
4767 * Makefile.in (po-gram.gen.c):
4768 Add g suffix to make multiple substitution in one
4771 Mon Oct 30 22:35:41 1995 Ulrich Drepper <drepper@myware>
4774 Don't give defines for translation of yy* symbols. This is not enough
4775 to be able to have more than one parser. See src/Makefile for the way
4778 * Makefile.in (po-gram.gen.c):
4779 Rewrite generated source while copying. This is the
4780 only portable way to get more than one parser in the same program.
4781 Patch by Peter Miller.
4783 Sun Oct 29 10:49:59 1995 Ulrich Drepper <drepper@myware>
4785 * Makefile.in (INSTALL_SCRIPT): New variable.
4786 (install-exec): Install tupdate using INSTALL_SCRIPT to prevent error
4787 when using strip flag.
4789 Sat Oct 28 14:39:33 1995 Ulrich Drepper <drepper@myware>
4791 * po-gram.h: Include <sys/types.h>.
4793 * xgettext.c (main):
4794 Honour -n option even if --omit-header is given. By Peter Miller.
4796 * msgcmp.c (check_domain_coverage):
4797 No double space in message. By Peter Miller.
4799 * msgcmp.c (grammar):
4800 Close input file after coverage check. Patch by Peter Miller.
4802 Wed Sep 27 20:27:26 1995 Ulrich Drepper <drepper@myware>
4805 Don't try to include <string.h>. This is done in "system.h".
4807 * po-lex.c (gram_error, gram_error_with_loc):
4808 Add argument definition for K&R style.
4809 (gram_error, gram_error_with_loc): We increase gram_nerrors,
4810 not nerrors. Reported by Francesco Potorti`.
4812 Tue Sep 26 10:03:29 1995 Ulrich Drepper <drepper@myware>
4814 * po-gram.h (yyparse): Add redefinition to gram_parse.
4816 * Makefile.in (YFLAGS):
4817 Don't use -p option. Stupid old yaccs do not know it.
4819 * po-lex.c: Include po-gram.h to get redefinitions of yy* symbols.
4821 * po-gram.h (yylex, yylval, yyerror):
4822 Redefine these symbols to gram_* because the
4823 yacc is now called without -p option.
4825 * Makefile.in (LIBS):
4826 Undid last change. On some systems libintl.a is not
4827 completely self-contained. alloca() is miisong e.g. on HP-UX.
4829 Mon Sep 25 22:35:55 1995 Ulrich Drepper <drepper@myware>
4831 * msgfmt.c (add_mo_suffix): Fix typo.
4833 * po-lex.h: Include <sys/types.h>.
4834 (lex_open): Argument is now `const char *'.
4836 * msgfmt.c (add_mo_suffix):
4837 Allow .gmo suffix. Great idea by Marcus Daniels.
4839 Sat Sep 23 08:20:54 1995 Ulrich Drepper <drepper@myware>
4841 * po-gram.y, po-lex.c: Include error.h.
4843 * open-po.c (open_po_file):
4844 Remove unused variables `path_dir' and `open_po_file'.
4846 Thu Sep 21 15:30:36 1995 Ulrich Drepper <drepper@myware>
4848 * Makefile.in (LIBS):
4849 using libnlsut.a twice is not necessary anymore. libintl.a is
4852 * gettextp.c (main):
4853 Use dcgettext__ and bindtextdomain__ instead of __dcgettext
4854 and __bindtextdomain.
4856 * msgfmt.c, xgettext.c (exit_status):
4857 New variables. Contains exit status for the case the program
4858 ends normally. Changed when non-fatal error messages are given.
4860 Wed Sep 20 09:16:57 1995 Ulrich Drepper <drepper@myware>
4862 * Makefile.in (xgettext): No also link po-gram.gen.o and po-lex.o.
4864 * po-lex.c: Pretty print comments.
4865 Do some CSE in computation of hex value.
4867 * xgettext.c (read_po_file): Now use the generated scanner.
4868 (domain_directive, message_directive): New functions needed for
4870 (add_id_str): Correct test for exclude files. The messages in the
4871 exclude table are in raw format, not C format.
4872 (write_out_domain): Check for zero messages and don't write anything in
4875 * po-lex.c (lex_open): Argument NAME is now const.
4876 (gram_error): Move VARARGS1 comment to right place.
4877 (control_sequence): Pretty print some comments.
4879 Mon Sep 18 21:23:55 1995 Ulrich Drepper <drepper@myware>
4881 * msgfmt.c (add_mo_suffix): Really check for not .mo suffix.
4883 * xgettext.c (write_out_domain):
4884 Write file names in #: lines to file, not stdout.
4886 * po-gram.y (grammar):
4887 Remove function. This allows sharing this file in different
4890 * domain.h (msg_domain): Member DOMAIN_NAME is now const.
4892 * Makefile.in (PROGRAMS): Add msgcmp.
4893 (HEADERS): Add message.h.
4894 (SOURCES): Add message.c and msgcmp.c.
4895 (OBJECTS): Add message.o and msgcmp.o.
4896 (msgcmp): Rule to construct program.
4898 * message.h, message.c: Initial revision
4900 * msgfmt.c (grammar): Close comment so that function is seen.
4901 (message_directive): MSGID and MSGSTR are not const.
4903 * msgcmp.c: Initial revision
4905 * po-gram.h (message_directive):
4906 MSGID and MSGSTR argument are not const.
4908 * po-gram.h (grammar): Remove prototype. Is now locally defined.
4910 * po-lex.h (gram_error, gram_error_with_loc):
4911 Protect the instructions by do while (0).
4913 * msgfmt.c (grammar):
4914 Define function here. This allows sharing the grammar file
4915 with the msgcmp program.
4917 * msgfmt.c (domain_directive): Free memory of NAME if not needed.
4918 (new_domain): Do not duplicate filename, use it as it is.
4920 * msgfmt.c (message_directive):
4921 Free parameter string memory here if necessary.
4922 Was done in po-gram.y before.
4924 * po-gram.h: Remove comment after closing #endif.
4926 * po-gram.h (grammar): Name parameter in prototype.
4928 Sun Sep 17 23:29:30 1995 Ulrich Drepper <drepper@myware>
4930 * xgettext.c (read_po_file): We don't have a search path anymore,
4931 so third argument to open_po_file is not needed anymore. Reduce
4932 argument list by this parameter, too.
4934 * po-lex.c (lex_open):
4935 We don't have a search path anymore, so third argument to
4936 ope_po_file is not needed anymore.
4938 * open-po.c (open_po_file): Remove unused `use_path' parameter.
4940 * Makefile.in (HEADERS): Add po-gram.h and po-lex.h.
4942 * po-gram.h, po-lex.h: Initial revision
4944 * Makefile.in (YACC, YFLAGS): New program used for .po file grammar.
4945 (SOURCES): Add po-gram.y and po-lex.c.
4946 (GENHEADERS, GENSOURCES): New variables for generated headers
4948 (OBJECTS): Add po-gram.gen.o and po-lex.o.
4949 Add rules for new files and add to dependency list for msgfmt.
4951 * po-lex.c, po-gram.y: Initial revision
4953 * xgettext.c: Remove input path handling.
4954 Adapt for new hashing functions return values.
4957 Rewrite .po file handling. Use Peter Millers .po file Yacc grammar.
4959 * open-po.c: Remove handling of input path.
4961 * xgettext.c (write_out_domain):
4962 Split #: lines each 80 columns. Based on a patch by
4965 * Makefile.in: hash.[ch] moved from src/ to lib/ subdirectory.
4967 Wed Aug 23 21:13:11 1995 Ulrich Drepper <drepper@myware>
4969 * tupdate.in: Don't print comment in front of obsolete entries.
4971 Tue Aug 22 22:16:31 1995 Ulrich Drepper <drepper@myware>
4973 * Makefile.in (AR, RANLIB): Remove definition. Not needed here.
4974 Reported by François Pinard.
4976 Sat Aug 19 17:38:22 1995 Ulrich Drepper <drepper@myware>
4978 * Makefile.in (install-src):
4979 Make behave like install. I.e. really install the catalogs.
4981 Sat Aug 19 00:57:07 1995 Ulrich Drepper <drepper@myware>
4983 * Makefile.in (SCRIPTS):
4984 New variable. Contains names of scipts to be generated and
4985 installed. For now it is tupdate.
4986 (PROGRAMS): Remove tupdate.
4987 (all): Also depend on $(SCRIPTS).
4989 Fri Aug 18 13:02:04 1995 Ulrich Drepper <drepper@myware>
4991 * Makefile.in (PROGRAMS): Add tupdate.
4992 (tupdate): New rule. Rebuild tupdate if tupdate.in or
4993 ../config.status changed.
4995 * tupdate.in: Correct case where message is new: no really print msgid.
4996 Better help message by François Pinard.
4997 Recognize #\t as comment.
4998 Print comment for now obsolete entries.
4999 Handle real comments (translator comments and tupdate generate obsolete
5002 * gettextp.c (usage): Better help message.
5003 (usage): Add -s description to help screen.
5005 Mon Aug 14 23:50:48 1995 Ulrich Drepper <drepper@myware>
5007 * Makefile.in (install-src): New no-op goal.
5009 Thu Aug 10 11:26:45 1995 Ulrich Drepper <drepper@myware>
5011 * tupdate.in: Don't print two " in front of commented out msgstrs.
5013 Wed Aug 9 09:10:30 1995 Ulrich Drepper <drepper@myware>
5016 Better implementation. Rehashing is now much faster because the
5017 hashing value stored in the `used' field is reused.
5018 (insert_entry): Split into two function. `insert_entry_2' now does the
5019 the work while in `insert_entry' the checks are done.
5020 (lookup_2): New function. Expects the search key to be NUL
5021 terminated. This is the case when the key is already in the
5022 hash table when rehashing.
5024 * msgfmt.c (write_table):
5025 Third argument to `iterate_table' is now a `const' pointer.
5027 * hash.h (iterate_table): Third arguemtn is `const' pointer.
5029 * xgettext.c (struct id_str): Make fields `const' pointers.
5031 Fri Aug 4 22:45:39 1995 Ulrich Drepper <drepper@myware>
5033 * msgfmt.c (main): Fix typo: me -> we.
5035 * msgfmt.c (output_file_open): Remove this unused variable.
5036 Reported by Jim Meyering.
5038 * Makefile.in (dist): Remove `copying instead' message.
5040 * gettextp.c: Start to implement non-Uniforum behaviour.
5041 Implemented new mode where gettext behaves like `echo',
5042 while translating the messages available in the specified test.
5043 New option: -d, -e, -E, also available in normal mode:
5045 -e: enable expansion of some escape sequences.
5046 -d: specify text domain to use.
5047 New option: -s: enable `echo' mode.
5049 Thu Aug 3 18:25:37 1995 Ulrich Drepper <drepper@myware>
5052 Fix typo: anormalies -> anomalies.
5053 Reported by Karl Anders O/ygard.
5055 Wed Aug 2 18:51:08 1995 Ulrich Drepper <drepper@myware>
5057 * Makefile.in (ID, TAGS): Do not use $^.
5059 * xgettext.c (write-header): Add `Content-Type' field.
5061 Tue Aug 1 20:07:58 1995 Ulrich Drepper <drepper@myware>
5063 * Makefile.in (distclean): Remove ID file.
5065 * Makefile.in (TAGS, ID): Use $^ as command argument.
5066 (TAGS): Give etags -o option t write to current directory,
5068 (ID): Use $(srcdir) instead os $(top_srcdir)/src.
5070 Mon Jul 31 20:57:48 1995 Ulrich Drepper <drepper@myware>
5072 * msgfmt.c (process_po_file):
5073 Quote msgstr in message "empty `msgstr' entry ignored".
5074 Report by Karl Anders O/ygard.
5076 Sun Jul 30 12:14:29 1995 Ulrich Drepper <drepper@myware>
5078 * Makefile.in (LIBS): Always use ../intl/libintl.a.
5079 (all): Always depend on ../intl/libintl.a.
5081 Tue Jul 25 00:15:01 1995 Ulrich Drepper <drepper@myware>
5083 * msgfmt.c (process_po_file): Correct problem with empty lines.
5085 Sun Jul 23 22:47:56 1995 Ulrich Drepper <drepper@myware>
5087 * msgfmt.c (process_po_file):
5088 Give a message when a sole msgid is found at the end of file.
5090 Wed Jul 19 01:52:13 1995 Ulrich Drepper <drepper@myware>
5092 * Makefile.in (PROGRAMS): Always compile all three programs.
5094 * gettextp.c: Include libgettext.h explicitly, in addition to
5095 libintl.h. On system having libintl.h provided by the C library
5096 this assures to have the prototypes for the function defined in
5097 GNU gettext library.
5098 Use __bindtextdomain and __dgettext instead of bindtextdomain and
5100 Swap arguments in bindtextdomain call.
5102 Tue Jul 18 23:57:16 1995 Ulrich Drepper <drepper@myware>
5104 * xgettext.c (add_id_str):
5105 `free(msgstr)' can fail on system not allowing free(0).
5106 Reported by Francesco Potorti`.
5108 Tue Jul 18 19:43:41 1995 Ulrich Drepper <drepper@myware>
5110 * xgettext.c (getpwuid):
5111 Define prototype if !defined _POSIX_VERSION.
5113 * hash.c: Don't include malloc.h and string.h because it will be
5116 * msgfmt.c: Don't include malloc.h because it will be done in
5119 Sat Jul 15 00:45:31 1995 Ulrich Drepper <drepper@myware>
5121 * xgettext.c (main):
5122 Disable line_comment option when omit_header is selected.
5123 (write_out_domain): Don't write empty line if !line_comment.
5125 * Makefile.in (DISTFILES):
5126 Due shorted file names now distribute tupdate.in.
5127 (install, clean): Handle tupdate, not tupdate.perl.
5129 * tupdate.in: Rename tupdate.perl.in to tupdate.in to fit in 14
5130 character file systems.
5132 Thu Jul 13 22:21:22 1995 Ulrich Drepper <drepper@myware>
5134 * Makefile.in (install): Test whether Perl was found before
5137 * tupdate.perl.in: Make die message more GNU-like.
5139 * gettextp.c (usage):
5140 Protect prototypes with __P and use K&R form for parameters.
5142 * xgettext.c (main):
5143 Don't use 100u; poor K&R compilers need (unsigned) 100.
5145 * open-po.c (xstrdup): Protect prototype with __P.
5147 * msgfmt.c (usage, new_domain, process_po_file, compare_id,
5148 write_table, check_pair): Protect prototypes with __P.
5150 * hash.c (xmalloc): Protect prototype with __P.
5152 Thu Jul 13 01:39:47 1995 Ulrich Drepper <drepper@myware>
5154 * Makefile.in (check): New no-op goal.
5156 Wed Jul 12 10:40:54 1995 Ulrich Drepper <drepper@myware>
5158 * tupdate.perl.in: Implement --help and --version options
5160 * xgettext.c: Add --string-limit option to specify limit on string
5162 Only warned when verbose mode is selected.
5163 Add --verbose option.
5164 Help message now correctly says --version == -V.
5166 Tue Jul 11 22:57:54 1995 Ulrich Drepper <drepper@myware>
5168 * xgettext.c (usage): Split help string because it breaks 1024
5171 * Makefile.in (install-exec): Install tupdate.
5173 * xgettext.c (stdlib.h): Protect inclusion by STDC_HEADERS.
5174 (assert): No assertions anymore.
5175 (HAVE_STRTOUL): strtoul is now substituted when not available.
5176 Add warning about too long strings (some systems have limits
5177 for strings in their compiler and/or tools). E.g. Sinix's
5180 * msgfmt.c (printf.h): Include always
5181 (assert): No assertions anymore (all bugs are gone :-).
5182 (HAVE_STRTOUL): Not needed anymore because we substitute
5183 strtoul if not present.
5185 * Makefile.in (DISTFILES,distclean): tupdate.perl is now found here.
5187 Tue Jul 11 01:31:03 1995 Ulrich Drepper <drepper@myware>
5189 * Makefile.in: msgfmt.o depends on ../lib/printf.h.
5191 * msgfmt.c: protect inclusion of malloc.h and stdlib.h.
5192 Don't use GCC's `case b ... e:' feature (NeXT's gcc is
5193 gcc-2.xx but does not understand this. Grrr!).
5195 * open-po.c: Protect inclusion of string.h and stdlib.h.
5197 * hash.c: Pretty print #define.
5198 (init_hash, insert_entry): Cast result of calloc.
5199 (insert_entry): Remove non-ANSI `(type *) var = ...' by
5200 `*(type **) &var = ...'.
5201 (compute_hashval): Cast constant to unsigned long (default: int).
5202 Has effects on 64-bit machines.
5204 Tue Jul 4 00:39:58 1995 Ulrich Drepper <drepper@myware>
5206 * xgettext.c: Don't write "Version:" field for msgid "".
5208 Mon Jul 3 23:02:04 1995 Ulrich Drepper <drepper@myware>
5210 * xgettext.c, msgfmt.c: Better comment.
5212 * Makefile.in: Pretty print with François.
5213 Fix typo in dependencies.
5214 Even more dependency corrections.
5215 Correct dependencies of open-po.c.
5216 Remove unneeded $(srcdir) from Makefile.in dependency.
5217 (LIBS): Correct for building in different directory.
5218 (INCLUDES): Correct for building in different directory.
5219 (DEFS): Rename DEF_MSG_DOM_DIR to LOCALEDIR.
5220 (INCLUDE): Don't use -I paths when not needed.
5222 * hash.c: Include malloc.c and protect string.h inclusion.
5224 * gettextp.c: Protect include of stdlib.h declare prototype for
5225 getenv if not __STDC__.
5226 Include system.h for EXIT_FAILURE.
5227 (main, usage): Replace DEF_MSG_DOM_DIR by LOCALEDIR.
5229 * open-po.c: Include system.h for EXIT_FAILURE.
5231 * msgfmt.c: Fix typo in !__STDC__ path.
5232 (process_po_file): Change for new .po file format.
5234 * xgettext.c (main): Rename DEF_MSG_DOM_DIR to LOCALEDIR.
5235 Update to new .po file format because Solaris' msgfmt can only
5236 handle ANSI C style multi-line strings.
5238 Sun Jul 2 21:31:00 1995 Ulrich Drepper <drepper@myware>
5240 * gettextp.c: gettextp.c (usage): Fix typo in help message.
5241 Reported by François Pinard.
5243 Sun Jul 2 02:12:41 1995 Ulrich Drepper <drepper@myware>
5245 * First official release. This directory contains the
5246 source code for the programs specified in the Uniforum proposal
5247 for internationalization.