12003-01-31 Bruno Haible <bruno@clisp.org> 2 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. 9 102003-01-24 Bruno Haible <bruno@clisp.org> 11 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. 17 182003-01-23 Bruno Haible <bruno@clisp.org> 19 20 * po-gram.h: Don't include <sys/types.h>. 21 222003-01-23 Bruno Haible <bruno@clisp.org> 23 24 * msgmerge.c (use_fuzzy_matching): New variable. 25 (long_options): Add option -N/--no-fuzzy-matching. 26 (main, match_domain): Implement it. 27 (usage): Document it. 28 292003-01-23 Bruno Haible <bruno@clisp.org> 30 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>. 35 362003-01-23 Bruno Haible <bruno@clisp.org> 37 38 * format-c.c (get_c99_format_directives): Free the allocated 39 descriptor after use. 40 412003-01-18 Bruno Haible <bruno@clisp.org> 42 43 * FILES: Update. 44 452003-01-12 Bruno Haible <bruno@clisp.org> 46 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. 53 542003-01-12 Bruno Haible <bruno@clisp.org> 55 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. 69 702003-01-12 Bruno Haible <bruno@clisp.org> 71 72 * Makefile.am: Make use of += for variables. 73 742003-01-12 Bruno Haible <bruno@clisp.org> 75 76 * write-po.c (wrap): Add an assertion, to protect against Solaris 2.9 77 iconv() bug. 78 792003-01-10 Bruno Haible <bruno@clisp.org> 80 81 * po-charset.c (po_lex_charset_set): Work around Solaris 2.9 iconv() 82 bug. 83 * write-po.c (wrap): Likewise. 84 852003-01-08 Bruno Haible <bruno@clisp.org> 86 87 * project-id: Make it work with configure files that use 88 AM_INIT_AUTOMAKE from automake-1.7.2. 89 902002-12-04 Bruno Haible <bruno@clisp.org> 91 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 95 after a colon. 96 (po_hash): Move function. Initialize last_was_colon. 97 Reported by Yanko Kaneti <yaneti@declera.com> and 98 Jordi Mallach <jordi@sindominio.net>. 99 1002002-11-22 Bruno Haible <bruno@clisp.org> 101 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. 105 1062002-11-14 Bruno Haible <bruno@clisp.org> 107 108 * x-php.c (phase3_getc): Initialize variable last_was_qmark. 109 1102002-11-13 Bruno Haible <bruno@clisp.org> 111 112 Assume ANSI C. 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): 116 Likewise. 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): 120 Likewise. 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): 198 Likewise. 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): 223 Likewise. 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): 248 Likewise. 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): 277 Likewise. 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): 310 Likewise. 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): 321 Likewise. 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): 335 Likewise. 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): 342 Likewise. 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): 353 Likewise. 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): 360 Likewise. 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): 367 Likewise. 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): 384 Likewise. 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 389 declarations. 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): 403 Likewise. 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): 412 Likewise. 413 4142002-11-05 Bruno Haible <bruno@clisp.org> 415 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 428 declarations. 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. 449 (fields): Update. 450 * msgmerge.c (merge): If the POT file was in UTF-8, convert the 451 definitions to UTF-8. 452 * msgcmp.c (compare): Likewise. 453 4542002-11-01 Bruno Haible <bruno@clisp.org> 455 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. 463 4642002-10-14 Bruno Haible <bruno@clisp.org> 465 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>. 469 4702002-10-03 Bruno Haible <bruno@clisp.org> 471 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 475 functions. 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 = 479 true. 480 4812002-09-09 Bruno Haible <bruno@clisp.org> 482 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. 491 4922002-08-18 Bruno Haible <bruno@clisp.org> 493 494 * message.h (enum format_type): New enum value 'format_php'. 495 (NFORMATS): Increment. 496 * message.c (format_language, format_language_pretty): Add entry 497 for php. 498 * format.h (formatstring_php): New declaration. 499 * format-php.c: New file. 500 * format.c (formatstring_parsers): Add entry for php. 501 * x-php.h: New file. 502 * x-php.c: New file. 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. 510 5112002-08-17 Bruno Haible <bruno@clisp.org> 512 513 * urlget.c (fetch): Also try invoking the 'curl' program. 514 5152002-08-06 Bruno Haible <bruno@clisp.org> 516 517 * gettext-0.11.5 released. 518 5192002-08-02 Bruno Haible <bruno@clisp.org> 520 521 * read-mo.c (get_sysdep_string): Make the error message easier to 522 translate. 523 5242002-07-25 Bruno Haible <bruno@clisp.org> 525 526 * gettext-0.11.4 released. 527 5282002-07-21 Bruno Haible <bruno@clisp.org> 529 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. 546 (freea): New macro. 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 559 functions. 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. 563 5642002-07-20 Andreas Schwab <schwab@suse.de> 565 566 * plural-eval.c: Include <signal.h> if !INTDIV0_RAISES_SIGFPE. 567 5682002-07-17 Bruno Haible <bruno@clisp.org> 569 570 * gettext-0.11.3 released. 571 5722002-07-17 Bruno Haible <bruno@clisp.org> 573 574 * dir-list.c: Include stdlib.h. 575 5762002-07-16 Bruno Haible <bruno@clisp.org> 577 578 * read-java.c (msgdomain_read_java): Pass $GETTEXTJEXEDIR to 579 execute_java_class. 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. 590 5912002-07-16 Bruno Haible <bruno@clisp.org> 592 593 * project-id: Make it work when the configure file was generated by 594 autoconf-2.52 with AC_INIT and AM_INIT_AUTOMAKE(...). 595 5962002-06-14 Bruno Haible <bruno@clisp.org> 597 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>. 602 6032002-06-08 Bruno Haible <bruno@clisp.org> 604 605 * user-email.in: Look at /etc/sysconfig/mail, found on SuSE Linux. 606 Suggested by Karl Eichwalder <ke@suse.de>. 607 6082002-06-07 Bruno Haible <bruno@clisp.org> 609 610 * user-email.in: Look at /etc/mailname, found on Debian systems. 611 Suggested by Mark W. Eichin <eichin@thok.org>. 612 6132002-06-07 Bruno Haible <bruno@clisp.org> 614 615 * msgfmt.c (install_sigfpe_handler): Assume the signal is always 616 SIGFPE, regardless of the platform. 617 (uninstall_sigfpe_handler): Likewise. 618 6192002-05-29 Bruno Haible <bruno@clisp.org> 620 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>. 626 6272002-05-22 Bruno Haible <bruno@clisp.org> 628 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 636 iconv_message_list. 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. 643 6442002-05-18 Bruno Haible <bruno@clisp.org> 645 646 * Makefile.am (RM): New variable. 647 (install-exec-am): Depend on install-exec-clean. 648 (install-exec-clean): New rule. 649 6502002-05-14 Bruno Haible <bruno@clisp.org> 651 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>. 655 6562002-05-12 Bruno Haible <bruno@clisp.org> 657 658 * po-charset.c (po_charset_canonicalize): Add ISO-8859-14, KOI8-T, 659 GEORGIAN-PS to the list of allowed encodings. 660 6612002-04-30 Bruno Haible <bruno@clisp.org> 662 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>. 666 6672002-04-28 Bruno Haible <bruno@clisp.org> 668 669 * project-id: Recognize package name and version when given by a 670 two-argument AC_INIT invocation (autoconf 2.52 and newer). 671 6722002-04-24 Bruno Haible <bruno@clisp.org> 673 674 * gettext-0.11.2 released. 675 6762002-04-23 Bruno Haible <bruno@clisp.org> 677 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. 688 * msgen.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. 696 6972002-04-19 Bruno Haible <bruno@clisp.org> 698 699 * msginit.c (catalogname_for_locale): Add wa_BE. Change Javanese from 700 jw to jv. 701 7022002-04-15 Bruno Haible <bruno@clisp.org> 703 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>. 707 7082002-04-04 Bruno Haible <bruno@clisp.org> 709 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>. 714 7152002-04-04 Bruno Haible <bruno@clisp.org> 716 717 * msginit.c (find_pot): Add dummy return, to avoid gcc warning. 718 7192002-03-12 Bruno Haible <bruno@clisp.org> 720 721 * gettext-0.11.1 released. 722 7232002-03-10 Bruno Haible <bruno@clisp.org> 724 725 * x-python.c (phase7_getuc): Change type of buf to 'unsigned char[]'. 726 7272002-03-07 Bruno Haible <bruno@clisp.org> 728 729 * Makefile.am (msginit_LDADD): Use @INTL_LIBTOOL_SUFFIX_PREFIX@o 730 instead of $(OBJEXT). 731 7322002-03-05 Bruno Haible <bruno@clisp.org> 733 734 * hostname.c (s6_addr16): Define if not defined by the system. 735 (ipv6_ntop): Use s6_addr16 instead of in6_u.u6_addr16. 736 7372002-03-05 Bruno Haible <bruno@clisp.org> 738 739 * xgettext.c (usage): Mention languages Python, awk, Tcl, RST, Glade. 740 7412002-03-03 Bruno Haible <bruno@clisp.org> 742 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. 750 * x-tcl.h: New file. 751 * x-tcl.c: New file. 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 763 msgdomain_write_tcl. 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 773 msgdomain_read_tcl. 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. 784 7852002-03-02 Bruno Haible <bruno@clisp.org> 786 787 * msgfmt.c (check_pair): Don't count "&&" as an accelerator designator, 788 for consistency with Qt and KDE. 789 7902002-02-24 Bruno Haible <bruno@clisp.org> 791 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. 796 7972002-02-21 Bruno Haible <bruno@clisp.org> 798 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. 807 8082002-02-09 Bruno Haible <bruno@clisp.org> 809 810 * message.h (possible_format_p): Change return type to bool. 811 * message.c (possible_format_p): Likewise. 812 8132002-01-14 Bruno Haible <bruno@clisp.org> 814 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@. 824 8252002-01-27 Bruno Haible <bruno@clisp.org> 826 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. 834 * x-awk.h: New file. 835 * x-awk.c: New file. 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. 843 8442002-02-02 Bruno Haible <bruno@clisp.org> 845 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). 857 8582002-02-03 Bruno Haible <bruno@clisp.org> 859 860 * msgfmt.c (check_header_entry): Terminate the error strings with 861 newlines. 862 8632002-02-03 Bruno Haible <bruno@clisp.org> 864 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. 873 8742002-02-03 Bruno Haible <bruno@clisp.org> 875 876 * xgettext.c (finalize_header): New function. 877 (main): Call it. 878 8792002-02-03 Bruno Haible <bruno@clisp.org> 880 881 * msginit.c (fill_header): Also replace "PACKAGE" in the comment. 882 8832002-02-02 Bruno Haible <bruno@clisp.org> 884 885 * Makefile.am (INCLUDES): Add -I../lib. Needed for builds with 886 builddir != srcdir on platforms that don't have fnmatch and stdbool.h. 887 8882002-01-31 Bruno Haible <bruno@clisp.org> 889 890 * gettext-0.11 released. 891 8922002-01-31 Bruno Haible <bruno@clisp.org> 893 894 * plural-eval.h: Include eval-plural.h instead of plural-eval.c. 895 8962002-01-30 Bruno Haible <bruno@clisp.org> 897 898 Make the gettext and ngettext programs independent of libgettextlib. 899 * Makefile.am (gettext_LDADD, ngettext_LDADD): New variables. 900 9012002-01-27 Bruno Haible <bruno@clisp.org> 902 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. 907 9082002-01-27 Bruno Haible <bruno@clisp.org> 909 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 912 string argument. 913 9142002-01-27 Bruno Haible <bruno@clisp.org> 915 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. 921 9222002-01-27 Bruno Haible <bruno@clisp.org> 923 924 * x-c.c (ALERT_CHAR): New macro. 925 (phase7_getc): Accept \a and \v as well. 926 927 * x-c.c (free_token): New inline function. 928 (phase6_get): Use it. 929 9302002-01-27 Bruno Haible <bruno@clisp.org> 931 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. 936 9372002-01-24 Bruno Haible <bruno@clisp.org> 938 939 * Makefile.am (LDADD): Use @LTLIBINTL@ instead of @INTLLIBS@. 940 (libgettextsrc_la_LDFLAGS): Likewise. Use @LTLIBICONV@ instead of 941 @LIBICONV@. 942 9432002-01-21 Bruno Haible <bruno@clisp.org> 944 945 * msggrep.c (main): On SunOS4, don't pass option "-q" to grep. 946 9472002-01-19 Bruno Haible <bruno@clisp.org> 948 949 * msgfmt.c (check_header_entry): Emit error messages including the 950 file name. 951 9522002-01-19 Bruno Haible <bruno@clisp.org> 953 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'. 957 9582002-01-13 Bruno Haible <bruno@clisp.org> 959 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. 962 9632002-01-13 Bruno Haible <bruno@clisp.org> 964 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. 967 9682002-01-12 Bruno Haible <bruno@clisp.org> 969 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. 987 9882002-01-11 Bruno Haible <bruno@clisp.org> 989 990 * write-po.c: Include po-charset.h. 991 9922002-01-11 Bruno Haible <bruno@clisp.org> 993 994 * msgfmt.c (install_sigfpe_handler, uninstall_sigfpe_handler): On AIX, 995 treat SIGTRAP like SIGFPE. 996 9972002-01-09 Bruno Haible <bruno@clisp.org> 998 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 1002 of HAVE_SIGINFO. 1003 (install_sigfpe_handler, uninstall_sigfpe_handler): On Irix, treat 1004 SIGTRAP like SIGFPE. 1005 10062002-01-09 Bruno Haible <bruno@clisp.org> 1007 1008 * x-java.l (strip_ending_spaces): Fix logic. 1009 10102002-01-09 Tommy Johansson <tommy.johansson@kanalen.org> 1011 1012 * x-java.l: Avoid endless loop when encountering unterminated string. 1013 10142002-01-08 Bruno Haible <bruno@clisp.org> 1015 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. 1033 10342002-01-06 Bruno Haible <bruno@clisp.org> 1035 1036 * x-librep.c (read_object): Fix handling of #[ and #(. 1037 10382002-01-06 Bruno Haible <bruno@clisp.org> 1039 1040 * x-lisp.c (read_object): Treat ',.' like ',@'. 1041 10422002-01-05 Bruno Haible <bruno@clisp.org> 1043 1044 Make "msgmerge --update" work better on CJK files even if iconv() is 1045 not available. 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 1050 po_lex_charset_set. 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. 1061 10622002-01-05 Bruno Haible <bruno@clisp.org> 1063 1064 * gettext.c: TESTS version is now separate. 1065 10662002-01-05 Bruno Haible <bruno@clisp.org> 1067 1068 * x-java.l (extract_java): Avoid "uninitialized variable" warnings. 1069 Free a temporary string. 1070 10712002-01-05 Bruno Haible <bruno@clisp.org> 1072 1073 * Makefile.am (libgettextsrc_la_LDFLAGS): Add -lc. Needed on AIX. 1074 10752002-01-05 Bruno Haible <bruno@clisp.org> 1076 1077 * x-c.c (buflen): Make static. 1078 * x-librep.c (buflen): Likewise. 1079 * x-lisp.c (buflen): Likewise. 1080 10812001-12-23 Bruno Haible <bruno@clisp.org> 1082 1083 * msgexec.c (process_string): Use xsetenv instead of setenv. 1084 * msginit.c (canonical_locale_charset): Likewise. 1085 (get_title): Likewise. 1086 10872001-12-22 Bruno Haible <bruno@clisp.org> 1088 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 1105 str-list.h. 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 1111 <fcntl.h>. 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 1131 <sys/types.h>. 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 1135 system.h. 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. 1149 11502001-12-21 Bruno Haible <bruno@clisp.org> 1151 1152 * format-lisp.c: Include minmax.h. 1153 11542001-12-21 Bruno Haible <bruno@clisp.org> 1155 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. 1195 * x-c.c: Likewise. 1196 * x-librep.c: Likewise. 1197 * x-lisp.c: Likewise. 1198 * x-po.c: Likewise. 1199 * x-rst.c: Likewise. 1200 * x-ycp.c: Likewise. 1201 * xgettext.c: Likewise. 1202 12032001-12-21 Bruno Haible <bruno@clisp.org> 1204 1205 * message.h (message_merge): Remove declaration. 1206 * message.c (msgfmt_check_pair_fails, message_merge): Move to 1207 msgmerge.c. 1208 * msgmerge.c (msgfmt_check_pair_fails, message_merge): Moved to here 1209 from message.c. 1210 12112001-12-20 Bruno Haible <bruno@clisp.org> 1212 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 1220 to int. 1221 * x-java.l (TOKEN_TYPE): Remove trailing comma in enum. 1222 (PARSER_STATE): Likewise. 1223 * msgfilter.c: Include <sys/select.h> on AIX. 1224 12252001-12-12 Bruno Haible <bruno@clisp.org> 1226 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. 1235 12362001-12-17 Bruno Haible <bruno@clisp.org> 1237 1238 * msggrep.c: Include <fnmatch.h>. 1239 (filename_list_match): New function. 1240 (is_message_selected): Use it instead of string_list_member. 1241 12422001-12-16 Bruno Haible <bruno@clisp.org> 1243 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. 1260 12612001-12-15 Bruno Haible <bruno@clisp.org> 1262 1263 * msgfmt.c (check_plural): Use ngettext for two messages. 1264 Reported by Primoz Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>. 1265 12662001-12-15 Bruno Haible <bruno@clisp.org> 1267 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. 1271 12722001-12-15 Bruno Haible <bruno@clisp.org> 1273 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' 1277 arguments. 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. 1287 12882001-12-11 Bruno Haible <bruno@clisp.org> 1289 1290 * x-java.l (strip_ending_spaces): Fix isspace call. 1291 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. 1296 12972001-12-09 Bruno Haible <bruno@clisp.org> 1298 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. 1307 13082001-12-09 Bruno Haible <bruno@clisp.org> 1309 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. 1316 13172001-12-09 Bruno Haible <bruno@clisp.org> 1318 1319 * x-c.c: Reorder. 1320 13212001-12-08 Bruno Haible <bruno@clisp.org> 1322 1323 * msgattrib.c (process_message_list): Never make the header entry 1324 obsolete. 1325 13262001-12-08 Bruno Haible <bruno@clisp.org> 1327 1328 * msgfilter.c (main): Fix getopt_long string: -i takes an argument. 1329 13302001-12-08 Bruno Haible <bruno@clisp.org> 1331 1332 * xgettext.c (remember_a_message): Don't print the line number if it 1333 is = (size_t)(-1). 1334 13352001-12-08 Bruno Haible <bruno@clisp.org> 1336 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. 1342 13432001-12-07 Bruno Haible <bruno@clisp.org> 1344 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. 1349 13502001-12-06 Bruno Haible <bruno@clisp.org> 1351 1352 * format.h (struct formatstring_parser): Add 'noisy' argument to 1353 'check' field. 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. 1365 13662001-12-10 Bruno Haible <bruno@clisp.org> 1367 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. 1370 13712001-12-01 Bruno Haible <bruno@clisp.org> 1372 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. 1376 13772001-12-03 Tommy Johansson <tommy.johansson@kanalen.org> 1378 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 1382 STATE_NONE. 1383 13842001-11-30 Bruno Haible <bruno@clisp.org> 1385 1386 * message.c (message_merge): Determine whether postprocessing is 1387 needed. 1388 * msgmerge.c (match_domain): Postprocess some problematic cases. 1389 * Makefile.am (libgettextsrc_la_SOURCES): Add plural.c. 1390 (msgfmt_SOURCES): Remove plural.c. 1391 13922001-11-29 Bruno Haible <bruno@clisp.org> 1393 1394 * plural-eval.c: Include config.h and plural-exp.h. 1395 13962001-11-27 Bruno Haible <bruno@clisp.org> 1397 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 1402 fuzzy. 1403 (format_directive_message): Update has_nonfuzzy_header_entry. 1404 14052001-11-25 Bruno Haible <bruno@clisp.org> 1406 1407 * x-c.c (comment_start, comment_add, comment_line_end): New inline 1408 functions. 1409 (phase4_getc): Use them. 1410 14112001-11-25 Bruno Haible <bruno@clisp.org> 1412 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 1418 if no_translator. 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. 1424 14252001-11-25 Bruno Haible <bruno@clisp.org> 1426 1427 * msginit.c (canonical_locale_charset): Return the charset of 'locale' 1428 if available. 1429 (get_title): Return a correct value even if 'locale' is a nonexistent 1430 locale. 1431 14322001-11-24 Bruno Haible <bruno@clisp.org> 1433 1434 * urlget.c (fetch): Call execute_java_class with quiet=true. If Java 1435 program failed, try wget or lynx. 1436 1437 * read-java.c (msgdomain_read_java): Update for changed 1438 execute_java_class parameter list. 1439 14402001-11-24 Bruno Haible <bruno@clisp.org> 1441 1442 * msgexec.c (process_message): Really process each plural form once. 1443 14442001-11-17 Bruno Haible <haible@clisp.cons.org> 1445 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. 1455 14562001-11-17 Bruno Haible <haible@clisp.cons.org> 1457 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(). 1461 14622001-11-17 Bruno Haible <haible@clisp.cons.org> 1463 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. 1468 14692001-11-17 Bruno Haible <haible@clisp.cons.org> 1470 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 1492 hash table. 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 1498 speed up insertion. 1499 (exclude_directive_message): Allocate a message list with hash table, 1500 to speed up exclusion test. 1501 15022001-11-17 Bruno Haible <haible@clisp.cons.org> 1503 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. 1511 15122001-11-17 Bruno Haible <haible@clisp.cons.org> 1513 1514 * msgfmt.c (format_directive_message): Finish 2001-08-30 patch. 1515 15162001-11-17 Bruno Haible <haible@clisp.cons.org> 1517 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 '&'. 1523 15242001-11-17 Bruno Haible <haible@clisp.cons.org> 1525 1526 * msginit.c (main): Print a blank line. 1527 (get_title): Always use the English title first. 1528 (fill_header): Update accordingly. 1529 15302001-11-17 Bruno Haible <haible@clisp.cons.org> 1531 1532 * message.h (NFORMATS): Fix misapplied patch. 1533 15342001-11-11 Bruno Haible <haible@clisp.cons.org> 1535 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. 1541 15422001-11-11 Bruno Haible <haible@clisp.cons.org> 1543 1544 * msgl-cat.c (catenate_msgdomain_list): Fix a typo in 2001-11-01 patch. 1545 Reported by Karl Eichwalder. 1546 15472001-11-11 Bruno Haible <haible@clisp.cons.org> 1548 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. 1554 15552001-11-08 Bruno Haible <haible@clisp.cons.org> 1556 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. 1563 15642001-11-05 Bruno Haible <haible@clisp.cons.org> 1565 1566 * format-lisp.c (parse_upto): Remove 'base' argument. It is always 0. 1567 (format_parse): Update. 1568 1569 * msgl-equal.c: Include string.h. 1570 * str-list.c: Likewise. 1571 15722001-11-03 Bruno Haible <haible@clisp.cons.org> 1573 1574 * xgettext.c (line_comment): Remove variable, so default value is 1575 always 1. 1576 15772001-11-03 Bruno Haible <haible@clisp.cons.org> 1578 1579 * x-c.c (extract_parenthesized): New function, extracted from 1580 extract_c. 1581 (extract_c): Call extract_parenthesized. 1582 15832001-11-03 Bruno Haible <haible@clisp.cons.org> 1584 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. 1589 15902001-11-01 Bruno Haible <haible@clisp.cons.org> 1591 1592 * msgfmt.c (check_plural_eval): Fix #if mistake. 1593 15942001-11-01 Bruno Haible <haible@clisp.cons.org> 1595 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. 1603 16042001-11-01 Bruno Haible <haible@clisp.cons.org> 1605 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 1612 comments. 1613 * Makefile.am (libgettextsrc_la_SOURCES): Add msgl-equal.c. 1614 (msgmerge_SOURCES): Remove msgl-equal.c. 1615 16162001-10-31 Bruno Haible <haible@clisp.cons.org> 1617 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. 1627 16282001-10-28 Bruno Haible <haible@clisp.cons.org> 1629 1630 * hostname.c: Include "progname.h". 1631 (program_name): Remove variable. 1632 (main): Call set_program_name instead of setting program_name. 1633 16342001-10-28 Bruno Haible <haible@clisp.cons.org> 1635 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. 1651 16522001-10-21 Bruno Haible <haible@clisp.cons.org> 1653 1654 * Makefile.am (LDADD): Replace libnlsut.a with libgettextlib.la. 1655 (*_LDADD): Likewise. 1656 16572001-10-26 Bruno Haible <haible@clisp.cons.org> 1658 1659 * x-c.h (EXTENSIONS_C): Add ".hxx". 1660 16612001-10-21 Bruno Haible <haible@clisp.cons.org> 1662 1663 * msgmerge.c (match_domain): Change type of 'processed' argument to 1664 'unsigned int *'. 1665 (merge): Change type of 'processed' to 'unsigned int'. 1666 16672001-10-21 Bruno Haible <haible@clisp.cons.org> 1668 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. 1675 16762001-10-21 Bruno Haible <haible@clisp.cons.org> 1677 1678 * msgexec.c [BeOS]: Fix #ifdef conditional. 1679 16802001-10-21 Bruno Haible <haible@clisp.cons.org> 1681 1682 * read-java.c (execute_and_read_po_output): Return false, not 0. 1683 16842001-10-11 Bruno Haible <haible@clisp.cons.org> 1685 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. 1697 16982001-10-09 Bruno Haible <haible@clisp.cons.org> 1699 1700 * write-po.c (memcpy_small): New function. 1701 (wrap): Use it instead of memcpy. Optimize handling of escape 1702 characters. 1703 17042001-10-09 Bruno Haible <haible@clisp.cons.org> 1705 1706 * write-po.c (putc): Define as putc_unlocked if available. 1707 17082001-10-09 Bruno Haible <haible@clisp.cons.org> 1709 1710 * po-lex.c (getc): Define as getc_unlocked if available. 1711 17122001-10-21 Bruno Haible <haible@clisp.cons.org> 1713 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. 1723 17242001-10-21 Bruno Haible <haible@clisp.cons.org> 1725 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. 1734 17352001-10-08 Bruno Haible <haible@clisp.cons.org> 1736 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. 1744 17452001-10-08 Bruno Haible <haible@clisp.cons.org> 1746 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. 1754 17552001-09-29 Bruno Haible <haible@clisp.cons.org> 1756 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. 1761 17622001-09-29 Bruno Haible <haible@clisp.cons.org> 1763 1764 * hostname.c: New file. 1765 * Makefile.am (noinst_PROGRAMS, hostname_SOURCES): New variables. 1766 (install-exec-local, installdirs-local, uninstall-local): New rules. 1767 17682001-10-10 Bruno Haible <haible@clisp.cons.org> 1769 1770 * msgexec.c (process_string): Update for changed create_pipe_bidi(), 1771 wait_subprocess(). 1772 * msggrep.c (is_string_selected): Update for changed create_pipe_out(), 1773 wait_subprocess(). 1774 * read-java.c (execute_and_read_po_output): Update for changed 1775 create_pipe_in(), wait_subprocess(). 1776 17772001-10-08 Bruno Haible <haible@clisp.cons.org> 1778 1779 * xgettext.c (remember_a_message): When the comment tag is seen, 1780 remember all remaining comment lines, not just one. 1781 17822001-09-25 Bruno Haible <haible@clisp.cons.org> 1783 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. 1789 17902001-09-22 Bruno Haible <haible@clisp.cons.org> 1791 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. 1804 18052001-09-23 Bruno Haible <haible@clisp.cons.org> 1806 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. 1814 18152001-10-04 Tommy Johansson <tommy.johansson@kanalen.org> 1816 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 1825 functions. 1826 (is_keyword): Change return type. 1827 (x_java_keyword): Update. 1828 (extract_java): Count arguments, and support plural keywords like 1829 ngettext. 1830 18312001-09-19 Bruno Haible <haible@clisp.cons.org> 1832 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. 1837 18382001-09-19 Bruno Haible <haible@clisp.cons.org> 1839 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. 1842 18432001-09-18 Bruno Haible <haible@clisp.cons.org> 1844 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 1849 variables. 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. 1860 18612001-09-19 Bruno Haible <haible@clisp.cons.org> 1862 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 1869 'size_t'. 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. 1876 18772001-09-16 Bruno Haible <haible@clisp.cons.org> 1878 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 1886 = (size_t)(-1). 1887 * Makefile.am (noinst_HEADERS): Add x-rst.h. 1888 (xgettext_SOURCES): Add x-rst.c. 1889 18902001-09-20 Bruno Haible <haible@clisp.cons.org> 1891 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. 1899 19002001-09-16 Bruno Haible <haible@clisp.cons.org> 1901 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. 1911 19122001-09-17 Bruno Haible <haible@clisp.cons.org> 1913 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. 1933 19342001-09-16 Bruno Haible <haible@clisp.cons.org> 1935 1936 * x-c.c (phase4_getc): Rename local variable 'state' to 1937 'last_was_star'. 1938 19392001-09-11 Bruno Haible <haible@clisp.cons.org> 1940 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. 1946 19472001-09-09 Bruno Haible <haible@clisp.cons.org> 1948 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. 1953 * x-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. 1964 * x-c.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. 1980 19812001-09-24 Bruno Haible <haible@clisp.cons.org> 1982 1983 * po-lex.c (mb_iseq): Compare the byte sequence, not the Unicode 1984 equivalent. This is necessary for non-ASCII-compatible encodings like 1985 SHIFT_JIS. 1986 19872001-09-08 Bruno Haible <haible@clisp.cons.org> 1988 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 1994 differently. 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. 2012 20132001-09-08 Bruno Haible <haible@clisp.cons.org> 2014 2015 * msgexec.c (nonintr_select): Add function prototype. 2016 2017 * xgettext.c (scan_java_file): Add function prototype. 2018 20192001-09-23 Bruno Haible <haible@clisp.cons.org> 2020 2021 * xgettext.c (remember_a_message): Warn about empty msgid if it 2022 conflicts with construct_header(). 2023 20242001-09-08 Bruno Haible <haible@clisp.cons.org> 2025 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. 2037 20382001-09-08 Bruno Haible <haible@clisp.cons.org> 2039 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. 2047 * 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>. 2058 20592001-09-21 Tommy Johansson <tommy.johansson@kanalen.org> 2060 2061 * x-java.l (create_char_buf): Fix problem with empty messages. 2062 (//): Remove leading "//" from result. 2063 (x_java_keyword): Handle NULL argument. 2064 20652001-09-19 Tommy Johansson <tommy.johansson@kanalen.org> 2066 2067 * x-java.l (is_keyword): Swap arguments of do_compare. 2068 20692001-09-02 Bruno Haible <haible@clisp.cons.org> 2070 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. 2081 (usage): Update. 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. 2085 20862001-09-16 Bruno Haible <haible@clisp.cons.org> 2087 2088 * Makefile.am (noinst_HEADERS): Add x-java.h. 2089 20902001-09-14 Tommy Johansson <tommy.johansson@kanalen.org> 2091 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. 2097 20982001-09-03 Bruno Haible <haible@clisp.cons.org> 2099 2100 * x-c.h (EXTENSIONS_C, SCANNERS_C): Remove extraneous commas. 2101 * x-po.h (EXTENSIONS_PO, SCANNERS_PO): Likewise. 2102 21032001-09-11 Bruno Haible <haible@clisp.cons.org> 2104 2105 * xgettext.c: Set msgstr_prefix to "", not NULL. 2106 Reported by Martin Quinson <Martin.Quinson@ens-lyon.fr>. 2107 21082001-09-10 Bruno Haible <haible@clisp.cons.org> 2109 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. 2118 21192001-09-08 Bruno Haible <haible@clisp.cons.org> 2120 2121 * msgattrib.c: New file. 2122 * Makefile.am (bin_PROGRAMS): Add msgattrib. 2123 (msgattrib_SOURCES, msgattrib_LDADD): New variables. 2124 21252001-09-02 Bruno Haible <haible@clisp.cons.org> 2126 2127 * format-lisp.c (gcd): Remove function. Include "gcd.h" instead. 2128 21292001-09-03 Bruno Haible <haible@clisp.cons.org> 2130 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 ":". 2135 21362001-09-03 Tommy Johansson <tommy.johansson@kanalen.org> 2137 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. 2148 21492001-09-02 Bruno Haible <haible@clisp.cons.org> 2150 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 2155 read-mo.c. 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. 2159 21602001-09-02 Bruno Haible <haible@clisp.cons.org> 2161 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 *'. 2170 Store msgid in it. 2171 * write-mo.h: Don't include hash.h. 2172 (msgdomain_write_mo): Change argument type from hash table to message 2173 list. 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 2178 list. 2179 21802001-09-01 Bruno Haible <haible@clisp.cons.org> 2181 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 2194 delete_hash. 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. 2200 22012001-09-01 Bruno Haible <haible@clisp.cons.org> 2202 2203 * write-po.c (msgdomain_list_print): Before fclose, check for ferror. 2204 22052001-09-01 Bruno Haible <haible@clisp.cons.org> 2206 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. 2210 22112001-08-30 Bruno Haible <haible@clisp.cons.org> 2212 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. 2222 (usage): Update. 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 2229 used. 2230 22312001-08-26 Bruno Haible <haible@clisp.cons.org> 2232 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. 2298 22992001-08-12 Bruno Haible <haible@clisp.cons.org> 2300 2301 * pos.h: Include <stddef.h>. 2302 23032001-08-12 Bruno Haible <haible@clisp.cons.org> 2304 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. 2312 2313 * x-c.c (x_c_lex): Move lazy keyword initialization... 2314 (init_keywords): ... to here. New function. 2315 (extract_c): Call init_keywords. 2316 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. 2319 23202001-07-28 Bruno Haible <haible@clisp.cons.org> 2321 2322 * gettext.c (usage): If IN_HELP2MAN is set, output template for 2323 localedir, not its value. 2324 * ngettext.c (usage): Likewise. 2325 23262001-07-28 Bruno Haible <haible@clisp.cons.org> 2327 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'. 2331 23322001-07-28 Bruno Haible <haible@clisp.cons.org> 2333 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. 2348 * x-po.h: New file. 2349 * x-po.c: New file. 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 2366 extract_po. 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. 2371 23722001-07-27 Bruno Haible <haible@clisp.cons.org> 2373 2374 * x-c.h: New file. 2375 * x-c.c: New file. 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 2378 lex_pos_ty. 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 2413 in xget-lex.c. 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 2423 x-c.h. 2424 (xgettext_SOURCES): Remove xget-lex.c. Add x-c.c. 2425 24262001-07-26 Bruno Haible <haible@clisp.cons.org> 2427 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. 2443 24442001-07-23 Bruno Haible <haible@clisp.cons.org> 2445 2446 * msgcomm.c: Assume <limits.h> exists. 2447 * msgexec.c: Likewise. 2448 * msggrep.c: Likewise. 2449 * write-po.c: Likewise. 2450 24512001-08-02 Bruno Haible <haible@clisp.cons.org> 2452 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. 2468 24692001-07-22 Bruno Haible <haible@clisp.cons.org> 2470 2471 * xgettext.c (language_to_scanner): Add language "ObjectiveC". 2472 (extension_to_language): Map extension "m" to "ObjectiveC". 2473 24742001-07-22 Bruno Haible <haible@clisp.cons.org> 2475 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, 2495 msgl-cat.c. 2496 24972001-07-22 Bruno Haible <haible@clisp.cons.org> 2498 2499 * msgl-ascii.h: New file. 2500 * msgl-ascii.c: New file. 2501 * po-charset.h (po_charset_ascii, po_charset_ascii_compatible): New 2502 declarations. 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. 2523 25242001-07-22 Bruno Haible <haible@clisp.cons.org> 2525 2526 * msgl-cat.h: Include <stdbool.h>. 2527 * po.h: Likewise. 2528 * read-po.h: Likewise. 2529 * write-po.h: Likewise. 2530 * xget-lex.h: Likewise. 2531 25322001-07-21 Bruno Haible <haible@clisp.cons.org> 2533 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. 2552 25532001-07-21 Bruno Haible <haible@clisp.cons.org> 2554 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. 2558 25592001-07-21 Bruno Haible <haible@clisp.cons.org> 2560 2561 * message.h (struct message_ty): Add fields 'alternative_count', 2562 'alternative'. 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. 2567 25682001-07-21 Bruno Haible <haible@clisp.cons.org> 2569 2570 * msgcomm.c (extract_directive_message): Don't make the message fuzzy 2571 if the first occurrence wasn't fuzzy. 2572 25732001-07-21 Bruno Haible <haible@clisp.cons.org> 2574 2575 * message.c (message_comment_filepos): Don't keep the filepos[] array 2576 sorted. 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. 2581 25822001-07-12 Bruno Haible <haible@clisp.cons.org> 2583 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. 2589 25902001-07-11 Bruno Haible <haible@clisp.cons.org> 2591 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>. 2595 25962001-07-09 Bruno Haible <haible@clisp.cons.org> 2597 2598 * write-po.c (has_nonascii): New function. 2599 (message_print): Warn if the msgid is not fully ASCII. 2600 (message_print_obsolete): Likewise. 2601 26022001-07-05 Bruno Haible <haible@clisp.cons.org> 2603 2604 * msgcomm.c (is_message_selected): Keep the header entry. 2605 26062001-07-01 Bruno Haible <haible@clisp.cons.org> 2607 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. 2641 26422001-06-30 Bruno Haible <haible@clisp.cons.org> 2643 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. 2651 (main): Use bool. 2652 (catenate_msgdomain_list): Update. Use yes/no for is_c_format and 2653 do_wrap. 2654 * msgcmp.c (multi_domain_mode): Change type to bool. 2655 (compare_directive_message): Change 'obsolete' argument type to bool. 2656 (main): Use bool. 2657 * msgcomm.c (is_message_selected): Change return type to bool. 2658 (extract_directive_message): Change 'obsolete' argument type to bool. 2659 (main): Use 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. 2674 (main): Use 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. 2681 (main): Use bool. 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. 2686 (main): Use bool. 2687 (match_domain): Update. 2688 (merge): 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. 2702 (lex_open): Update. 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' 2715 to bool. 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 2727 to bool. 2728 (message_print): Likewise. 2729 (message_print_obsolete): Likewise. 2730 (indent): Change type to bool. 2731 (uniforum): Likewise. 2732 (escape): Likewise. 2733 (message_print_style_indent): Update. 2734 (message_print_style_uniforum): Update. 2735 (message_print_style_escape): Change argument type to bool. 2736 (wrap): Update. 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. 2752 (main): Use bool. 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. 2760 27612001-06-25 Bruno Haible <haible@clisp.cons.org> 2762 2763 * msggrep.c (usage): Explain the pattern syntax. 2764 27652001-06-18 Karl Eichwalder <ke@suse.de> 2766 2767 * msgcomm.c (long_options): Add '--unique' option as documented 2768 within --help output. 2769 27702001-06-12 Bruno Haible <haible@clisp.cons.org> 2771 2772 * xgettext.c (extension_to_language): Recognize "*.hh" as being C++. 2773 Reported by Felix Natter. 2774 27752001-06-10 Bruno Haible <haible@clisp.cons.org> 2776 2777 * msgcmp.c (main): Set gram_max_allowed_errors to UINT_MAX, as in 2778 msgmerge.c. 2779 27802001-06-10 Bruno Haible <haible@clisp.cons.org> 2781 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. 2791 27922001-06-10 Bruno Haible <haible@clisp.cons.org> 2793 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 2810 --output-file. 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, 2817 msgsed. 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. 2823 28242001-06-10 Bruno Haible <haible@clisp.cons.org> 2825 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 2854 mdlp. 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 2866 'first' is true. 2867 (message_print_obsolete): Likewise. 2868 (msgdomain_list_print): Renamed from message_list_print. Change type 2869 of first argument. 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 2875 mdlp. 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 2882 'const char *'. 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. 2910 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. 2923 * po.h: Likewise. 2924 * po.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. 2930 29312001-06-10 Bruno Haible <haible@clisp.cons.org> 2932 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 2936 none. 2937 29382001-06-10 Bruno Haible <haible@clisp.cons.org> 2939 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 2949 of --strict. 2950 (format_directive_message): Likewise. 2951 (add_mo_suffix): Don't call xstrdup. 2952 29532001-06-01 Bruno Haible <haible@clisp.cons.org> 2954 2955 * Makefile.am (datadir): Remove definition. 2956 Reported by Albert Chin-A-Young <china@thewrittenword.com>. 2957 29582001-05-15 Bruno Haible <haible@clisp.cons.org> 2959 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. 2969 29702001-05-04 Bruno Haible <haible@clisp.cons.org> 2971 2972 * gettext.c (usage): Add description of what the program does. 2973 Separate blocks with blank lines. 2974 * ngettext.c (usage): Likewise. 2975 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. 2983 29842001-05-05 Karl Eichwalder <ke@suse.de> 2985 2986 * xgettext.c (read_name_from_file): Remove trailing space from line. 2987 * msgcomm.c (read_name_from_file): Likewise. 2988 29892001-05-02 Bruno Haible <haible@clisp.cons.org> 2990 2991 * po-charset.c: Don't include stdio.h, stdlib.h, mbswidth.h. Include 2992 xerror.h instead. 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. 2997 29982001-05-01 Bruno Haible <haible@clisp.cons.org> 2999 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() 3004 call. 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. 3038 30392001-04-30 Bruno Haible <haible@clisp.cons.org> 3040 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): 3054 Likewise. 3055 * read-po.c (readall_directive_message): Likewise. Set mp->obsolete. 3056 30572001-05-01 Bruno Haible <haible@clisp.cons.org> 3058 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 3073 by one. 3074 * po-lex.c: Include str-list.h. 3075 30762001-04-30 Bruno Haible <haible@clisp.cons.org> 3077 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. 3087 30882001-04-29 Bruno Haible <haible@clisp.cons.org> 3089 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 3097 read-po.c. 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. 3101 * FILES: Update. 3102 31032001-04-28 Bruno Haible <haible@clisp.cons.org> 3104 3105 * msgcmp.c (usage): Restructure usage message. Talk about ref.pot, not 3106 ref.po. 3107 * msgcomm.c (long_options): Remove --add-comments, --join-existing 3108 options. 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 3112 --trigraphs option. 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 3120 when it is given. 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. 3125 31262001-04-28 Bruno Haible <haible@clisp.cons.org> 3127 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. 3144 * FILES: Update. 3145 3146 * msgfmt.c: Don't include ctype.h. 3147 * msgunfmt.c: Likewise. 3148 31492001-04-28 Bruno Haible <haible@clisp.cons.org> 3150 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. 3158 31592001-09-13 Bruno Haible <haible@clisp.cons.org> 3160 3161 * gettext-0.10.40 released. 3162 31632001-07-24 Bruno Haible <haible@clisp.cons.org> 3164 3165 * gettext-0.10.39 released. 3166 31672001-05-23 Bruno Haible <haible@clisp.cons.org> 3168 3169 * gettext-0.10.38 released. 3170 31712001-05-23 Bruno Haible <haible@clisp.cons.org> 3172 3173 * write-po.c (wrap): Avoid broken EUC-KR conversion in glibc-2.1. 3174 31752001-05-21 Bruno Haible <haible@clisp.cons.org> 3176 3177 * xgettext.c (construct_header): Replace 8-bit with 8bit. 3178 31792001-04-19 Bruno Haible <haible@clisp.cons.org> 3180 3181 * gettext-0.10.37 released. 3182 31832001-04-18 Bruno Haible <haible@clisp.cons.org> 3184 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. 3189 31902001-04-09 Bruno Haible <haible@clisp.cons.org> 3191 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 3196 instead of error. 3197 31982001-04-04 Bruno Haible <haible@clisp.cons.org> 3199 3200 * gettext.c (program_name): Change type to 'const char *'. 3201 * ngettext.c (program_name): Likewise. 3202 32032001-04-04 Bruno Haible <haible@clisp.cons.org> 3204 3205 * write-po.c (wrap): Prohibit line breaks inside backslash escape 3206 sequences. 3207 32082001-03-29 Bruno Haible <haible@clisp.cons.org> 3209 3210 * gettext-0.10.36 released. 3211 32122001-03-27 Bruno Haible <haible@clisp.cons.org> 3213 3214 * po.c (po_callback_message): Change message again. 3215 32162001-03-26 Bruno Haible <haible@clisp.cons.org> 3217 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. 3221 32222001-03-25 Bruno Haible <haible@clisp.cons.org> 3223 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. 3227 32282001-03-23 Bruno Haible <haible@clisp.cons.org> 3229 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 3233 is specified. 3234 32352001-03-22 Bruno Haible <haible@clisp.cons.org> 3236 3237 * xgettext.c (construct_header): Replace ENCODING with 8-bit. 3238 32392001-03-20 Bruno Haible <haible@clisp.cons.org> 3240 3241 * po.c (po_callback_message): Change message, refer to GNU libiconv. 3242 32432001-03-18 Bruno Haible <haible@clisp.cons.org> 3244 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. 3251 32522001-03-19 Bruno Haible <haible@clisp.cons.org> 3253 3254 * xgettext.c (extension_to_language): Recognize "*.cpp" and "*.hpp" as 3255 being C++. 3256 Patch by Dennis Bjorklund <db@zigo.dhs.org>. 3257 32582001-03-11 Bruno Haible <haible@clisp.cons.org> 3259 3260 * gettext.c: Force inclusion of libgnuintl.h. On Solaris, <locale.h> 3261 has already included libintl.h. 3262 32632001-03-11 Bruno Haible <haible@clisp.cons.org> 3264 Karl Eichwalder <ke@suse.de> 3265 3266 * po.c (po_callback_message): Add comments to support translators. 3267 32682001-03-11 Bruno Haible <haible@clisp.cons.org> 3269 3270 * po-lex.c (lex_close): Use ngettext and plural-form message. 3271 * msgcmp.c (compare): Likewise. 3272 * msgfmt.c (main): Likewise. 3273 32742001-03-10 Bruno Haible <haible@clisp.cons.org> 3275 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. 3280 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. 3288 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. 3292 32932001-03-09 Bruno Haible <haible@clisp.cons.org> 3294 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. 3299 33002001-03-04 Bruno Haible <haible@clisp.cons.org> 3301 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. 3310 33112001-03-04 Bruno Haible <haible@clisp.cons.org> 3312 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 $$. 3335 33362001-03-03 Bruno Haible <haible@clisp.cons.org> 3337 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 3355 character. 3356 * Makefile.am (msgcmp_LDADD, msgfmt_LDADD): New variables. 3357 33582001-03-03 Bruno Haible <haible@clisp.cons.org> 3359 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 3375 change locales. 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): 3383 Move to write-po.c. 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 3394 variables. 3395 33962001-03-03 Bruno Haible <haible@clisp.cons.org> 3397 3398 * msgcmp.c (compare): Internationalize error message. 3399 34002001-02-10 Bruno Haible <haible@clisp.cons.org> 3401 3402 * msgunfmt.c (main): Accept -e and -E options. 3403 34042001-02-04 Bruno Haible <haible@clisp.cons.org> 3405 3406 * msgfmt.c (main): Open the output file in binary mode. 3407 * msgunfmt.c (read_mo_file): Open the input file in binary mode. 3408 34092001-01-21 Bruno Haible <haible@clisp.cons.org> 3410 3411 Use libtool. 3412 * Makefile.am (LDADD): Remove ../intl/libintl.$la, not needed any more. 3413 (l): Remove macro. 3414 34152001-01-20 Bruno Haible <haible@clisp.cons.org> 3416 3417 * msgcomm.c (main): Options '-<' and '->' want an argument. 3418 34192001-01-07 Bruno Haible <haible@clisp.cons.org> 3420 3421 * gettext.c: Renamed from gettextp.c. Use included libintl if TESTS 3422 is defined. 3423 * setlocale.c: Move to ../tests. 3424 * Makefile.am (EXTRA_PROGRAMS, all-local, CLEANFILES): Remove. 3425 (tstgettext_SOURCES): Remove. 3426 (gettext_SOURCES): Update. 3427 34282001-01-07 Bruno Haible <haible@clisp.cons.org> 3429 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. 3439 34402001-01-07 Bruno Haible <haible@clisp.cons.org> 3441 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. 3452 * po.c: Likewise. 3453 * setlocale.c: Likewise. 3454 * str-list.h: Likewise. 3455 * xget-lex.c: Likewise. 3456 * xgettext.c: Likewise. 3457 34582001-01-06 Bruno Haible <haible@clisp.cons.org> 3459 3460 * Makefile.am (datadir): Assume DATADIRNAME = share. 3461 34622001-01-06 Bruno Haible <haible@clisp.cons.org> 3463 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. 3469 34702001-01-05 Bruno Haible <haible@clisp.cons.org> 3471 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 3477 'unsigned int'. 3478 34792001-01-01 Bruno Haible <haible@clisp.cons.org> 3480 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. 3496 Pass msgstr_len. 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', 3503 'msgstr_len'. 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', 3513 'msgstr_len'. 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 3517 fields. 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 3535 argnum1, argnum2. 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 3544 msgid2 later. 3545 (extract_directive_message): Additional arguments 'msgid_plural', 3546 'msgstr_len'. Compare msgstr using memcmp, not strcmp. 3547 (construct_header): Update. 3548 35492000-12-31 Bruno Haible <haible@clisp.cons.org> 3550 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. 3554 35552000-12-31 Bruno Haible <haible@clisp.cons.org> 3556 3557 * msgunfmt.c (read_mo_file): Recognize "/dev/stdin", not "/dev/stdout". 3558 35592000-12-31 Bruno Haible <haible@clisp.cons.org> 3560 3561 * str-list.h: Fix typo. Add comments. 3562 * str-list.c: Add comments. 3563 3564 * dir-list.h: Add comments. 3565 * dir-list.c: Likewise. 3566 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. 3572 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. 3577 3578 * open-po.c (open_po_file): Merge duplicated code. 3579 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 3584 syntax if possible. 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. 3588 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 3597 fields. 3598 * xgettext.c (extract_class_ty): Likewise. 3599 (remember_a_message): Change type of do_wrap. 3600 3601 * pos.h: New file. 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. 3606 3607 * po.h: Add comments. 3608 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. 3613 3614 * ylwrap: Update from automake-1.4. 3615 3616 * FILES: New file. 3617 * Makefile.am (EXTRA_DIST): New variable. 3618 36192000-12-30 Bruno Haible <haible@clisp.cons.org> 3620 3621 * xgettext.c (scanner_c, scanner_cxx): Remove declarations. 3622 36232000-12-30 Bruno Haible <haible@clisp.cons.org> 3624 3625 * msgfmt.c (write_table): Pass additional argument &id_len to 3626 iterate_table. 3627 36282000-09-13 Bruno Haible <haible@clisp.cons.org> 3629 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. 3634 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. 3643 36442000-08-23 Bruno Haible <haible@clisp.cons.org> 3645 3646 * po-lex.c (ALERT_CHAR): New constant macro. 3647 (control_sequence): Accept \a. Don't accept \X. 3648 36492000-08-23 Ulrich Drepper <drepper@redhat.com> 3650 3651 * po-lex.c (control_sequence): Unget character which ended \x.. 3652 sequence. 3653 36542000-07-28 Bruno Haible <haible@clisp.cons.org> 3655 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 3662 to %02ld. 3663 36641998-07-17 Paul Eggert <eggert@twinsun.com> 3665 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. 3670 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. 3677 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 *. 3687 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. 3695 36962000-05-06 Ulrich Drepper <drepper@redhat.com> 3697 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. 3701 (YFLAGS): Removed. 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. 3710 3711 * po-lex.c: Include "po-gram-gen2.h" instead of "po-gram.gen.h". 3712 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 3733 defined. 3734 Patches by Peter Miller. 3735 37361998-05-15 Ulrich Drepper <drepper@cygnus.com> 3737 3738 * po-lex.c (control_sequence): Replace illegal with invalid. 3739 37401998-05-01 08:47 Ulrich Drepper <drepper@cygnus.com> 3741 3742 * gettext-0.10.35 released. 3743 37441998-04-30 Ulrich Drepper <drepper@cygnus.com> 3745 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. 3759 * po.c: Likewise. 3760 * po.h: Likewise. 3761 * str-list.c: Likewise. 3762 * str-list.h: Likewise. 3763 * xget-lex.c: Likewise. 3764 * xget-lex.h: Likewise. 3765 37661998-04-30 Ulrich Drepper <drepper@cygnus.com> 3767 3768 * msgfmt.c: Fix typo in --help text. 3769 Reported by Jan.Djarv@mbox200.swipnet.se. 3770 37711998-04-03 01:18 1998 Philippe De Muyter <phdm@macqel.be> 3772 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 3776 if STDC_HEADERS. 3777 37781998-04-29 Ulrich Drepper <drepper@cygnus.com> 3779 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. 3783 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. 3789 37901998-04-27 Ulrich Drepper <drepper@cygnus.com> 3791 3792 * xgettext.c: Update year and bug report address. Add little 3793 explanation in --help messages. 3794 * msgfmt.c: Likewise. 3795 3796 * msgmerge.c: Update year and bug report address. 3797 * msgcomm.c: Likewise. 3798 * msgcmp.c: Likewise. 3799 * msgunfmt.c: Likewise. 3800 38011997-08-31 22:20 Ulrich Drepper <drepper@cygnus.com> 3802 3803 * msgfmt.c (format_directive_message): Count fuzzy messages as 3804 fuzzy, even if they are not written to the output file. 3805 38061997-08-18 13:47 Philippe De Muyter <phdm@info.ucl.ac.be> 3807 3808 * msgcomm.c (sys/types.h): File included. 3809 38101997-08-15 12:38 Ulrich Drepper <drepper@cygnus.com> 3811 3812 * xgettext.c: Include <sys/param.h> to define MIN/MAX for HP/UX. 3813 Patch by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>. 3814 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>. 3818 38191997-08-01 15:48 Ulrich Drepper <drepper@cygnus.com> 3820 3821 * Makefile.am (AUTOMAKE_OPTIONS): Require version 1.2. 3822 38231997-05-07 04:21 Ulrich Drepper <drepper@cygnus.com> 3824 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. 3832 38331997-05-01 02:33 Ulrich Drepper <drepper@cygnus.com> 3834 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. 3841 3842 * msgcomm.c: Fix comment about default output (Jan Djarv). Split 3843 help message. 3844 38451997-03-31 16:09 Ulrich Drepper <drepper@cygnus.com> 3846 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>. 3850 3851Mon Mar 10 06:18:58 1997 Ulrich Drepper <drepper@cygnus.com> 3852 3853 * xgettext.c: Implement generic language scanner handling. 3854 3855 * xget-lex.c (phase7_getc): Better comments. 3856 (phase5_get): Print warnings about unterminated strings and 3857 character constants. 3858 3859 * po-lex.c (po_gram_error): Don't count continuation lines in 3860 messages as errors. 3861 (gram_error_at_line): Likewise. 3862 * po-lex.h: Likewise for macro versions. 3863 3864 * po-hash.y: Correct typo. 3865 3866 * msgunfmt.c: Implement --force-po option. 3867 3868 * msgmerge.c: Implement --force-po, --no-location, and 3869 --add-location options. 3870 3871 * msgfmt.c (format_directive_message): If messages are duplicated 3872 and translations are different this is a fatal error. 3873 3874 * msgcmp.c (compare_directive_message): Use correct format for 3875 continuation line in message. 3876 3877 * message.h: Add prototype for message_list_delete_nth. 3878 3879 * message.c: Add message_list_delete_nth function. 3880 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. 3884 3885 * msgcomm.c: New file. 3886 3887Wed Dec 4 01:58:10 1996 Ulrich Drepper <drepper@cygnus.com> 3888 3889 * Makefile.am (LDADD): Change for use of libtool. 3890 3891Tue Dec 3 18:08:46 1996 Ulrich Drepper <drepper@cygnus.com> 3892 3893 * xget-lex.c (phase7_getc): Return \n when newline is seen, not 3894 P7_NEWLINE. 3895 3896 * xgettext.c (main): Implement --foreign-user flag. 3897 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. 3905 3906Sat Sep 14 04:28:09 1996 Ulrich Drepper <drepper@cygnus.com> 3907 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. 3914 3915Thu Sep 12 21:40:48 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 3916 3917 * msgfmt.c (check_pair): Fix error messages. 3918 3919Sat Aug 31 14:05:29 1996 Ulrich Drepper <drepper@cygnus.com> 3920 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. 3927 3928Sat Aug 31 04:49:38 1996 Ulrich Drepper <drepper@cygnus.com> 3929 3930 * gettextp.c: Don't include <libintl.h> since this can generate 3931 conflicts. 3932 3933Mon Jul 15 02:21:25 1996 Ulrich Drepper <drepper@cygnus.com> 3934 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. 3938 3939Sat Jul 13 20:23:34 1996 Ulrich Drepper <drepper@cygnus.com> 3940 3941 * xget-lex.c (phase6_get): Reset selected comments on every 3942 preprocessor directive. 3943 3944Fri Jul 12 12:38:49 1996 Ulrich Drepper <drepper@cygnus.com> 3945 3946 * xgettext.c (main): Remove `v' from short option list. 3947 3948Sat Jul 6 11:22:47 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3949 3950 * message.c (message_merge): Add some casts to (char *) in alloca 3951 calls. Make KNOWN_FIELDS array static. 3952 3953Sat Jul 6 11:15:43 1996 Jim Meyering <meyering@na-net.ornl.gov> 3954 3955 * msgfmt.c (check_pair): Correct English in Message. 3956 3957Fri Jul 5 17:27:11 1996 Ulrich Drepper <drepper@cygnus.com> 3958 3959 * message.c (message_merge): Terminate string for UNKNOWN fields 3960 in header entry. 3961 3962 * message.c (message_merge): Don't print POT-Revision-Date twice. 3963 3964 * msgfmt.c: Implement --statistics. 3965 Suggested by Santiago Vila Doncel. 3966 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. 3970 3971Wed Jun 19 02:42:52 1996 Ulrich Drepper <drepper@cygnus.com> 3972 3973 * message.c (message_merge): Implement sorting of header entry 3974 lines. 3975 3976Sat Jun 15 19:46:50 1996 Ulrich Drepper <drepper@cygnus.com> 3977 3978 * msgmerge.c (usage): Correct -w option in help string (was -W). 3979 3980Tue Jun 11 15:28:44 1996 Ulrich Drepper <drepper@cygnus.com> 3981 3982 * xget-lex.c, xget-lex.h (xgettext_lex_comment): Change parameter 3983 type to size_t. 3984 3985 * po-lex.h, po-lex.c (gram_max_allowed_errors): Change type to 3986 size_t. 3987 3988 * message.c, message.h (message_page_width_set): Change parameter 3989 type to size_t. 3990 3991 * Makefile.am (AUTOMAKE_OPTIONS): Add variable. Must be defined 3992 in all subdirs. 3993 3994Mon Jun 10 02:53:52 1996 Marcus Daniels <marcus@sysc.pdx.edu> 3995 3996 * dir-list.c: Include system.h in order to get size_t and NULL. 3997 3998Thu Jun 6 01:59:31 1996 Ulrich Drepper <drepper@cygnus.com> 3999 4000 * str-list.h: Include <stddef.h> to get size_t defined. 4001 Reported by Philippe Defert. 4002 4003 * Makefile.am (LDADD): Remove `@INTLLIBS@ ../lib/libnlsut.a 4004 @LIBS@'. This is not necessary anymore. 4005 4006Wed Jun 5 00:00:08 1996 Ulrich Drepper <drepper@cygnus.com> 4007 4008 * xgettext.c, msgunfmt.c (usage): Correct --page-width to --width 4009 in usage string. 4010 4011 * open-po.c (open_po_file): Implement search path for PO files. 4012 4013 * xget-lex.c (xgettext_lex_open): Implement search path for PO 4014 files. Patch by Peter Miller. 4015 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. 4019 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. 4023 4024 * message.c (wrap): Implement no-wrap special comment. If given 4025 no wrapping is performed. 4026 4027 * gettextp.c, msgcmp.c, msgfmt.c, msgmerge.c, msgunfmt.c, 4028 xgettext.c: Add `no-wrap' comments at usage message strings. 4029 4030 * msgcmp.c: Implement --directory to specify search path for .po 4031 files. Patch by Peter Miller. 4032 4033Tue Jun 4 23:57:59 1996 Ulrich Drepper <drepper@cygnus.com> 4034 4035 * msgfmt.c: Implement --width option to specify width for which 4036 line wrapping is done. Patch by Peter Miller. 4037 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. 4041 4042 * msgunfmt.c: Implement --width option to specify width for which 4043 line wrapping is done. Patch by Peter Miller. 4044 4045Tue Jun 4 00:12:25 1996 Ulrich Drepper <drepper@cygnus.com> 4046 4047 * po-hash.y: Add new clause where in GNU style format the name is 4048 `file'. 4049 4050 * Makefile.am (noinst_HEADERS): Add dir-list.h. 4051 (msgcmp_SOURCES, msgfmt_SOURCES, msgmerge_SOURCES, xgettext_SOURCES): 4052 Add dir-list.c 4053 4054Mon Jun 3 00:43:07 1996 Ulrich Drepper <drepper@cygnus.com> 4055 4056 * message.h: Add new parameter for message_list_print. 4057 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 4060 the reasoning. 4061 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. 4065 4066 * message.c (make_c_format_description_string): Take additional 4067 parameter DEBUG. If nonzero, distinguish between c-format and 4068 possible-c-format. 4069 4070 * message.c (message_print_obsolete): Copy precious translator 4071 comment to output file. Reported by Santiago Vila Doncel. 4072 4073 * dir-list.c: Include file now is called dir-list.h, not 4074 dir_list.h. 4075 4076 * message.c: Include <limits.h>. 4077 4078 * Makefile.am (EXTRA_DIST): Add variable to distribute po-gram.y 4079 and po-hash.y. 4080 4081 * Makefile.am (msgfmt_SOURCES): Fix typo: msgfmt.o -> msgfmt.c. 4082 4083Sat Jun 1 04:33:48 1996 Ulrich Drepper <drepper@cygnus.com> 4084 4085 * Makefile.in: Remove support for tupdate. msgmerge is stable 4086 now. 4087 4088Wed Apr 10 01:20:49 1996 Ulrich Drepper <drepper@myware> 4089 4090 * message.c (message_print_obsolete): Don't print 4091 c-format/no-c-format flags for obsolete entries. 4092 4093 * xgettext.c (construct_header): Change DIST to ZONE in header 4094 entry template. 4095 4096 * message.c (message_merge): Insert POT-Creation-Date field before 4097 PO-Revision-Date. 4098 4099Tue Apr 9 17:13:34 1996 Ulrich Drepper <drepper@myware> 4100 4101 * xgettext.c (construct_header): Move POT-Creation-Date line 4102 before PO-Revision-Date line. 4103 4104Fri Apr 5 12:07:19 1996 Ulrich Drepper <drepper@myware> 4105 4106 * msgmerge.c: Implement --quiet option to prevent dots printed as 4107 progress report. 4108 (merge): Don't print dots if `quiet'. 4109 4110 * msgmerge.c (merge): Nicer statistics message. 4111 4112 * message.c (message_merge): Update POT-Creation-Date field in 4113 header entry from contents in reference file. 4114 4115 * msgfmt.c (format_directive_message): Better test for unchanged 4116 fields in header entry. 4117 4118 * xgettext.c (difftm): Is back. 4119 (construct_header): Print distance to GMT in POT file time stamp. 4120 4121 * xgettext.c (construct_header): Print leading comment and fuzzy 4122 flag. 4123 4124 * message.c (message_print): Allow translator comment to fill more 4125 than one line. 4126 4127 * xgettext.c (construct_header): Introduce POT-Creation-Date 4128 field. 4129 4130Fri Apr 5 03:05:07 1996 Ulrich Drepper <drepper@myware> 4131 4132 * msgmerge.c (merge): Rename empty in missing. There might be 4133 more empty messages which are not missed. 4134 4135 * msgmerge.c (merge): Terminate `.' line if no verbose output is 4136 selected. 4137 4138 * msgmerge.c (main): Implement -v option to increase verbosity 4139 level. 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. 4144 4145Thu Apr 4 11:59:20 1996 Ulrich Drepper <drepper@myware> 4146 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. 4150 4151 * message.c (message_list_search_fuzzy): Initialize mp before 4152 using it. 4153 4154 * message.c (message_print): Normalize printed messages even more. 4155 Don't print fuzzy flag is msgstr is empty. 4156 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. 4159 4160Thu Apr 4 01:57:37 1996 Ulrich Drepper <drepper@myware> 4161 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. 4165 4166Tue Apr 2 16:19:42 1996 Ulrich Drepper <drepper@myware> 4167 4168 * xgettext.c (main): Add "warning" to message about unknown input 4169 file type. 4170 4171 * Makefile.in (all-gettext): New goal. Same as all. 4172 4173 * xgettext.c (usage): Rearange help strings. One of them was too 4174 long for some dumb catgets programs. Reported by Marcus Daniels. 4175 4176 * msgfmt.c (format_directive_message): Check for standard header 4177 entry fields. 4178 4179 * xgettext.c (construct_header): MIME-VERSION should be written 4180 MIME-Version. 4181 4182 * msgmerge.c (main): Don't recognize -f option anymore. This is 4183 the default now. 4184 4185 * msgfmt.c (format_debrief): New function. Warn if no header 4186 entry is found. 4187 (format_directive_message): Remember if header entry is found. 4188 4189Tue Apr 2 11:12:15 1996 Ulrich Drepper <drepper@myware> 4190 4191 * msgfmt.c (format_constructor): New function. Initialize 4192 is_c_format field. 4193 (format_directive_message): Clear is_c_format field for next message 4194 at the end. 4195 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 4199 my English. 4200 4201Tue Apr 2 03:27:34 1996 Ulrich Drepper <drepper@myware> 4202 4203 * msgunfmt.c (main): Removed -S option. People should think twice 4204 before using this and so are forced to use the long version. 4205 4206Tue Apr 2 03:25:56 1996 Fran��ois Pinard <pinard@iro.umontreal.ca> 4207 4208 * msgunfmt.c (usage): Remove Tab character from message. 4209 4210Tue Apr 2 03:15:16 1996 Marcus Daniels <marcus@sysc.pdx.edu> 4211 4212 * message.c (significant_c_format_p): If is_c_format is `no' this 4213 is significant. 4214 4215Tue Apr 2 03:12:24 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4216 4217 * po.c (po_comment_filepos): Make definition static as declaration 4218 was before. 4219 4220 * msgunfmt.c (usage): Add missing \n to help string. 4221 4222Mon Apr 1 02:37:45 1996 Ulrich Drepper <drepper@myware> 4223 4224 * xgettext.c (main): When recognizing file type, default to C 4225 instead of regarding it as an error. Suggested by Marcus Daniels. 4226 4227 * po.c (po_callback_comment): For now recognize #! also as special 4228 comment. 4229 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. 4233 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. 4237 4238 * po-lex.h (po-gram_error, gram_error_with_loc): Use 4239 error_message_count instead of gram_nerrors. 4240 4241 * xgettext.c: Remove verbose option and variable. 4242 (test_whether_c_format): Don't return `possible' is string 4243 contains no format specifier. 4244 4245Sun Mar 31 23:23:40 1996 Ulrich Drepper <drepper@myware> 4246 4247 * xget-lex.c (xgettext_lex): Fix typo. Reported by Fran��ois 4248 Pinard. 4249 4250Thu Mar 28 19:01:22 1996 Ulrich Drepper <drepper@myware> 4251 4252 * po.c (po_callback_comment): Correct handling of special 4253 comments. Give whole comment to callback function instead of 4254 tokenized form. 4255 4256Thu Mar 28 18:37:49 1996 Ulrich Drepper <drepper@myware> 4257 4258 * xgettext.c (remember_a_message): Always look through comments 4259 because we have to look for c-format comments. 4260 4261 * message.h, msgmerge.c, xgettext.c, message.c, msgfmt.c: 4262 Implement more detailed C format string handling. Basically coded 4263 by Marcus Daniels. 4264 4265Thu Mar 28 16:52:56 1996 Marcus Daniels <marcus@sysc.pdx.edu> 4266 4267 * Makefile.in (MSGFMT_OBJ): Add message.o. 4268 4269Wed Mar 27 03:16:01 1996 Ulrich Drepper <drepper@myware> 4270 4271 * xget-lex.c (xgettext_lex): Correct implementation of comments 4272 grouped with messages. 4273 4274Tue Mar 26 21:23:54 1996 Ulrich Drepper <drepper@myware> 4275 4276 * po.c (po_callback_comment): Remove unused variable string. 4277 Include <ctype.h> because isspace is used. 4278 4279 * message.h (message_list_print): Undo change of Mon Mar 25 4280 03:34:44 1996. Don't print trailing comment. Remove additional 4281 argument. 4282 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. 4287 4288 * po-lex.h: Add prototype for po_lex_pass_obsolete_entries. 4289 4290 * po-lex.c (po_gram_lex): Implement handling of comments for 4291 obsolete entries (#~). 4292 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. 4295 4296 * po-lex.c (po_gram_lex): Small optimization in string collection. 4297 4298 * message.c (message_print_obsolete): Obsolete messages are now 4299 preceded by #~ on each line. 4300 4301 * xgettext.c (remember_a_message): Fix bug with dereferencing 4302 dangling pointer. This caused xgettext test 1 to fail. 4303 4304 * xgettext.c (construct_header): Update format for file header. 4305 4306 * xgettext.c (extract_directive_message): Don't report error when 4307 message variant exists but the value is the same. Reported by 4308 Roland McGrath. 4309 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 4312 \n. 4313 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. 4317 4318Mon Mar 25 04:25:42 1996 Ulrich Drepper <drepper@myware> 4319 4320 * message.c, message.h (message_list_print): Parameter filename is 4321 const. 4322 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. 4328 4329 So we break for now after reaching 2 * PAGE_WIDTH instead of 4330 PAGE_WIDTH. 4331 4332 * message.c (message_list_print): Print blank line before trailing 4333 comments. 4334 4335 * message.c (message_print_obsolete): Don't print anything for 4336 obsolete entries with empty msgstr. 4337 4338Mon Mar 25 03:34:44 1996 Ulrich Drepper <drepper@myware> 4339 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. 4343 4344 * msgfmt.c (format_directive_domain): Only check for correct 4345 format string elements is special comment contains c-format. 4346 4347 * msgfmt.c: Use sizeof instead of strlen to determine length of 4348 constant string. 4349 4350 * xgettext.c: Implement generation of c-format special comments. 4351 4352 * msgunfmt.c (main): Call message_list_print with additional 4353 argument set to NULL. 4354 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, 4361 not string list. 4362 (extract_comment_special): Set flags according to special comment. 4363 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. 4368 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 4373 appropriately. 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. 4378 4379 * msgmerge.c (merge_class_ty): New fields fuzzy and c_format for 4380 flags; 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 4386 comments. 4387 (merge_comment_special): Recognize fuzzy and c-format special comment. 4388 4389Sun Mar 24 17:35:26 1996 Ulrich Drepper <drepper@myware> 4390 4391 * xgettext.c (usage): Option --output-suffix does not exist 4392 anymore. 4393 4394 * msgmerge.c (usage): --strict does not have short form -S. 4395 4396 * message.h (message_ty): New field `obsolete'. 4397 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 `# '. 4401 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. 4405 4406 * Makefile.in ($(PROGRAMS)): Add generated libraries as 4407 dependencies for programs. 4408 4409 * Makefile.in (PROGRAMS): Remove msgjoin. 4410 4411Sun Mar 24 01:03:32 1996 Ulrich Drepper <drepper@myware> 4412 4413 * xgettext.c (extract_comment_filepos): Only add line comment if 4414 requested by -n option. 4415 4416 * po.c (po_callback_comment): Short by one bug in special comment 4417 entry copying. 4418 4419 * po.c (po_callback_comment): Handle special comments. Separate 4420 them into a list of comma separate entries. 4421 4422 * message.c (message_print): Format of lines containing fuzzy 4423 comments et.al. is now `#, xxx'. 4424 4425 * Makefile.in: msgjoin program is not anymore generated. 4426 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. 4432 4433Sat Mar 23 01:50:00 1996 Ulrich Drepper <drepper@myware> 4434 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. 4440 4441 * xgettext.c (scan_c_file): Extract all string if `extract-all' 4442 option is given. Reported by Roland McGrath. 4443 4444Thu Mar 14 14:55:20 1996 Ulrich Drepper <drepper@myware> 4445 4446 * msgfmt.c (format_comment_special): Be prepared that special 4447 comment contains more than one entry, separated by commas. 4448 4449 * message.c (message_print): Special comments are now written in a 4450 line, separated by commas. 4451 4452 * msgmerge.c (merge): Replace `INEXACT' with `fuzzy'. 4453 4454Thu Mar 14 11:50:48 1996 Marcus Daniels <marcus@sysc.pdx.edu> 4455 4456 * po-hash.h (po_hash): Change __P to PARAMS in prototype. 4457 4458Fri Mar 1 13:35:01 1996 Ulrich Drepper <drepper@myware> 4459 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. 4462 4463 * po-lex.h (po_gram_error): Don't write source file name in fatal 4464 message. 4465 (po_gram_error_with_loc): Ditto. 4466 4467 * po-lex.c (lex_close): Don't write source file name in fatal 4468 message. 4469 (po_gram_error): Ditto. 4470 (po_gram_error_with_loc): Ditto. 4471 4472Fri Mar 1 00:30:49 1996 Ulrich Drepper <drepper@myware> 4473 4474 * po-lex.h: Use PARAMS instead of __P in header declarations. 4475 4476 * msgcmp.c (compare_methods): Set new field comment_special to 4477 NULL. 4478 4479 * msgjoin.c (join_methods): Set new field comment_special to NULL. 4480 4481 * xgettext.c (exclude_methods): Set new field comment_special to 4482 NULL. 4483 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. 4488 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 4492 prototypes. 4493 (po_comment_special): New function. 4494 (po_callback_comment): For special comments call po_comment_special. 4495 4496 * msgmerge.c (usage): Add --force in help message. 4497 (merge_methods): Set special comment callback to NULL. 4498 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. 4502 4503 * msgfmt.c (main): Make lexer pass comments up. 4504 (format_comment_special): New function. Warns about `#! INEXACT' 4505 comments. 4506 (format_methods): Add callback for special comment. 4507 4508Wed Feb 14 01:56:14 1996 Ulrich Drepper <drepper@myware> 4509 4510 * xgettext.c (main): Remove option --output-suffix. When default 4511 domain name is "-" write to stdout. 4512 4513Mon Feb 12 02:20:09 1996 Ulrich Drepper <drepper@myware> 4514 4515 * xgettext.c (main): Implement --output-suffix parameter to 4516 determine alternative form of suffix for output file. 4517 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. 4523 4524Sun Jan 21 17:24:56 1996 Ulrich Drepper <drepper@myware> 4525 4526 * Makefile.in (install-exec): Include empty else case for case 4527 when Perl is not available. Reported by John David Anglin. 4528 4529Sat Dec 23 12:41:43 1995 Jun Young <bangjy@nownuri.nowcom.co.kr> 4530 4531 * gettextp.c (usage): Short option for version info is -V. 4532 4533Tue Dec 19 22:10:12 1995 Ulrich Drepper <drepper@myware> 4534 4535 * Makefile.in (Makefile, tupdate): Explicitly use $(SHELL) for 4536 running shell scripts. 4537 4538Sat Dec 9 17:06:11 1995 Ulrich Drepper <drepper@myware> 4539 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. 4544 4545Fri Dec 8 01:38:40 1995 Ulrich Drepper <drepper@myware> 4546 4547 * Makefile.in (PROGRAMS): Add definitions for new msgjoin program. 4548 4549 * msgjoin.c: Initial revision. 4550 4551Wed Dec 6 18:43:14 1995 Ulrich Drepper <drepper@myware> 4552 4553 * open-po.c (open_po_file): Recognize /dev/stdin as name for 4554 stdin. Recognize .pot as valid extension. 4555 4556Wed Dec 6 18:05:11 1995 Ulrich Drepper <drepper@myware> 4557 4558 * msgmerge.c (main): Sort options in getopt loop. 4559 4560Mon Dec 4 15:37:22 1995 Ulrich Drepper <drepper@myware> 4561 4562 * msgmerge.c: (main): Remove unused variable `exit_status'. 4563 4564Sun Dec 3 02:51:31 1995 Ulrich Drepper <drepper@myware> 4565 4566 * xget-lex.h: [xgettext_token_type_ty]: We now have two keyword 4567 types and also the comma is important. 4568 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`. 4575 4576 * xget-lex.c (phase5_get): Recognize ','. 4577 (xgettext_lex): Pass ',' on caller. 4578 Return different value for keywords `dgetetxt' and `dcgettext`. 4579 4580 * xget-lex.c (xgettext_lex): `gettext_noop' is an default keyword. 4581 4582 * msgunfmt.c (usage): 4583 Message should not contain TABs. Reported by Fran��ois Pinard. 4584 4585 * msgunfmt.c (usage): 4586 Correct typo: Uniforun -> Uniforum. Reported by Fran��ois Pinard. 4587 4588Mon Nov 20 21:12:52 1995 Ulrich Drepper <drepper@myware> 4589 4590 * po-lex.c, message.c: Some more pretty printing. 4591 4592 * message.c (wrap): Don't support '\a' and '\v'. 4593 4594 * xget-lex.c (phase7_getc): Don't support '\v'. 4595 4596 * po-lex.c (control_sequence): Don't support '\v'. 4597 4598 * gettextp.c (expand_escape): Don't support \a and \v. 4599 4600 * msgcmp.c (compare): Really define static. 4601 4602Thu Nov 16 22:42:33 1995 Ulrich Drepper <drepper@myware> 4603 4604 * msgmerge.c (merge): Remove additional parameter in in prototype. 4605 4606 * xgettext.c: Reomved unused type definition. Patch by Peter Miller. 4607 4608 * xget-lex.c: Correct some comments and better implementation of 4609 -k option. Patch by Peter Miller. 4610 4611 * po.h: Fix typos. By Peter Miller. 4612 4613 * po-lex.c (po_gram_lex): Prevent accumulation of #! comments. 4614 4615 * po-gram.y (comments): Remove unused rule. 4616 4617 * msgmerge.c: Implement new options sort-by-file and sort-output. 4618 Patches by Peter Miller. 4619 4620 * msgcmp.c (domain): Remove unused global variable. 4621 (domain_directive): Remove unused function. 4622 4623 * message.h: Fix comment for MESSAGE_DOMAIN_DEFAULT definition. 4624 4625 * message.c (message_print): Correct typo. 4626 Clarify comments about ANSI escape sequences. 4627 Patches by Peter Miller. 4628 4629 * Makefile.in (DISTFILES): Remove $(COMSRCS). 4630 (MSGFMT_OBJ): Correct indentation. Patches by Peter Miller. 4631 4632Sun Nov 12 12:52:29 1995 Ulrich Drepper <drepper@myware> 4633 4634 * xgettext.c (line, string, comment): Remove unused global variables. 4635 (read_name_from_file): Remove unused variable `cp'. 4636 4637 * msgmerge.c (merge): Add missing return statement. 4638 4639 * msgfmt.c (check_pair): Correctly pair comparisons. 4640 4641 * msgcmp.c (domain_list, mlp): Remove unused global variables. 4642 4643Sat Nov 11 21:39:17 1995 Ulrich Drepper <drepper@myware> 4644 4645 * message.c (message_list_print): 4646 Prevent output if we have no (real) entry. 4647 4648 * xgettext.c (remember_a_message): Implement exclude file handling. 4649 4650Sat Nov 11 17:38:05 1995 Ulrich Drepper <drepper@myware> 4651 4652 * msgunfmt.c: Fix message. 4653 4654 * xgettext.c: Use string handling from str-list and .po file 4655 handling use xget-lex et.al. 4656 4657 * xget-lex.h, xget-lex.c, str-list.h, str-list.c, po.h: 4658 Initial revision. 4659 4660 * po-lex.h: Allow variable upper limit of errors. 4661 New prototypes. 4662 4663 * po-lex.c: Allow variable upper limit of errors. 4664 Make comment's text available to the caller. 4665 4666 * po.c, po-hash.y, po-hash.h: Initial revision. 4667 4668 * po-gram.y: Add handling of comments. 4669 4670 * po-gram.h: Remove all but one declaration. 4671 4672 * msgunfmt.c, msgmerge.c: Initial revision. 4673 4674 * msgfmt.c: Adopt for new interface to parser. 4675 4676 * msgcmp.c: Move lot's of general code to other files. 4677 4678 * message.h, message.c: 4679 Extended functionality for Peter Miller's pseudo-OO programming. 4680 4681 * Makefile.in: Rewrite after adding rules for new programs. 4682 4683Fri Nov 10 10:01:37 1995 Ulrich Drepper <drepper@myware> 4684 4685 * Makefile.in (PROGRAMS): Add new programs msgmerge and msgunfmt. 4686 4687Thu Nov 9 01:29:46 1995 Ulrich Drepper <drepper@myware> 4688 4689 * gettextp.c (usage): Split message in two parts. 4690 4691 * xgettext.c (usage): Split message in three parts. 4692 4693 * xgettext.c (main): 4694 Print warning if --files-from option and file names on command 4695 line are given. 4696 4697 * xgettext.c (long_options): 4698 Mixed up `default-domain' and `directory' values. 4699 4700Wed Nov 8 23:31:34 1995 Ulrich Drepper <drepper@myware> 4701 4702 * xgettext.c: Implement -D and -f option. 4703 4704Tue Nov 7 13:44:44 1995 Ulrich Drepper <drepper@myware> 4705 4706 * Makefile.in (LIBS): One @LIBS@ must be @INTLLIBS@. 4707 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. 4711 4712 * Makefile.in (install-exec): Use `test -n' instead of 4713 `test XXX != ""'. Proposed by Fran��ois Pinard. 4714 4715Sun Nov 5 23:59:03 1995 Ulrich Drepper <drepper@myware> 4716 4717 * Makefile.in (INSTALL_PROGRAM): Do not specify mode. 4718 4719Sun Nov 5 21:13:57 1995 Ulrich Drepper <drepper@myware> 4720 4721 * xgettext.c, msgfmt.c: 4722 Comments describing what has to be done should start with FIXME. 4723 4724Sun Nov 5 19:39:56 1995 Ulrich Drepper <drepper@myware> 4725 4726 * Makefile.in (dist-gettext): Make synonym for dist. 4727 4728Sun Nov 5 18:11:15 1995 Ulrich Drepper <drepper@myware> 4729 4730 * po-lex.h (gram_error, gram_error_with_loc): 4731 Don't define macros when !__STDC__ 4732 even when using gcc. 4733 4734 * po-lex.c (gram_error, gram_error_with_loc): 4735 Compile if !__STDC__ even if using gcc. 4736 4737 * Makefile.in (po-gram.gen.c po-gram.gen.h): 4738 Remove file prior of generation. 4739 4740Sun Nov 5 11:39:21 1995 Ulrich Drepper <drepper@myware> 4741 4742 * Makefile.in (dist): Suppress error message when ln failed. 4743 Get files from $(srcdir) explicitly. 4744 4745 * xgettext.c (process_c_source): 4746 Make gettext_noop the forth builtin marker. 4747 4748Fri Nov 3 00:57:52 1995 Ulrich Drepper <drepper@myware> 4749 4750 * msgfmt.c (main): Don't free fname when no suffix was added. 4751 4752Thu Nov 2 22:55:44 1995 Ulrich Drepper <drepper@myware> 4753 4754 * Makefile.in (dist): Also remove msgcmp. 4755 4756Tue Oct 31 22:27:52 1995 Ulrich Drepper <drepper@myware> 4757 4758 * msgfmt.c: New option --strict: Only if this is given the .mo 4759 file ending is forced. 4760 4761 * msgfmt.c (message_directive): 4762 Call error_with_loc with correct parameters. 4763 4764 * msgfmt.c (message_directive): 4765 Ignores empty message does not count as fatal error. 4766 4767 * Makefile.in (po-gram.gen.c): 4768 Add g suffix to make multiple substitution in one 4769 line possible. 4770 4771Mon Oct 30 22:35:41 1995 Ulrich Drepper <drepper@myware> 4772 4773 * po-gram.h: 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 4776 we chose. 4777 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. 4782 4783Sun Oct 29 10:49:59 1995 Ulrich Drepper <drepper@myware> 4784 4785 * Makefile.in (INSTALL_SCRIPT): New variable. 4786 (install-exec): Install tupdate using INSTALL_SCRIPT to prevent error 4787 when using strip flag. 4788 4789Sat Oct 28 14:39:33 1995 Ulrich Drepper <drepper@myware> 4790 4791 * po-gram.h: Include <sys/types.h>. 4792 4793 * xgettext.c (main): 4794 Honour -n option even if --omit-header is given. By Peter Miller. 4795 4796 * msgcmp.c (check_domain_coverage): 4797 No double space in message. By Peter Miller. 4798 4799 * msgcmp.c (grammar): 4800 Close input file after coverage check. Patch by Peter Miller. 4801 4802Wed Sep 27 20:27:26 1995 Ulrich Drepper <drepper@myware> 4803 4804 * msgcmp.c: 4805 Don't try to include <string.h>. This is done in "system.h". 4806 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`. 4811 4812Tue Sep 26 10:03:29 1995 Ulrich Drepper <drepper@myware> 4813 4814 * po-gram.h (yyparse): Add redefinition to gram_parse. 4815 4816 * Makefile.in (YFLAGS): 4817 Don't use -p option. Stupid old yaccs do not know it. 4818 4819 * po-lex.c: Include po-gram.h to get redefinitions of yy* symbols. 4820 4821 * po-gram.h (yylex, yylval, yyerror): 4822 Redefine these symbols to gram_* because the 4823 yacc is now called without -p option. 4824 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. 4828 4829Mon Sep 25 22:35:55 1995 Ulrich Drepper <drepper@myware> 4830 4831 * msgfmt.c (add_mo_suffix): Fix typo. 4832 4833 * po-lex.h: Include <sys/types.h>. 4834 (lex_open): Argument is now `const char *'. 4835 4836 * msgfmt.c (add_mo_suffix): 4837 Allow .gmo suffix. Great idea by Marcus Daniels. 4838 4839Sat Sep 23 08:20:54 1995 Ulrich Drepper <drepper@myware> 4840 4841 * po-gram.y, po-lex.c: Include error.h. 4842 4843 * open-po.c (open_po_file): 4844 Remove unused variables `path_dir' and `open_po_file'. 4845 4846Thu Sep 21 15:30:36 1995 Ulrich Drepper <drepper@myware> 4847 4848 * Makefile.in (LIBS): 4849 using libnlsut.a twice is not necessary anymore. libintl.a is 4850 selfcontained. 4851 4852 * gettextp.c (main): 4853 Use dcgettext__ and bindtextdomain__ instead of __dcgettext 4854 and __bindtextdomain. 4855 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. 4859 4860Wed Sep 20 09:16:57 1995 Ulrich Drepper <drepper@myware> 4861 4862 * Makefile.in (xgettext): No also link po-gram.gen.o and po-lex.o. 4863 4864 * po-lex.c: Pretty print comments. 4865 Do some CSE in computation of hex value. 4866 4867 * xgettext.c (read_po_file): Now use the generated scanner. 4868 (domain_directive, message_directive): New functions needed for 4869 scanner. 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 4873 this case. 4874 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. 4878 4879Mon Sep 18 21:23:55 1995 Ulrich Drepper <drepper@myware> 4880 4881 * msgfmt.c (add_mo_suffix): Really check for not .mo suffix. 4882 4883 * xgettext.c (write_out_domain): 4884 Write file names in #: lines to file, not stdout. 4885 4886 * po-gram.y (grammar): 4887 Remove function. This allows sharing this file in different 4888 programs. 4889 4890 * domain.h (msg_domain): Member DOMAIN_NAME is now const. 4891 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. 4897 4898 * message.h, message.c: Initial revision 4899 4900 * msgfmt.c (grammar): Close comment so that function is seen. 4901 (message_directive): MSGID and MSGSTR are not const. 4902 4903 * msgcmp.c: Initial revision 4904 4905 * po-gram.h (message_directive): 4906 MSGID and MSGSTR argument are not const. 4907 4908 * po-gram.h (grammar): Remove prototype. Is now locally defined. 4909 4910 * po-lex.h (gram_error, gram_error_with_loc): 4911 Protect the instructions by do while (0). 4912 4913 * msgfmt.c (grammar): 4914 Define function here. This allows sharing the grammar file 4915 with the msgcmp program. 4916 4917 * msgfmt.c (domain_directive): Free memory of NAME if not needed. 4918 (new_domain): Do not duplicate filename, use it as it is. 4919 4920 * msgfmt.c (message_directive): 4921 Free parameter string memory here if necessary. 4922 Was done in po-gram.y before. 4923 4924 * po-gram.h: Remove comment after closing #endif. 4925 4926 * po-gram.h (grammar): Name parameter in prototype. 4927 4928Sun Sep 17 23:29:30 1995 Ulrich Drepper <drepper@myware> 4929 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. 4933 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. 4937 4938 * open-po.c (open_po_file): Remove unused `use_path' parameter. 4939 4940 * Makefile.in (HEADERS): Add po-gram.h and po-lex.h. 4941 4942 * po-gram.h, po-lex.h: Initial revision 4943 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 4947 and sources. 4948 (OBJECTS): Add po-gram.gen.o and po-lex.o. 4949 Add rules for new files and add to dependency list for msgfmt. 4950 4951 * po-lex.c, po-gram.y: Initial revision 4952 4953 * xgettext.c: Remove input path handling. 4954 Adapt for new hashing functions return values. 4955 4956 * msgfmt.c: 4957 Rewrite .po file handling. Use Peter Millers .po file Yacc grammar. 4958 4959 * open-po.c: Remove handling of input path. 4960 4961 * xgettext.c (write_out_domain): 4962 Split #: lines each 80 columns. Based on a patch by 4963 Peter Miller. 4964 4965 * Makefile.in: hash.[ch] moved from src/ to lib/ subdirectory. 4966 4967Wed Aug 23 21:13:11 1995 Ulrich Drepper <drepper@myware> 4968 4969 * tupdate.in: Don't print comment in front of obsolete entries. 4970 4971Tue Aug 22 22:16:31 1995 Ulrich Drepper <drepper@myware> 4972 4973 * Makefile.in (AR, RANLIB): Remove definition. Not needed here. 4974 Reported by Fran��ois Pinard. 4975 4976Sat Aug 19 17:38:22 1995 Ulrich Drepper <drepper@myware> 4977 4978 * Makefile.in (install-src): 4979 Make behave like install. I.e. really install the catalogs. 4980 4981Sat Aug 19 00:57:07 1995 Ulrich Drepper <drepper@myware> 4982 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). 4988 4989Fri Aug 18 13:02:04 1995 Ulrich Drepper <drepper@myware> 4990 4991 * Makefile.in (PROGRAMS): Add tupdate. 4992 (tupdate): New rule. Rebuild tupdate if tupdate.in or 4993 ../config.status changed. 4994 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 5000 entries). 5001 5002 * gettextp.c (usage): Better help message. 5003 (usage): Add -s description to help screen. 5004 5005Mon Aug 14 23:50:48 1995 Ulrich Drepper <drepper@myware> 5006 5007 * Makefile.in (install-src): New no-op goal. 5008 5009Thu Aug 10 11:26:45 1995 Ulrich Drepper <drepper@myware> 5010 5011 * tupdate.in: Don't print two " in front of commented out msgstrs. 5012 5013Wed Aug 9 09:10:30 1995 Ulrich Drepper <drepper@myware> 5014 5015 * hash.c: 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. 5023 5024 * msgfmt.c (write_table): 5025 Third argument to `iterate_table' is now a `const' pointer. 5026 5027 * hash.h (iterate_table): Third arguemtn is `const' pointer. 5028 5029 * xgettext.c (struct id_str): Make fields `const' pointers. 5030 5031Fri Aug 4 22:45:39 1995 Ulrich Drepper <drepper@myware> 5032 5033 * msgfmt.c (main): Fix typo: me -> we. 5034 5035 * msgfmt.c (output_file_open): Remove this unused variable. 5036 Reported by Jim Meyering. 5037 5038 * Makefile.in (dist): Remove `copying instead' message. 5039 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: 5044 -E: ignored. 5045 -e: enable expansion of some escape sequences. 5046 -d: specify text domain to use. 5047 New option: -s: enable `echo' mode. 5048 5049Thu Aug 3 18:25:37 1995 Ulrich Drepper <drepper@myware> 5050 5051 * msgfmt.c (usage): 5052 Fix typo: anormalies -> anomalies. 5053 Reported by Karl Anders O/ygard. 5054 5055Wed Aug 2 18:51:08 1995 Ulrich Drepper <drepper@myware> 5056 5057 * Makefile.in (ID, TAGS): Do not use $^. 5058 5059 * xgettext.c (write-header): Add `Content-Type' field. 5060 5061Tue Aug 1 20:07:58 1995 Ulrich Drepper <drepper@myware> 5062 5063 * Makefile.in (distclean): Remove ID file. 5064 5065 * Makefile.in (TAGS, ID): Use $^ as command argument. 5066 (TAGS): Give etags -o option t write to current directory, 5067 not $(srcdir). 5068 (ID): Use $(srcdir) instead os $(top_srcdir)/src. 5069 5070Mon Jul 31 20:57:48 1995 Ulrich Drepper <drepper@myware> 5071 5072 * msgfmt.c (process_po_file): 5073 Quote msgstr in message "empty `msgstr' entry ignored". 5074 Report by Karl Anders O/ygard. 5075 5076Sun Jul 30 12:14:29 1995 Ulrich Drepper <drepper@myware> 5077 5078 * Makefile.in (LIBS): Always use ../intl/libintl.a. 5079 (all): Always depend on ../intl/libintl.a. 5080 5081Tue Jul 25 00:15:01 1995 Ulrich Drepper <drepper@myware> 5082 5083 * msgfmt.c (process_po_file): Correct problem with empty lines. 5084 5085Sun Jul 23 22:47:56 1995 Ulrich Drepper <drepper@myware> 5086 5087 * msgfmt.c (process_po_file): 5088 Give a message when a sole msgid is found at the end of file. 5089 5090Wed Jul 19 01:52:13 1995 Ulrich Drepper <drepper@myware> 5091 5092 * Makefile.in (PROGRAMS): Always compile all three programs. 5093 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 5099 dgettext resp. 5100 Swap arguments in bindtextdomain call. 5101 5102Tue Jul 18 23:57:16 1995 Ulrich Drepper <drepper@myware> 5103 5104 * xgettext.c (add_id_str): 5105 `free(msgstr)' can fail on system not allowing free(0). 5106 Reported by Francesco Potorti`. 5107 5108Tue Jul 18 19:43:41 1995 Ulrich Drepper <drepper@myware> 5109 5110 * xgettext.c (getpwuid): 5111 Define prototype if !defined _POSIX_VERSION. 5112 5113 * hash.c: Don't include malloc.h and string.h because it will be 5114 done in system.h. 5115 5116 * msgfmt.c: Don't include malloc.h because it will be done in 5117 system.h. 5118 5119Sat Jul 15 00:45:31 1995 Ulrich Drepper <drepper@myware> 5120 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. 5124 5125 * Makefile.in (DISTFILES): 5126 Due shorted file names now distribute tupdate.in. 5127 (install, clean): Handle tupdate, not tupdate.perl. 5128 5129 * tupdate.in: Rename tupdate.perl.in to tupdate.in to fit in 14 5130 character file systems. 5131 5132Thu Jul 13 22:21:22 1995 Ulrich Drepper <drepper@myware> 5133 5134 * Makefile.in (install): Test whether Perl was found before 5135 installing. 5136 5137 * tupdate.perl.in: Make die message more GNU-like. 5138 5139 * gettextp.c (usage): 5140 Protect prototypes with __P and use K&R form for parameters. 5141 5142 * xgettext.c (main): 5143 Don't use 100u; poor K&R compilers need (unsigned) 100. 5144 5145 * open-po.c (xstrdup): Protect prototype with __P. 5146 5147 * msgfmt.c (usage, new_domain, process_po_file, compare_id, 5148 write_table, check_pair): Protect prototypes with __P. 5149 5150 * hash.c (xmalloc): Protect prototype with __P. 5151 5152Thu Jul 13 01:39:47 1995 Ulrich Drepper <drepper@myware> 5153 5154 * Makefile.in (check): New no-op goal. 5155 5156Wed Jul 12 10:40:54 1995 Ulrich Drepper <drepper@myware> 5157 5158 * tupdate.perl.in: Implement --help and --version options 5159 5160 * xgettext.c: Add --string-limit option to specify limit on string 5161 length. 5162 Only warned when verbose mode is selected. 5163 Add --verbose option. 5164 Help message now correctly says --version == -V. 5165 5166Tue Jul 11 22:57:54 1995 Ulrich Drepper <drepper@myware> 5167 5168 * xgettext.c (usage): Split help string because it breaks 1024 5169 byte limit. 5170 5171 * Makefile.in (install-exec): Install tupdate. 5172 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 5178 gencat program. 5179 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. 5184 5185 * Makefile.in (DISTFILES,distclean): tupdate.perl is now found here. 5186 5187Tue Jul 11 01:31:03 1995 Ulrich Drepper <drepper@myware> 5188 5189 * Makefile.in: msgfmt.o depends on ../lib/printf.h. 5190 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!). 5194 5195 * open-po.c: Protect inclusion of string.h and stdlib.h. 5196 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. 5203 5204Tue Jul 4 00:39:58 1995 Ulrich Drepper <drepper@myware> 5205 5206 * xgettext.c: Don't write "Version:" field for msgid "". 5207 5208Mon Jul 3 23:02:04 1995 Ulrich Drepper <drepper@myware> 5209 5210 * xgettext.c, msgfmt.c: Better comment. 5211 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. 5221 5222 * hash.c: Include malloc.c and protect string.h inclusion. 5223 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. 5228 5229 * open-po.c: Include system.h for EXIT_FAILURE. 5230 5231 * msgfmt.c: Fix typo in !__STDC__ path. 5232 (process_po_file): Change for new .po file format. 5233 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. 5237 5238Sun Jul 2 21:31:00 1995 Ulrich Drepper <drepper@myware> 5239 5240 * gettextp.c: gettextp.c (usage): Fix typo in help message. 5241 Reported by Fran��ois Pinard. 5242 5243Sun Jul 2 02:12:41 1995 Ulrich Drepper <drepper@myware> 5244 5245 * First official release. This directory contains the 5246 source code for the programs specified in the Uniforum proposal 5247 for internationalization. 5248