12006-11-27 Bruno Haible <bruno@clisp.org> 2 3 * gettext-0.16.1 released. 4 52006-10-26 Bruno Haible <bruno@clisp.org> 6 7 * gettext-0.16 released. 8 92006-10-24 Bruno Haible <bruno@clisp.org> 10 11 * Makefile.am (AM_CPPFLAGS): Add also $(top_srcdir). Needed so that 12 woe32dll/export.h is found while compiling gettextsrc-exports.c in a 13 VPATH build. 14 Reported by Charles Wilson <cygwin@cwilson.fastmail.fm>. 15 162006-10-24 Bruno Haible <bruno@clisp.org> 17 18 * msgmerge.c (struct definitions_ty): Remove semicolon after 19 gl_lock_define invocation. 20 212006-10-21 Bruno Haible <bruno@clisp.org> 22 23 * po-error.h (po_error, po_error_at_line): Use format attribute only 24 with gcc >= 3.1. 25 262006-10-21 Bruno Haible <bruno@clisp.org> 27 28 * msgmerge.c (struct definitions_ty): Use gl_lock_define to declare 29 the findex_init_lock field. 30 (definitions_init): Use gl_lock_init to initialize it, instead of 31 memcpy hack. 32 332006-10-16 Bruno Haible <bruno@clisp.org> 34 35 Work around automake-1.10 problem described in 36 http://lists.gnu.org/archive/html/bug-automake/2006-08/msg00025.html. 37 * Makefile.am (CXXLINK): Remove variable. 38 (msgmerge_CXXFLAGS): New variable. 39 (libgettextsrc_la_LINK, msgattrib_LINK, msgcat_LINK, msgcomm_LINK, 40 msgconv_LINK, msgen_LINK, msgfilter_LINK, msggrep_LINK, msgmerge_LINK, 41 msguniq_LINK, xgettext_LINK): New variables. 42 432006-10-18 Bruno Haible <bruno@clisp.org> 44 45 * read-po.h (input_format_po): Mark as DLL_VARIABLE. 46 * read-properties.h (input_format_properties): Likewise. 47 * read-stringtable.h (input_format_stringtable): Likewise. 48 * write-po.h (output_format_po): Likewise. 49 * write-properties.h (output_format_properties): Likewise. 50 * write-stringtable.h (output_format_stringtable): Likewise. 51 522006-10-16 Bruno Haible <bruno@clisp.org> 53 54 * gettext-po.h.in: Move to ../libgettextpo/. 55 * gettext-po.c: Move to ../libgettextpo/. 56 * Makefile.am (lib_LTLIBRARIES): Remove libgettextpo.la. 57 (nodist_include_HEADERS): Remove variable. 58 (libgettextpo_la_SOURCES, LTV_CURRENT, LTV_REVISION, LTV_AGE, 59 libgettextpo_la_LDFLAGS, libgettextpo_la_DEPENDENCIES, 60 libgettextpo_la_LDFLAGS): Remove variables. 61 (EXTRA_DIST, BUILT_SOURCES, CLEANFILES): Remove gettext-po.h support. 62 (gettext-po.h): Remove rule. 63 642006-10-18 Bruno Haible <bruno@clisp.org> 65 66 * po-error.h (__attribute__, __format__, __printf__): New macros. 67 (po_error, po_error_at_line): Declare format string argument. 68 * po-lex.h (__attribute__, __format__, __printf__): New macros. 69 (po_gram_error, po_gram_error_at_line): Declare format string argument. 70 71 * msgl-cat.c (catenate_msgdomain_list): Avoid "gcc -Wshadow" warning. 72 * msgl-check.c (formatstring_error_logger): Avoid "gcc 73 -Wmissing-format-attribute" warning. 74 (check_pair): Avoid "gcc -Wshadow" warning. 75 76 * read-stringtable.c (stringtable_parse): Pass a mutable string as 77 msgstr to po_callback_message. 78 * write-po.c (msgdomain_list_print_po): Avoid "gcc -Wwrite-strings" 79 warning. 80 * xgettext.c (remember_a_message_plural): Free a temporary string 81 after use. 82 832006-10-17 Bruno Haible <bruno@clisp.org> 84 85 * lang-table.c (language_table): Add the most important languages that 86 have an ISO 639-2 code. 87 * msginit.c (catalogname_for_locale): Likewise. 88 892006-10-15 Bruno Haible <bruno@clisp.org> 90 91 * read-catalog-abstract.h (input_syntax_ty): Remove type. 92 (catalog_input_format): New structure type. 93 (catalog_input_format_ty): New type. 94 (catalog_reader_parse): Change type of input_syntax argument. 95 * read-catalog.h (input_syntax): Remove variable. 96 (read_catalog_stream, read_catalog_file): Add input_syntax argument. 97 * msgl-cat.h: Include read-catalog-abstract.h. 98 (catenate_msgdomain_list): Add input_syntax argument. 99 * read-po.h: New file. 100 * read-po.c: New file, extracted from read-catalog-abstract.c. 101 * msgattrib.c: Include read-po.h, read-properties.h, read-stringtable.h. 102 (main): Change handling of --properties-input, --stringtable-input 103 options. Update read_catalog_file calls. 104 * msgcat.c: Include read-po.h, read-properties.h, read-stringtable.h. 105 (main): Change handling of --properties-input, --stringtable-input 106 options. Update catenate_msgdomain_list call. 107 * msgcmp.c: Include read-po.h, read-properties.h, read-stringtable.h. 108 (main): Change handling of --properties-input, --stringtable-input 109 options. Update compare call. 110 (compare): Add input_syntax argument. 111 * msgcomm.c: Include read-po.h, read-properties.h, read-stringtable.h. 112 (main): Change handling of --properties-input, --stringtable-input 113 options. Update catenate_msgdomain_list call. 114 * msgconv.c: Include read-po.h, read-properties.h, read-stringtable.h. 115 (main): Change handling of --properties-input, --stringtable-input 116 options. Update read_catalog_file call. 117 * msgen.c: Include read-po.h, read-properties.h, read-stringtable.h. 118 (main): Change handling of --properties-input, --stringtable-input 119 options. Update read_catalog_file call. 120 * msgexec.c: Include read-po.h, read-properties.h, read-stringtable.h. 121 (main): Change handling of --properties-input, --stringtable-input 122 options. Update read_catalog_file call. 123 * msgfilter.c: Include read-po.h, read-properties.h, read-stringtable.h. 124 (main): Change handling of --properties-input, --stringtable-input 125 options. Update read_catalog_file call. 126 * msgfmt.c: Include read-po.h, read-properties.h, read-stringtable.h. 127 (main): Change handling of --properties-input, --stringtable-input 128 options. Update read_catalog_file_msgfmt call. 129 (read_catalog_file_msgfmt): Add input_syntax argument. 130 * msggrep.c: Include read-po.h, read-properties.h, read-stringtable.h. 131 (main): Change handling of --properties-input, --stringtable-input 132 options. Update read_catalog_file call. 133 * msginit.c: Include read-po.h, read-properties.h, read-stringtable.h. 134 (main): Change handling of --properties-input, --stringtable-input 135 options. Update read_catalog_file call. 136 * msgl-cat.c (catenate_msgdomain_list): Add input_syntax argument. 137 * msgmerge.c: Include read-po.h, read-properties.h, read-stringtable.h. 138 (main): Change handling of --properties-input, --stringtable-input 139 options. Update merge call. 140 (compendium): Read it in PO syntax. 141 (merge): Add input_syntax argument. 142 * msguniq.c: Include read-po.h, read-properties.h, read-stringtable.h. 143 (main): Change handling of --properties-input, --stringtable-input 144 options. Update catenate_msgdomain_list call. 145 * read-catalog-abstract.c: Don't include po-gram.h, read-properties.h, 146 read-stringtable.h. 147 (catalog_reader_parse): Change type of input_syntax argument. Invoke 148 the parser indirectly. 149 * read-catalog.c (input_syntax): Remove variable. 150 (read_catalog_stream, read_catalog_file): Add input_syntax argument. 151 * read-csharp.c: Include read-po.h. 152 (execute_and_read_po_output): Update read_catalog_stream call. 153 * read-java.c: Include read-po.h. 154 (execute_and_read_po_output): Update read_catalog_stream call. 155 * read-properties.c (properties_parse): Make static. 156 (input_format_properties): New variable. 157 * read-properties.h (properties_parse): Remove declaration. 158 (input_format_properties): New declaration. 159 * read-resources.c: Include read-po.h. 160 (execute_and_read_po_output): Update read_catalog_stream call. 161 * read-stringtable.c (stringtable_parse): Make static. 162 (input_format_stringtable): New variable. 163 * read-stringtable.h (stringtable_parse): Remove declaration. 164 (input_format_stringtable): New declaration. 165 * read-tcl.c: Include read-po.h. 166 (msgdomain_read_tcl): Update read_catalog_stream call. 167 * x-po.c: Include read-po.h, read-properties.h, read-stringtable.h. 168 (extract): Change type of input_syntax argument. 169 (extract_po, extract_properties, extract_stringtable): Update. 170 * xgettext.c: Include read-po.h. 171 (read_exclusion_file): Read it in PO syntax. 172 * gettext-po.c: Include read-po.h. 173 (po_file_read_v3, po_file_read_v2, po_file_read): Update 174 read_catalog_stream call. 175 * Makefile.am (noinst_HEADERS): Add read-po.h. 176 (COMMON_SOURCE): Add read-po.c. 177 1782006-10-15 Bruno Haible <bruno@clisp.org> 179 180 * read-catalog-abstract.h (abstract_catalog_reader_ty): Renamed from 181 abstract_po_reader_ty. 182 (abstract_catalog_reader_class_ty): Renamed from 183 abstract_po_reader_class_ty. Update. 184 (ABSTRACT_CATALOG_READER_TY): Renamed from ABSTRACT_PO_READER_TY. 185 Update. 186 (abstract_catalog_reader_ty): Renamed from abstract_po_reader_ty. 187 Update. 188 (catalog_reader_alloc): Renamed from po_reader_alloc. 189 (catalog_reader_parse): Renamed from po_scan. 190 (catalog_reader_free): Renamed from po_reader_free. 191 * read-catalog.h: Update. 192 (default_catalog_reader_class_ty): Renamed from 193 default_po_reader_class_ty. 194 (DEFAULT_CATALOG_READER_TY): Renamed from DEFAULT_PO_READER_TY. Update. 195 (default_catalog_reader_ty): Renamed from default_po_reader_ty. Update. 196 (default_constructor, default_destructor, default_parse_brief, 197 default_parse_debrief, default_directive_domain, 198 default_directive_message, default_comment, default_comment_dot, 199 default_comment_filepos, default_comment_special, default_set_domain, 200 default_add_message): Update. 201 (default_catalog_reader_alloc): Renamed from default_po_reader_alloc. 202 Update. 203 (read_catalog_stream): Renamed from read_po. 204 (read_catalog_file): Renamed from read_po_file. 205 * open-catalog.h (open_catalog_file): Renamed from open_po_file. 206 * msgattrib.c: Update. 207 (main): Update. 208 * msgcat.c: Update. 209 * msgcmp.c: Update. 210 (compare): Update. 211 * msgcomm.c: Update. 212 * msgconv.c: Update. 213 (main): Update. 214 * msgen.c: Update. 215 (main): Update. 216 * msgexec.c: Update. 217 (main): Update. 218 * msgfilter.c: Update. 219 (main): Update. 220 * msgfmt.c: Update. 221 (read_catalog_file_msgfmt): Renamed from read_po_file_msgfmt. Update. 222 (main): Update. 223 (msgfmt_catalog_reader_ty): Renamed from msgfmt_po_reader_ty. Update. 224 (msgfmt_constructor, msgfmt_parse_debrief, msgfmt_set_domain, 225 msgfmt_add_message, msgfmt_frob_new_message, msgfmt_comment_special, 226 msgfmt_methods): Update. 227 (read_catalog_file_msgfmt): Renamed from read_po_file_msgfmt. Update. 228 * msggrep.c: Update. 229 (main): Update. 230 * msginit.c: Update. 231 (main): Update. 232 * msgl-cat.c: Update. 233 (catenate_msgdomain_list): Update. 234 * msgmerge.c: Update. 235 (compendium, merge): Update. 236 * msguniq.c: Update. 237 * open-catalog.c: Update. 238 (try_open_catalog_file): Renamed from try_open_po_file. 239 (open_catalog_file): Renamed from open_po_file. Update. 240 * po-gram-gen.y: Update. 241 * read-catalog-abstract.c: Update. 242 (callback_arg): Update. 243 (catalog_reader_alloc): Renamed from po_reader_alloc. 244 (catalog_reader_free): Renamed from po_reader_free. 245 (call_parse_brief, call_parse_debrief, call_directive_domain, 246 call_directive_message, call_comment, call_comment_dot, 247 call_comment_filepos, call_comment_special): Update. 248 (parse_start): Renamed from po_scan_start. 249 (parse_end): Renamed from po_scan_end. 250 (catalog_reader_parse): Renamed from po_scan. 251 * read-catalog.c: Update. 252 (call_set_domain, call_add_message, call_frob_new_message): Update. 253 (default_constructor, default_destructor, default_parse_brief, 254 default_parse_debrief, default_copy_comment_state, 255 default_reset_comment_state, default_directive_domain, 256 default_directive_message, default_comment, default_comment_dot, 257 default_comment_filepos, default_comment_special, default_set_domain, 258 default_add_message, default_methods): Update. 259 (default_catalog_reader_alloc): Renamed from default_po_reader_alloc. 260 (read_catalog_stream): Renamed from read_po. Update. 261 (read_catalog_file): Renamed from read_po_file. Update. 262 * read-csharp.c: Update. 263 (execute_and_read_po_output): Update. 264 * read-java.c: Update. 265 (execute_and_read_po_output): Update. 266 * read-properties.c: Update. 267 (properties_parse): Update. 268 * read-properties.h: Update. 269 (properties_parse): Update. 270 * read-resources.c: Update. 271 (execute_and_read_po_output): Update. 272 * read-stringtable.c: Update. 273 (stringtable_parse): Update. 274 * read-stringtable.h: Update. 275 (stringtable_parse): Update. 276 * read-tcl.c: Update. 277 (msgdomain_read_tcl): Update. 278 * x-po.c: Update. 279 (extract_add_message, extract_methods, extract): Update. 280 * xgettext.c: Update. 281 (exclude_directive_domain, exclude_directive_message, exclude_methods, 282 read_exclusion_file): Update. 283 * xgettext.h: Update. 284 * gettext-po.c: Update. 285 (po_file_read_v3, po_file_read_v2, po_file_read): Update. 286 287 * read-catalog-abstract.h: Renamed from read-po-abstract.h. 288 * read-catalog-abstract.c: Renamed from read-po-abstract.c. 289 * read-catalog.h: Renamed from read-po.h. 290 * read-catalog.c: Renamed from read-po.c. 291 * open-catalog.h: Renamed from open-po.h. 292 * open-catalog.c: Renamed from open-po.c. 293 * Makefile.am (noinst_HEADERS, COMMON_SOURCE, libgettextsrc_la_SOURCES): 294 Update. 295 2962006-10-15 Bruno Haible <bruno@clisp.org> 297 298 * write-catalog.h: New file. 299 * write-catalog.c: New file, mostly extracted from write-po.c. 300 * write-po.h (message_page_width_set): Move declaration to 301 write-catalog.h. 302 (message_print_syntax_properties, message_print_syntax_stringtable): 303 Remove declarations. 304 (msgdomain_list_print): Move out to write-catalog.h, adding a 305 catalog_output_format_ty argument. 306 (msgdomain_list_sort_by_msgid, msgdomain_list_sort_by_filepos): Move 307 out to write-catalog.h. 308 (output_format_po): New declaration. 309 * write-po.c: Don't include fwriteerror.h, error-progname.h. 310 (page_width, message_page_width_set): Move out to write-catalog.c. 311 (use_syntax_properties): Remove variable. 312 (message_print_syntax_properties): Remove function. 313 (use_syntax_stringtable): Remove variable. 314 (message_print_syntax_stringtable): Remove function. 315 (wrap, message_print, message_print_obsolete, msgdomain_list_print_po): 316 Add page_width argument. 317 (msgdomain_list_print): Move out to write-catalog.c, adding a 318 catalog_output_format_ty argument. 319 (cmp_by_msgid, msgdomain_list_sort_by_msgid, 320 cmp_filepos, msgdomain_list_sort_filepos, 321 cmp_by_filepos, msgdomain_list_sort_by_filepos): Move out to 322 write-catalog.c. 323 (output_format_po): New variable. 324 * write-properties.h (msgdomain_list_print_properties): Remove 325 declaration. 326 (output_format_properties): New declaration. 327 * write-properties.c (msgdomain_list_print_properties): Make static. 328 (output_format_properties): New variable. 329 * write-stringtable.h (msgdomain_list_print_stringtable): Remove 330 declaration. 331 (output_format_stringtable): New declaration. 332 * write-stringtable.c (msgdomain_list_print_stringtable): Make static. 333 (output_format_stringtable): New variable. 334 * msgattrib.c: Include write-catalog.h, write-properties.h, 335 write-stringtable.h. 336 (main): Change handling of --properties-output, --stringtable-output 337 options. Pass the output_syntax to msgdomain_list_print. 338 * msgcat.c: Include write-catalog.h, write-properties.h, 339 write-stringtable.h. 340 (main): Change handling of --properties-output, --stringtable-output 341 options. Pass the output_syntax to msgdomain_list_print. 342 * msgcomm.c: Include write-catalog.h, write-properties.h, 343 write-stringtable.h. 344 (main): Change handling of --properties-output, --stringtable-output 345 options. Pass the output_syntax to msgdomain_list_print. 346 * msgconv.c: Include write-catalog.h, write-properties.h, 347 write-stringtable.h. 348 (main): Change handling of --properties-output, --stringtable-output 349 options. Pass the output_syntax to msgdomain_list_print. 350 * msgen.c: Include write-catalog.h, write-properties.h, 351 write-stringtable.h. 352 (main): Change handling of --properties-output, --stringtable-output 353 options. Pass the output_syntax to msgdomain_list_print. 354 * msgfilter.c: Include write-catalog.h, write-properties.h, 355 write-stringtable.h. 356 (main): Change handling of --properties-output, --stringtable-output 357 options. Pass the output_syntax to msgdomain_list_print. 358 * msggrep.c: Include write-catalog.h, write-properties.h, 359 write-stringtable.h. 360 (main): Change handling of --properties-output, --stringtable-output 361 options. Pass the output_syntax to msgdomain_list_print. 362 * msginit.c: Include write-catalog.h, write-properties.h, 363 write-stringtable.h. 364 (main): Change handling of --properties-output, --stringtable-output 365 options. Pass the output_syntax to msgdomain_list_print. 366 * msgmerge.c: Include write-catalog.h, write-properties.h, 367 write-stringtable.h. 368 (main): Change handling of --properties-output, --stringtable-output 369 options. Pass the output_syntax to msgdomain_list_print. 370 * msgunfmt.c: Include write-catalog.h, write-properties.h, 371 write-stringtable.h. 372 (main): Change handling of --properties-output, --stringtable-output 373 options. Pass the output_syntax to msgdomain_list_print. 374 * msguniq.c: Include write-catalog.h, write-properties.h, 375 write-stringtable.h. 376 (main): Change handling of --properties-output, --stringtable-output 377 options. Pass the output_syntax to msgdomain_list_print. 378 * xgettext.c: Include write-catalog.h, write-properties.h, 379 write-stringtable.h. 380 (output_syntax): Change type to catalog_output_format_ty. 381 (main): Update. Pass the output_syntax to msgdomain_list_print. 382 (finalize_header): Update. 383 * gettext-po.c: Include write-catalog.h. 384 (po_file_write): Specify PO syntax. 385 * Makefile.am (noinst_HEADERS): Add write-catalog.h. 386 (libgettextsrc_la_SOURCES): Add write.catalog.c. 387 3882006-10-05 Bruno Haible <bruno@clisp.org> 389 390 * lang-table.c (language_table): Add Adangme, Kashubian. Fix the 391 names of Western Frisian, Marshallese, Sinhala. 392 * msginit.c (catalogname_for_locale): Add entries for Kashubian, 393 Western Frisian, South Ndebele. Change entry for Serbian from sr_CS to 394 sr_RS. 395 3962006-10-06 Bruno Haible <bruno@clisp.org> 397 398 * write-java.c (msgdomain_write_java): Use fopen_temp, fwriteerror_temp 399 instead of fopen, fwriteerror. 400 * write-csharp.c (msgdomain_write_csharp): Likewise. 401 4022006-10-06 Bruno Haible <bruno@clisp.org> 403 404 * Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 3:0:3. 405 4062006-10-03 Bruno Haible <bruno@clisp.org> 407 408 * message.h (struct message_ty): New fields prev_msgctxt, prev_msgid, 409 prev_msgid_plural. 410 * message.c (message_alloc): Initialize the prev_msg* fields. 411 (message_free): Free the prev_msg* fields. 412 (message_copy): Copy the prev_msg* fields. 413 * msgl-ascii.c (is_ascii_message): Consider also the prev_msg* fields. 414 * msgl-cat.c (catenate_msgdomain_list): Copy the prev_msg* fields if 415 a message is copied, not merged. 416 * msgl-equal.c (message_equal): Consider also the prev_msg* fields. 417 * msgl-iconv.c (convert_prev_msgid): New function. 418 (iconv_message_list): Call it. 419 iconvable_prev_msgid): New function. 420 (is_message_list_iconvable): Call it. 421 422 * po-lex.c (po_lex_previous): New variable. 423 (lex_start, lex_end): Reset it. 424 (keyword_p): Test it. New return values PREV_MSGID, PREV_MSGID_PLURAL, 425 PREV_MSGCTXT. 426 (po_gram_lex): Recognize #| and #~| syntax. New return value 427 PREV_STRING. 428 * po-gram-gen.y (do_callback_message): Add prev_msgctxt, prev_msgid, 429 prev_msgid_plural arguments. 430 (free_message_intro): New macro. 431 (PREV_MSGCTXT, PREV_MSGID, PREV_MSGID_PLURAL, PREV_STRING): New tokens. 432 (prev, message_intro): New structures. 433 (po_file): Renamed from msgfmt. 434 (message): Pass prev_* fields around. Call free_message_intro. 435 (message_intro, prev): New rules. 436 (msg_intro): Renamed from message_intro. 437 (prev_msg_intro, prev_msgid_pluralform, prev_string_list): New rules. 438 * read-po-abstract.h (struct abstract_po_reader_class_ty): Add 439 prev_msgctxt, prev_msgid, prev_msgid_plural arguments to the 440 'directive_message' method. 441 (po_callback_message): Add prev_msgctxt, prev_msgid, 442 prev_msgid_plural arguments. 443 * read-po-abstract.c (call_directive_message, po_callback_message): Add 444 prev_msgctxt, prev_msgid, prev_msgid_plural arguments. 445 * read-po.h (struct default_po_reader_class_ty): Add prev_msgctxt, 446 prev_msgid, prev_msgid_plural arguments to the 'add_message' method. 447 (default_directive_message, default_add_message): Add prev_msgctxt, 448 prev_msgid, prev_msgid_plural arguments. 449 * read-po.c (call_add_message, default_directive_message, 450 default_add_message): Add prev_msgctxt, prev_msgid, prev_msgid_plural 451 arguments. 452 * read-properties.c (properties_parse): Update. 453 * read-stringtable.c (stringtable_parse): Update. 454 * xgettext.c (exclude_directive_message): Add prev_msgctxt, prev_msgid, 455 prev_msgid_plural arguments. 456 * x-po.c (extract_add_message): Add prev_msgctxt, prev_msgid, 457 prev_msgid_plural arguments. 458 459 * write-po.c (wrap): Add extra_indent argument. 460 (message_print, message_print_obsolete): Print the prev_msgctxt, 461 prev_msgid, prev_msgid_plural fields. Compute an extra_indent. 462 463 * msgmerge.c (keep_previous): New variable. 464 (long_options): Add --previous option. 465 (main): Handle it. 466 (usage): Document --previous option. 467 (message_merge): Add force_fuzzy argument. Set the new message's 468 prev_msg* fields. 469 (match_domain): Update. 470 * msgattrib.c (REMOVE_PREV): New enum item. 471 (long_options): Add --clear-previous option. 472 (main): Handle it. 473 (usage): Document --clear-previous option. 474 (process_message_list): Handle REMOVE_PREV. 475 * msgfmt.c (msgfmt_add_message): Add prev_msgctxt, prev_msgid, 476 prev_msgid_plural arguments. 477 * gettext-po.c (po_message_prev_msgctxt, po_message_set_prev_msgctxt, 478 po_message_prev_msgid, po_message_set_prev_msgid, 479 po_message_prev_msgid_plural, po_message_set_prev_msgid_plural): New 480 functions. 481 4822006-10-03 Bruno Haible <bruno@clisp.org> 483 484 * msgmerge.c (definitions_init): Fix initialization of fresh_lock. 485 4862006-10-03 Bruno Haible <bruno@clisp.org> 487 488 * msgcmp.c (include_fuzzies, include_untranslated): New variables. 489 (long_options): Add options --use-fuzzy, --use-untranslated. 490 (main): Handle them. 491 (usage): Document them. 492 (match_domain): Consider include_fuzzies and include_untranslated. 493 4942006-10-02 Bruno Haible <bruno@clisp.org> 495 496 * gettext-po.h.in (LIBGETTEXTPO_VERSION): Bump version number. 497 * Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 2:1:2. 498 4992006-10-01 Bruno Haible <bruno@clisp.org> 500 501 * x-perl.c (extract_balanced): Remove state argument. 502 503 * x-perl.c (extract_balanced): Remove unused variable prev_last_token. 504 505 Fix Perl parsing bug introduced between 0.14.6 and 0.15. 506 * x-perl.c (extract_balanced): Add eat_delim and comma_delim arguments. 507 Use recursion to handle the case of a keyword not followed by an 508 opening parenthesis. When a keyword is seen, set next_argparser 509 instead of modifying the argparser variable of the current recursion. 510 When seeing an opening parenthesis, distinguish the case of function 511 arguments and the case of a subexpression. Don't call collect_message 512 for unused argument positions. 513 Reported by Nicolas Fran��ois <nicolas.francois@centraliens.net>. 514 515 * x-perl.c (extract_balanced): Remove unused variable. 516 5172006-09-06 Bruno Haible <bruno@clisp.org> 518 519 * msgl-iconv.c: Include xstriconv.h instead of iconvstring.h. 520 (convert_string, convert_msgstr, iconvable_string, iconvable_msgstr): 521 Use xmem_cd_iconv instead of iconv_string. 522 * recode-sr-latin.c: Include xstriconv.h instead of iconvstring.h. 523 (process): Use xmem_cd_iconv instead of iconv_string. 524 5252006-09-04 Bruno Haible <bruno@clisp.org> 526 527 * Makefile.am (msginit_SOURCES): Add ../../gettext-runtime/intl/lock.c. 528 Reported by Aaron Williams <aaron_williams@net.com>. 529 5302006-08-28 Bruno Haible <bruno@clisp.org> 531 532 * x-scheme.c (read_object): Don't call arglist_parser_remember if 533 argparser is NULL. 534 * x-elisp.c (read_object): Likewise. 535 * x-librep.c (read_object): Likewise. 536 * x-lisp.c (read_object): Likewise. 537 Reported by Kevin Ryde <user42@zip.com.au>. 538 5392006-08-16 Bruno Haible <bruno@clisp.org> 540 541 * plural-table.c (plural_table): Put Hungarian under nplurals=2. 542 Reported by Arpad Biro <biro_arpad@yahoo.com> and 543 Gabor Kelemen <kelemeng@gnome.hu>. 544 5452006-08-16 Bruno Haible <bruno@clisp.org> 546 547 * read-mo.c: Include stdbool.h, stdlib.h, format.h. 548 (read_mo_file): Mark messages with system-dependent segments as 549 "#, c-format" or "#, objc-format", as appropriate. 550 Reported by Egmont Koblinger <egmont@uhulinux.hu>. 551 5522006-08-07 Bruno Haible <bruno@clisp.org> 553 554 * xgettext.c (remember_a_message): Use the position passed as argument 555 instead of a dummypos. 556 Reported by Paul Eggert <eggert@cs.ucla.edu>. 557 5582006-08-01 Bruno Haible <bruno@clisp.org> 559 560 Fix behaviour of msgmerge when the PO file and the compendium are 561 in different encodings. 562 * msgl-iconv.h (is_message_list_iconvable): New declaration. 563 * msgl-iconv.c (iconvable_string, iconvable_string_list, 564 iconvable_msgid, iconvable_msgstr, is_message_list_iconvable): New 565 functions. 566 * msgmerge.c: Include xallocsa.h. 567 (merge): In the case that the .pot file is ASCII, not UTF-8, convert 568 the definitions and the compendia contents to a common encoding. 569 Reported by Stanislav Brabec <sbrabec@suse.cz>. 570 5712006-07-30 Bruno Haible <bruno@clisp.org> 572 573 * Makefile.am (AM_CPPFLAGS, LDADD, libgettextsrc_la_LDFLAGS, 574 libgettextpo_la_LDFLAGS, recode_sr_latin_LDADD, RELOCATABLE_SRC_DIR, 575 RELOCATABLE_BUILD_DIR): Replace ../lib with ../gnulib-lib. 576 (JAVACOMP, CSHARPCOMP): Remove lib/ from pathname. 577 5782006-07-30 Bruno Haible <bruno@clisp.org> 579 580 * msgl-cat.c: Include c-strstr.h instead of strstr.h. 581 (catenate_msgdomain_list): Use c_strstr instead of strstr. 582 * msgl-charset.c: Include c-strstr.h instead of strstr.h. 583 (compare_po_locale_charsets): Use c_strstr instead of strstr. 584 * msgl-check.c: Include c-strstr.h instead of strstr.h. 585 (plural_help, check_plural, check_header_entry): Use c_strstr instead 586 of strstr. 587 * msgl-iconv.c: Include c-strstr.h instead of strstr.h. 588 (iconv_message_list): Use c_strstr instead of strstr. 589 * po-charset.c: Include c-strstr.h instead of strstr.h. 590 (po_lex_charset_set): Use c_strstr instead of strstr. 591 * write-po.c: Include c-strstr.h instead of strstr.h. 592 (msgdomain_list_print_po): Use c_strstr instead of strstr. 593 * write-stringtable.c: Include c-strstr.h instead of strstr.h. 594 (write_message): Use c_strstr instead of strstr. 595 * msgcmp.c: Include c-strstr.h instead of strstr.h. 596 (compare): Use c_strstr instead of strstr. 597 * msginit.c: Include c-strstr.h instead of strstr.h. 598 (content_type): Use c_strstr instead of strstr. 599 * msgmerge.c: Include c-strstr.h instead of strstr.h. 600 (message_merge, merge): Use c_strstr instead of strstr. 601 * x-python.c: Include c-strstr.h instead of strstr.h. 602 (try_to_extract_coding): Use c_strstr instead of strstr. 603 * xgettext.c: Include c-strstr.h instead of strstr.h. 604 (remember_a_message, finalize_header): Use c_strstr instead of strstr. 605 6062006-07-23 Bruno Haible <bruno@clisp.org> 607 608 Exploit CPUs with multiple execution units. 609 * msgmerge.c: Include lock.h. 610 (struct definitions_ty): Add 'findex_init_lock' field. 611 (definitions_init): Initialize it. 612 (definitions_init_findex): Ensure findex is initialized by the 613 first thread who attempts so. 614 (match_domain): Split the main loop into two. Parallelize the first 615 loop using OpenMP pragmas. 616 * Makefile.am (msgmerge_CFLAGS): New variable. 617 (msgmerge_LDADD): Add OPENMP_CFLAGS. 618 6192006-07-25 Bruno Haible <bruno@clisp.org> 620 621 * Makefile.msvc: Remove file. 622 * Makefile.am (EXTRA_DIST): Remove Makefile.msvc. 623 6242006-07-25 Bruno Haible <bruno@clisp.org> 625 626 * Makefile.vms: Remove file. 627 * Makefile.am (EXTRA_DIST): Remove Makefile.vms. 628 6292006-07-24 Bruno Haible <bruno@clisp.org> 630 631 * Makefile.am (include_HEADERS): Remove variable. 632 (nodist_include_HEADERS): New variable. 633 Suggested by Ralf Corsepius <rc040203@freenet.de>. 634 6352006-07-21 Bruno Haible <bruno@clisp.org> 636 637 * gettext-0.15 released. 638 6392006-07-20 Bruno Haible <bruno@clisp.org> 640 641 * gettext-po.h.in (LIBGETTEXTPO_VERSION): Bump version number. 642 6432006-07-20 Bruno Haible <bruno@clisp.org> 644 645 * Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 2:0:2. 646 6472006-07-14 Bruno Haible <bruno@clisp.org> 648 649 * Makefile.am (MOSTLYCLEANFILES): New variable. 650 6512006-07-02 Bruno Haible <bruno@clisp.org> 652 653 * write-csharp.c (msgdomain_write_csharp): Update. 654 * write-java.c (msgdomain_write_java): Update. 655 6562006-06-29 Bruno Haible <bruno@clisp.org> 657 658 * write-csharp.c (msgdomain_write_csharp): Update. 659 * write-java.c (msgdomain_write_java): Likewise. 660 6612006-06-28 Bruno Haible <bruno@clisp.org> 662 663 Assume <dirent.h> on all Unix platforms. Assume closedir works. 664 * msginit.c: Don't include <sys/ndir.h>, <sys/dir.h>, <ndir.h>. 665 (find_pot): Use closedir directly. 666 6672006-06-27 Bruno Haible <bruno@clisp.org> 668 669 Assume correct S_ISDIR macro. 670 * write-csharp.c: Remove test of STAT_MACROS_BROKEN. 671 * write-java.c: Likewise. 672 6732006-04-14 Bruno Haible <bruno@clisp.org> 674 675 Assume autoconf >= 2.60. 676 * Makefile.am (localedir): Remove variable. 677 6782006-06-21 Bruno Haible <bruno@clisp.org> 679 680 * x-sh.c (read_word): Recognize the Bash process substitution syntax. 681 6822006-06-21 Bruno Haible <bruno@clisp.org> 683 684 * x-sh.c (read_word): Recognize $(...) and $((...)) also inside 685 double-quoted strings. 686 Reported by Michelle Konzack <linux4michelle@freenet.de>. 687 6882006-06-04 Bruno Haible <bruno@clisp.org> 689 690 * msgl-check.c (check_plural_eval): Declare 'distribution' as volatile, 691 so that it is unaffected by longjmp. 692 6932006-06-04 Bruno Haible <bruno@clisp.org> 694 695 * xgettext.c (arglist_parser_done): Cast length argument for format 696 string. 697 6982006-05-31 Bruno Haible <bruno@clisp.org> 699 700 * x-ycp.c (phase5_pushback, phase5_pushback_length): New variables. 701 (phase5_get): Renamed from x_ycp_lex. 702 (phase5_unget): New function. 703 (phase8_get): New function. 704 (extract_parenthesized): Inside i18n construct, use phase8_get 705 instead of phase5_get. 706 Reported by Karl Eichwalder <ke@suse.de>. 707 7082006-05-22 Bruno Haible <bruno@clisp.org> 709 710 * msgfilter.c: Include <sys/select.h> also on Minix. 711 Reported by Leonard den Ottolander <leonard@den.ottolander.nl>. 712 7132006-05-17 Bruno Haible <bruno@clisp.org> 714 715 Cygwin portability. 716 * hostname.c (WIN32_NATIVE): Renamed from WIN32. 717 7182006-05-16 Bruno Haible <bruno@clisp.org> 719 720 * Makefile.am (CLEANFILES): Add gettext-po.h. 721 7222006-05-16 Bruno Haible <bruno@clisp.org> 723 724 * xgettext.c (main): Use a size_t index variable for looping over the 725 files. 726 (arglist_parser_done): Fix a format string. 727 7282006-05-16 Bruno Haible <bruno@clisp.org> 729 730 * msgfilter.c (main): Change type of i. 731 7322006-05-15 Bruno Haible <bruno@clisp.org> 733 734 * Makefile.am: Test flag WOE32DLL instead of CYGWINDLL. 735 7362006-05-14 Bruno Haible <bruno@clisp.org> 737 738 * x-php.c (x_php_lex): Fix handling of here documents. 739 Reported by Ga��tan Frenoy <gaetan@frenoy.net>. 740 7412006-05-12 Bruno Haible <bruno@clisp.org> 742 743 * write-csharp.c [MINGW]: Include <io.h>. 744 (mkdir): Define using _mkdir. 745 * write-java.c [MINGW]: Include <io.h>. 746 (mkdir): Define using _mkdir. 747 7482006-05-11 Bruno Haible <bruno@clisp.org> 749 750 * gettext-po.h.in: Renamed from gettext-po.h. 751 * Makefile.am: Treat condition WOE32DLL like MINGW. Update file names. 752 (libgettextsrc_la_SOURCES, libgettextsrc_la_LDFLAGS): Modify for 753 Cygwin. 754 libgettextpo_la_SOURCES, libgettextpo_la_LDFLAGS): Likewise. 755 (BUILT_SOURCES): Add gettext-po.h. 756 (EXTRA_DIST): Add gettext-po.h.in. 757 (gettext-po.h): New rule. 758 7592006-05-11 Bruno Haible <bruno@clisp.org> 760 761 * Makefile.am (format_CFLAGS): Remove variable. 762 (format.lo): Remove variable. 763 (FORMAT_SOURCE) [MINGW]: Use ../mingw/c++format.cc instead of format.c. 764 7652006-05-09 Bruno Haible <bruno@clisp.org> 766 767 * plural-eval.h (USE_SIGINFO): Don't define on Cygwin. 768 7692006-05-02 Charles Wilson <cygwin@cwilson.fastmail.fm> 770 771 * write-mo.h: Remove DLL_VARIABLE declarations, not needed since 772 write-mo.c is not compiled into a shared library. 773 * lang-table.h: Likewise. 774 7752006-05-02 Charles Wilson <cygwin@cwilson.fastmail.fm> 776 777 * filters.h: Add C++ guards. 778 7792006-05-07 Bruno Haible <bruno@clisp.org> 780 781 * x-perl.c (extract_variable): Fix syntax error introduced on 782 2005-10-03. 783 7842006-05-07 Bruno Haible <bruno@clisp.org> 785 786 * format-awk.c: Include xvasprintf.h instead of xerror.h. 787 * format-elisp.c: Likewise. 788 * format-librep.c: Likewise. 789 * format-pascal.c: Likewise. 790 * format-php.c: Likewise. 791 * format-tcl.c: Likewise. 792 7932006-04-30 Bruno Haible <bruno@clisp.org> 794 795 * write-java.c (msgdomain_write_java): Specify source-version 1.3 and 796 require target-version 1.1. 797 7982006-04-30 Bruno Haible <bruno@clisp.org> 799 800 * msginit.c (main): Simplify by use of xasprintf(). 801 * write-java.c: Include xvasprintf.h. 802 (msgdomain_write_java): Simplify by use of xasprintf(). 803 * x-c.c: Include xvasprintf.h. 804 (phase8a_get): Simplify by use of xasprintf(). 805 * xgettext.c: Don't include stpcpy.h. 806 (remember_a_message, remember_a_message_plural): Simplify by use of 807 xasprintf(). 808 8092006-04-30 Bruno Haible <bruno@clisp.org> 810 811 * msgfmt.c: Include xvasprintf.h. 812 * msginit.c: Likewise. 813 * msgl-cat.c: Likewise. 814 * msgl-charset.c: Likewise. 815 * po-xerror.c: Likewise. 816 * x-csharp.c: Likewise. 817 * x-glade.c: Likewise. 818 * x-python.c: Likewise. 819 * xgettext.c: Likewise. 820 * format-boost.c: Include xvasprintf.h instead of xerror.h. 821 * format-c.c: Likewise. 822 * format-csharp.c: Likewise. 823 * format-gcc-internal.c: Likewise. 824 * format-java.c: Likewise. 825 * format-lisp.c: Likewise. 826 * format-perl.c: Likewise. 827 * format-python.c: Likewise. 828 * format-qt.c: Likewise. 829 * format-scheme.c: Likewise. 830 * format-ycp.c: Likewise. 831 * msgexec.c: Likewise. 832 * msgl-check.c: Likewise. 833 * msgl-iconv.c: Likewise. 834 * open-po.c: Likewise. 835 * po-charset.c: Likewise. 836 * po-lex.c: Likewise. 837 * po-time.c: Likewise. 838 * read-po-abstract.c: Likewise. 839 * read-properties.c: Likewise. 840 * read-stringtable.c: Likewise. 841 * write-po.c: Likewise. 842 8432006-04-30 Bruno Haible <bruno@clisp.org> 844 845 * msginit.c (project_id, project_id_version, get_user_email): Close 846 the FILE in case of I/O error. 847 8482006-04-30 Bruno Haible <bruno@clisp.org> 849 850 * write-java.c (msgdomain_write_java): Don't fclose the FILE after 851 fwriteerror signalled a failure. 852 * write-csharp.c (msgdomain_write_csharp): Likewise. 853 8542006-04-23 Bruno Haible <bruno@clisp.org> 855 856 * msgexec.c: Include <unistd.h> unconditionally. 857 * msgfilter.c: Likewise. 858 * msggrep.c: Likewise. 859 * msginit.c: Likewise. 860 * hostname.c: Likewise. 861 * urlget.c: Likewise. 862 8632006-04-17 Bruno Haible <bruno@clisp.org> 864 865 * Makefile.am: Use $(mkdir_p) instead of $(mkinstalldirs). 866 8672006-04-09 Bruno Haible <bruno@clisp.org> 868 869 * write-csharp.c: Include clean-temp.h. Don't include unistd.h, 870 mkdtemp.h, tmpdir.h, pathmax.h, fatal-signal.h, xallocsa.h. 871 (cleanup_list): Remove variable. 872 (cleanup): Remove function. 873 (msgdomain_write_csharp): Simplify handling of temporary directory. 874 * write-java.c: Include clean-temp.h. Don't include unistd.h, 875 mkdtemp.h, tmpdir.h, pathmax.h, fatal-signal.h. 876 (cleanup_list): Remove variable. 877 (cleanup): Remove function. 878 (msgdomain_write_java): Simplify handling of temporary directory. 879 8802006-04-03 Bruno Haible <bruno@clisp.org> 881 882 * x-glade.c (p_XML_GetCurrentLineNumber, p_XML_GetCurrentColumnNumber): 883 Declare differently for expat >= 2.0.0. 884 (load_libexpat): Search for a differently library name for expat >= 885 2.0.0. 886 (do_extract_glade): Update. 887 Reported by Mike Frysinger <vapier@gentoo.org>. 888 8892006-04-02 Bruno Haible <bruno@clisp.org> 890 891 * hostname.c: Include propername.h. 892 (main): Call proper_name. 893 * msgattrib.c: Include propername.h. 894 (main): Call proper_name. 895 * msgcat.c: Include propername.h. 896 (main): Call proper_name. 897 * msgcmp.c: Include propername.h. 898 (main): Call proper_name. 899 * msgcomm.c: Include propername.h. 900 (main): Call proper_name. 901 * msgconv.c: Include propername.h. 902 (main): Call proper_name. 903 * msgen.c: Include propername.h. 904 (main): Call proper_name. 905 * msgexec.c: Include propername.h. 906 (main): Call proper_name. 907 * msgfilter.c: Include propername.h. 908 (main): Call proper_name. 909 * msgfmt.c: Include propername.h. 910 (main): Call proper_name. 911 * msggrep.c: Include propername.h. 912 (main): Call proper_name. 913 * msginit.c: Include propername.h. 914 (main): Call proper_name. 915 * msgmerge.c: Include propername.h. 916 (main): Call proper_name. 917 * msgunfmt.c: Include propername.h. 918 (main): Call proper_name. 919 * msguniq.c: Include propername.h. 920 (main): Call proper_name. 921 * recode-sr-latin.c: Include propername.h. 922 (main): Call proper_name and proper_name_utf8. 923 * urlget.c: Include propername.h. 924 (main): Call proper_name. 925 * xgettext.c: Include propername.h. 926 (main): Call proper_name. 927 9282006-04-01 Bruno Haible <bruno@clisp.org> 929 930 * xgettext.c (main): Treat --keyword= like --keyword. 931 9322006-03-28 Bruno Haible <bruno@clisp.org> 933 934 * filters.h: New file. 935 * filter-sr-latin.c: New file, based on code from Danilo ��egan. 936 * recode-sr-latin.c: New file. 937 * msgfilter.c: Include filters.h, msgl-iconv.h, po-charset.h. 938 (filter): New variable. 939 (main): Recognize recode-sr-latin as built-in. 940 (generic_filter): New function, extracted from process_string. 941 (process_string): Call the filter. 942 * Makefile.am (bin_PROGRAMS): Add recode-sr-latin. 943 (noinst_HEADERS): Add filters.h. 944 (msgfilter_SOURCES): Add filter-sr-latin.c. 945 (recode_sr_latin_SOURCES, recode_sr_latin_LDADD, 946 recode_sr_latin_CPPFLAGS, recode_sr_latin_LDFLAGS): New variables. 947 * Makefile.msvc (PROGRAMS): Add recode-sr-latin.exe. 948 (msgfilter_OBJECTS): Add filter-sr-latin.obj. 949 (recode_sr_latin_OBJECTS): New variable. 950 (filter-sr-latin.obj, recode-sr-latin.obj): New rules. 951 (recode-sr-latin.exe): New rule. 952 (install): Also install recode-sr-latin.exe. 953 (uninstall): Also uninstall recode-sr-latin.exe. 954 * Makefile.vms (PROGRAMS): Add recode-sr-latin.exe. 955 (msgfilter_OBJECTS): Add filter-sr-latin.obj. 956 (recode_sr_latin_OBJECTS): New variable. 957 (filter-sr-latin.obj, recode-sr-latin.obj): New rules. 958 (recode-sr-latin.exe): New rule. 959 (install): Also install recode-sr-latin.exe. 960 (uninstall): Also uninstall recode-sr-latin.exe. 961 9622006-03-28 Bruno Haible <bruno@clisp.org> 963 964 * msgl-iconv.c: Include iconvstring.h. Don't include <errno.h>. 965 (iconv_string): Remove function, moved to ../lib/. 966 9672006-03-19 Bruno Haible <bruno@clisp.org> 968 969 * xgettext.h (struct callshape): New field 'xcomments'. 970 (struct partial_call): New field 'xcomments'. 971 * xgettext.c (split_keywordspec): Accept the ID:ARGNUM...,"XCOMMENT" 972 syntax. 973 (insert_keyword_callshape): Store the xcomments from the new shape. 974 (arglist_parser_alloc, arglist_parser_clone): Update. 975 (arglist_parser_done): After calling remember_a_message, attach the 976 specified extracted comments. 977 * x-perl.c (extract_variable): Update. 978 Suggested by Behdad Esfahbod <behdad@cs.toronto.edu>. 979 9802006-03-19 Bruno Haible <bruno@clisp.org> 981 982 * xgettext.c (arglist_parser_done): Use error_at_line instead of error. 983 9842006-03-16 Bruno Haible <bruno@clisp.org> 985 986 * msggrep.c (grep_task): Increment size. 987 (long_options): Add --extracted-comment option. 988 (main): Handle --extracted-comment option. 989 (no_pass, usage): Update. 990 (is_message_selected_no_invert): Implement matching on extracted 991 comments. 992 Suggested by Behdad Esfahbod <behdad@cs.toronto.edu>. 993 9942006-03-16 Bruno Haible <bruno@clisp.org> 995 996 Handle GNOME glib context syntax. 997 * xgettext.h (struct callshape): Add fields argnum1_glib_context, 998 argnum2_glib_context. 999 (struct partial_call): Add fields argnum1_glib_context, 1000 argnum2_glib_context. 1001 * xgettext.c (split_keywordspec): Recognize suffix 'g' and set the 1002 argnum1_glib_context, argnum2_glib_context fields. 1003 (insert_keyword_callshape, arglist_parser_alloc, arglist_parser_clone): 1004 Update. 1005 (arglist_parser_done): When suffix 'g' was specified, split off the 1006 context from the msgid and/or msgid_plural. 1007 * x-perl.c (extract_variable): Update. 1008 Suggested by Danilo ��egan <danilo@gnome.org>. 1009 10102006-03-16 Bruno Haible <bruno@clisp.org> 1011 1012 * xgettext.c (set_format_flags_from_context): Break long line. 1013 10142006-03-11 Bruno Haible <bruno@clisp.org> 1015 1016 * message.c (fuzzy_search_goal_function): Use 'volatile double'. 1017 10182006-03-11 Bruno Haible <bruno@clisp.org> 1019 1020 Speed up msgmerge with large compendia. 1021 * message.h (message_list_free): Add keep_messages argument. 1022 (message_list_list_free): Add keep_level argument. 1023 (fuzzy_search_goal_function): New declaration. 1024 (FUZZY_THRESHOLD): New macro. 1025 * message.c (message_list_free): Add keep_messages argument. 1026 (fuzzy_search_goal_function): New function, extracted from 1027 message_list_search_fuzzy_inner. 1028 (message_list_search_fuzzy_inner): Use it. 1029 (message_list_search_fuzzy): Use symbolic value FUZZY_THRESHOLD. 1030 (message_list_list_free): Comment in. Add keep_level argument. 1031 (message_list_list_search_fuzzy): Comment out. Use symbolic value 1032 FUZZY_THRESHOLD. 1033 (msgdomain_free): Update. 1034 (msgdomain_list_search_fuzzy): Use symbolic value FUZZY_THRESHOLD. 1035 * po-charset.h: Include stddef.h. 1036 (character_iterator_t): New type. 1037 (po_charset_character_iterator): New declaration. 1038 * po-charset.c (char_iterator, euc_character_iterator, 1039 euc_jp_character_iterator, euc_tw_character_iterator, 1040 big5_character_iterator, big5hkscs_character_iterator, 1041 gbk_character_iterator, gb18030_character_iterator, 1042 shift_jis_character_iterator, johab_character_iterator, 1043 utf8_character_iterator, po_charset_character_iterator): New functions. 1044 * msgl-fsearch.h: New file. 1045 * msgl-fsearch.c: New file. 1046 * msgmerge.c: Include po-charset.h, msgl-fsearch.h. 1047 (compendium_filenames): New variable. 1048 (compendium): Also put the filename into compendium_filenames. 1049 (definitions_ty): New structure type. 1050 (definitions_init, definitions_init_findex, definitions_current_list, 1051 definitions_set_current_list, definitions_search, 1052 definitions_search_fuzzy, definitions_destroy): New functions. 1053 (match_domain): Change type of 'definitions' argument. 1054 (merge): Also convert the compendium to UTF-8. Use definitions_init, 1055 definitions_set_current_list, definitions_destroy. 1056 * msgfmt.c (main): Update. 1057 * Makefile.am (noinst_HEADERS): Add msgl-fsearch.h. 1058 (msgmerge_SOURCES): Add msgl-fsearch.c. 1059 (msgmerge_LDADD): Link with MSGMERGE_LIBM. 1060 * Makefile.msvc (msgmerge_OBJECTS): Add msgl-fsearch.obj. 1061 (msgl-fsearch.obj): New rule. 1062 * Makefile.vms (msgmerge_OBJECTS): Add msgl-fsearch.obj. 1063 (msgl-fsearch.obj): New rule. 1064 Reported by Clytie Siddall <clytie@riverland.net.au>. 1065 10662006-03-09 Bruno Haible <bruno@clisp.org> 1067 1068 * Makefile.am (CXXLINK) [!mingw]: Overwrite automake's value. Fixes 1069 unintended dependency on libstdc++ introduced on 2005-07-05. 1070 10712005-10-09 Bruno Haible <bruno@clisp.org> 1072 1073 * lang-table.h: New file. 1074 * lang-table.c: New file, extracted from msginit.c. 1075 * msginit.c: Include lang-table.h. 1076 (englishname_of_language): Use language_table. 1077 * Makefile.am (noinst_HEADERS): Add lang-table.h. 1078 (msginit_SOURCES): Add lang-table.c. 1079 * Makefile.msvc (MSGINIT_OBJECTS): Add lang-table.obj. 1080 (lang-table.obj): New rule. 1081 * Makefile.vms (MSGINIT_OBJECTS): Add lang-table.obj. 1082 (lang-table.obj): New rule. 1083 10842006-02-12 Bruno Haible <bruno@clisp.org> 1085 1086 * message.h (format_type): New enum value 'format_boost'. 1087 (NFORMATS): Increment. 1088 * message.c (format_language): Add format_boost entry. 1089 (format_language_pretty): Likewise. 1090 * format.h (formatstring_boost): New declaration. 1091 * format-boost.c: New file, based on format-c.c. 1092 * format.c (formatstring_parsers): Add formatstring_boost. 1093 * x-c.c (init_flag_table_c): Also register flags for boost-format. 1094 * xgettext.c (flag_table_cxx_qt, flag_table_cxx_boost): New variables. 1095 (recognize_format_boost): New variable. 1096 (main): Handle --boost option. 1097 (usage): Document --boost option. 1098 (xgettext_record_flag): Also fill flag_table_cxx_qt, 1099 flag_table_cxx_boost. 1100 (remember_a_message, remember_a_message_plural): In the heuristics, 1101 don't mark a string as c-format that is already known to be a qt-format 1102 or boost-format. 1103 (language_to_extractor): Use a flag_table_cxx_qt or 1104 flag_table_cxx_boost that is different from flag_table_c. 1105 * Makefile.am (FORMAT_SOURCE): Add format-boost.c. 1106 * Makefile.msvc (OBJECTS): Add format-boost.obj. 1107 (format-boost.obj): New rule. 1108 * Makefile.vms (OBJECTS): Add format-boost.obj. 1109 (format-boost.obj): New rule. 1110 * FILES: Update. 1111 11122006-02-12 Bruno Haible <bruno@clisp.org> 1113 1114 * xgettext.c (xgettext_record_flag): When asked to set "qt-format", 1115 really set "qt-format", not "c-format". Fixes bug introduced on 1116 2003-10-19. 1117 11182006-02-12 Bruno Haible <bruno@clisp.org> 1119 1120 Reduce the number of false positives produced by the c-format guessing 1121 heuristics. 1122 * format.h (struct formatstring_parser): Add 'is_unlikely_intentional' 1123 field. 1124 * format-awk.c (formatstring_awk): Update. 1125 * format-c.c (struct spec): Add 'unlikely_unintentional' field. 1126 (format_parse): Set unlikely_unintentional to true when encountering 1127 a "%...%" directive other than "%%". 1128 (format_is_unlikely_intentional): New function. 1129 (formatstring_c, formatstring_objc): Use it. 1130 * format-csharp.c (formatstring_csharp): Update. 1131 * format-elisp.c (formatstring_elisp): Update. 1132 * format-gcc-internal.c (formatstring_gcc_internal): Update. 1133 * format-java.c (formatstring_java): Update. 1134 * format-librep.c (formatstring_librep): Update. 1135 * format-lisp.c (formatstring_lisp): Update. 1136 * format-pascal.c (formatstring_pascal): Update. 1137 * format-perl.c (formatstring_perl): Update. 1138 * format-perl-brace.c (formatstring_perl_brace): Update. 1139 * format-php.c (format_php): Update. 1140 * format-python.c (formatstring_python): Update. 1141 * format-qt.c (formatstring_qt): Update. 1142 * format-scheme.c (formatstring_scheme): Update 1143 * format-sh.c (formatstring_sh): Update. 1144 * format-tcl.c (formatstring_tcl): Update. 1145 * format-ycp.c (formatstring_ycp, formatstring_smalltalk): Update. 1146 * xgettext.c (remember_a_message, remember_a_message_plural): Don't 1147 mark the message as c-format if the validity as c-format looks 1148 unintentional. 1149 11502006-02-12 Bruno Haible <bruno@clisp.org> 1151 1152 * msgattrib.c (main): Update year in --version output. 1153 * msgcat.c (main): Likewise. 1154 * msgcmp.c (main): Likewise. 1155 * msgcomm.c (main): Likewise. 1156 * msgconv.c (main): Likewise. 1157 * msgen.c (main): Likewise. 1158 * msgexec.c (main): Likewise. 1159 * msgfilter.c (main): Likewise. 1160 * msgfmt.c (main): Likewise. 1161 * msggrep.c (main): Likewise. 1162 * msginit.c (main): Likewise. 1163 * msgmerge.c (main): Likewise. 1164 * msgunfmt.c (main): Likewise. 1165 * msguniq.c (main): Likewise. 1166 * xgettext.c (main): Likewise. 1167 11682006-01-25 Bruno Haible <bruno@clisp.org> 1169 1170 * x-php.c (x_php_lex): Treat byte values >= 127 like alphabetic. 1171 Reported by Hagen Fritsch <itooktheredpill@gmx.de>. 1172 11732005-12-25 Bruno Haible <bruno@clisp.org> 1174 1175 Tell Python developers to use named arguments in format strings. 1176 * format.h (get_python_format_unnamed_arg_count): New declaration. 1177 * format-python.c (get_python_format_unnamed_arg_count): New function. 1178 * xgettext.c (warn_format_string): New function. 1179 (remember_a_message, remember_a_message_plural): Call it. 1180 Suggested by Martin von L��wis. 1181 11822005-12-07 Bruno Haible <bruno@clisp.org> 1183 1184 * msgl-iconv.c (iconv_message_list): Fix syntax error. 1185 Reported by Dave Patton <dpatton@confluence.org>. 1186 11872005-12-04 Bruno Haible <bruno@clisp.org> 1188 1189 * Makefile.am (CSHARPCOMPFLAGS): Use value set by csharpcomp.m4. 1190 11912005-11-29 Colin Watson <cjwatson@ubuntu.com> 1192 1193 * msggrep.c (invert_match): New variable. 1194 (long_options): Add --invert-match option. 1195 (main): Handle --invert-match option. 1196 (usage): Document --invert-match option. 1197 (is_message_selected_no_invert): New function, extracted from 1198 is_message_selected. 1199 (is_message_selected): Call it. Handle match inversion. 1200 12012005-11-01 Bruno Haible <bruno@clisp.org> 1202 1203 * write-csharp.c (write_csharp_code): Add culture_name argument. 1204 Emit an AssemblyCulture note for it. 1205 (msgdomain_write_csharp): Update. 1206 Suggested by Pepa <cerna.zelva@seznam.cz>. 1207 12082005-10-09 Bruno Haible <bruno@clisp.org> 1209 1210 * plural-eval.h: New file. 1211 * plural-eval.c: Include plural-eval.h. 1212 (sigfpe_exit, sigfpe_code, sigfpe_handler, install_sigfpe_handler, 1213 uninstall_sigfpe_handler): New definitions, moved here from 1214 msgl-check.c. 1215 * msgl-check.c: Include plural.eval.h. 1216 (sigjmp_buf, sigsetjmp, siglongjmp, USE_SIGINFO): Move to plural-eval.h. 1217 (sigfpe_exit, sigfpe_code, sigfpe_handler, install_sigfpe_handler, 1218 uninstall_sigfpe_handler): Move to plural-eval.c. 1219 * Makefile.am (noinst_HEADERS): Add plural-eval.h. 1220 12212005-10-09 Bruno Haible <bruno@clisp.org> 1222 1223 * msgl-check.c: Include c-ctype.h instead of ctype.h. 1224 (check_plural): Use c_isspace instead of isspace. 1225 * x-librep.c: Include c-ctype.h instead of ctype.h. 1226 (read_token): Use c_isxdigit instead of isxdigit. 1227 * x-rst.c: Include c-ctype.h instead of ctype.h. 1228 (extract_rst): Use c_isdigit instead of isdigit. 1229 * x-ycp.c: Don't include ctype.h. 1230 12312005-10-09 Bruno Haible <bruno@clisp.org> 1232 1233 * plural-exp.c: Renamed from plural.c. 1234 * Makefile.am (libgettextsrc_la_SOURCES): Update. 1235 12362005-10-18 Bruno Haible <bruno@clisp.org> 1237 1238 Disambiguate overloaded function calls according to argument count. 1239 * xgettext.h (struct callshape): Add field 'argtotal'. 1240 (struct partial_call): Likewise. 1241 (arglist_parser_done): Add argnum argument. 1242 * xgettext.c (split_keywordspec): Recognize NNt syntax and fill 1243 argtotal. 1244 (insert_keyword_callshape, arglist_parser_alloc, arglist_parser_clone): 1245 Update. 1246 (arglist_parser_decidedp): Compare also the argtotal if given. 1247 (arglist_parser_done): Add argnum argument. 1248 * x-awk.c (extract_parenthesized): Pass arg count to 1249 arglist_parser_done. 1250 * x-c.c (extract_parenthesized): Likewise. 1251 * x-csharp.c (extract_parenthesized): Likewise. 1252 * x-elisp.c (read_object): Likewise. 1253 * x-java.c (extract_parenthesized): Likewise. 1254 * x-librep.c (read_object): Likewise. 1255 * x-lisp.c (read_object): Likewise. 1256 * x-perl.c (extract_variable): Update. 1257 (extract_balanced): Pass arg count to arglist_parser_done. 1258 * x-php.c (extract_parenthesized): Likewise. 1259 * x-python.c (extract_parenthesized): Likewise. 1260 * x-scheme.c (read_object): Likewise. 1261 * x-sh.c (read_command): Likewise. 1262 * x-tcl.c (read_command): Likewise. 1263 Stimulated by a patch from 1264 Chusslove Illich (������������ ��������) <caslav.ilic@gmx.net>. 1265 12662005-10-09 Bruno Haible <bruno@clisp.org> 1267 1268 * msginit.c (catalogname_for_locale, language_of_locale): Drop support 1269 of CEN locale name syntax. 1270 12712005-10-05 Bruno Haible <bruno@clisp.org> 1272 1273 * format.h (check_msgid_msgstr_format): Add plural_distribution 1274 argument. 1275 * format.c (check_msgid_msgstr_format): Add plural_distribution 1276 argument. Use it for index dependent strictness. 1277 * msgl-check.h (check_message): Add plural_distribution argument. 1278 * msgl-check.c: Include xalloc.h. 1279 (check_plural_eval): Create a plural_distribution array as additional 1280 output parameter. 1281 (check_plural): Return plural_distribution array as additional output 1282 parameter. 1283 (check_pair, check_message): Add plural_distribution argument. 1284 (check_message_list): Pass the plural_distribution from check_plural 1285 to check_message. 1286 * gettext-po.c (po_message_check_format): Update. 1287 12882005-10-04 Bruno Haible <bruno@clisp.org> 1289 1290 Combine all msgfmt checks in a single place. 1291 * format.h (check_msgid_msgstr_format): Change return type to int. 1292 * format.c (check_msgid_msgstr_format): Return the number of errors. 1293 * msgl-check.h (check_plural): Remove declaration. 1294 * msgl-check.c (check_plural): Make static. Return the number of 1295 errors. 1296 (check_pair): Return the number of errors. 1297 (check_message_list): Likewise. 1298 * msgfmt.c (main): Perform the message checks here, after all files 1299 were read. Call check_message_list instead of check_plural and 1300 check_message. Emit statistics of fatal errors. 1301 (msgfmt_frob_new_message): Don't call check_message here. 1302 13032005-10-04 Bruno Haible <bruno@clisp.org> 1304 1305 * msgl-check.h (check_message_list): New declaration. 1306 * msgl-check.c (check_message_list): New function. 1307 * gettext-po.c (po_file_check_all, po_message_check_all): Call 1308 check_message_list instead of check_message and check_plural. 1309 13102005-10-04 Bruno Haible <bruno@clisp.org> 1311 1312 Fix handling of obsolete messages. 1313 * msgl-check.c (check_plural): Ignore obsolete messages. 1314 * gettext-po.c (po_file_check_all, po_message_check_all, 1315 po_message_check_format): Likewise. 1316 13172005-10-04 Bruno Haible <bruno@clisp.org> 1318 1319 * msgl-check.h (check_message): Remove msgstr_pos argument. 1320 * msgl-check.c (check_pair, check_message): Remove msgstr_pos argument. 1321 * msgfmt.c (msgfmt_frob_new_message): Update. 1322 * gettext-po.c (po_file_check_all, po_message_check_all, 1323 po_message_check_format): Update. 1324 13252005-10-03 Bruno Haible <bruno@clisp.org> 1326 1327 Add support for contexts in xgettext. 1328 * xgettext.h: Include stdbool.h. 1329 (struct callshape): New structure type. 1330 (split_keywordspec): Return a struct callshape, not two integers, 1331 by reference. 1332 (struct callshapes): New structure type. 1333 (insert_keyword_callshape): New declaration. 1334 (remember_a_message): Add msgctxt argument. 1335 (struct partial_call): New structure type. 1336 (struct arglist_parser): New structure type. 1337 (arglist_parser_alloc, arglist_parser_clone, arglist_parser_remember, 1338 arglist_parser_decidedp, arglist_parser_done): New declarations. 1339 * xgettext.c (split_keywordspec): Return a struct callshape, not two 1340 integers, by reference. Handle the notation Nc for a context argument. 1341 (insert_keyword_callshape): New function. 1342 (remember_a_message): Add msgctxt argument. Free both strings when 1343 the message is excluded. 1344 (arglist_parser_alloc, arglist_parser_clone, arglist_parser_remember, 1345 arglist_parser_decidedp, arglist_parser_done): New functions. 1346 * x-awk.c (x_awk_keyword): Use callshape API: split_keywordspec, 1347 insert_keyword_callshape. 1348 (extract_parenthesized): Replace commas_to_skip, plural_commas 1349 arguments with a single argparser argument. Use arglist_parser_* API. 1350 (extract_awk): Update. 1351 * x-c.c (add_keyword): Use callshape API: split_keywordspec, 1352 insert_keyword_callshape. 1353 (init_keywords): Register the new functions [d[c]][n]pgettext. 1354 (init_flag_table_c, init_flag_table_objc): Likewise. 1355 (struct xgettext_token_ty): Replace argnum1, argnum2 with a callshapes 1356 pointer. 1357 (x_c_lex): Update. 1358 (extract_parenthesized): Replace commas_to_skip, plural_commas 1359 arguments with a single argparser argument. Use arglist_parser_* API. 1360 (extract_whole_file): Update. 1361 * x-csharp.c (x_csharp_keyword): Use callshape API: split_keywordspec, 1362 insert_keyword_callshape. 1363 (extract_parenthesized): Replace commas_to_skip, plural_commas 1364 arguments with a single argparser argument. Use arglist_parser_* API. 1365 (extract_csharp): Update. 1366 * x-elisp.c (x_elisp_keyword): Use callshape API: split_keywordspec, 1367 insert_keyword_callshape. 1368 (read_object): Use arglist_parser_* API. 1369 * x-glade.c (start_element_handler, end_element_handler): Update. 1370 * x-java.c (x_java_keyword): Use callshape API: split_keywordspec, 1371 insert_keyword_callshape. 1372 (extract_parenthesized): Replace commas_to_skip, plural_commas 1373 arguments with a single argparser argument. Use arglist_parser_* API. 1374 (extract_java): Update. 1375 * x-librep.c (x_librep_keyword): Use callshape API: split_keywordspec, 1376 insert_keyword_callshape. 1377 (read_object): Use arglist_parser_* API. 1378 * x-lisp.c (x_lisp_keyword): Use callshape API: split_keywordspec, 1379 insert_keyword_callshape. 1380 (read_object): Use arglist_parser_* API. 1381 * x-perl.c (x_perl_keyword): Use callshape API: split_keywordspec, 1382 insert_keyword_callshape. 1383 (extract_balanced): Replace arg_sg, arg_pl arguments with arg, 1384 argparser arguments. Use arglist_parser_* API. 1385 (extract_variable, interpolate_keywords, extract_perl): Update. 1386 * x-php.c (x_php_keyword): Use callshape API: split_keywordspec, 1387 insert_keyword_callshape. 1388 (extract_parenthesized): Replace commas_to_skip, plural_commas 1389 arguments with a single argparser argument. Use arglist_parser_* API. 1390 (extract_php): Update. 1391 * x-python.c (x_python_keyword): Use callshape API: split_keywordspec, 1392 insert_keyword_callshape. 1393 (extract_parenthesized): Replace commas_to_skip, plural_commas 1394 arguments with a single argparser argument. Use arglist_parser_* API. 1395 (extract_python): Update. 1396 * x-rst.c (extract_rst): Update. 1397 * x-scheme.c (x_scheme_keyword): Use callshape API: split_keywordspec, 1398 insert_keyword_callshape. 1399 (read_object): Use arglist_parser_* API. 1400 * x-sh.c (x_sh_keyword): Use callshape API: split_keywordspec, 1401 insert_keyword_callshape. 1402 (read_word): Update. 1403 (read_command): Use arglist_parser_* API. 1404 * x-smalltalk.c (extract_smalltalk): Update. 1405 * x-tcl.c (x_tcl_keyword): Use callshape API: split_keywordspec, 1406 insert_keyword_callshape. 1407 (read_command): Use arglist_parser_* API. 1408 * x-ycp.c (extract_parenthesized): Update. 1409 14102005-10-03 Bruno Haible <bruno@clisp.org> 1411 1412 * xgettext.h (savable_comment_to_xgettext_comment): Remove 1413 declaration. 1414 (remember_a_message, remember_a_message_plural): Add a comment 1415 argument. 1416 * xgettext.c (savable_comment_to_xgettext_comment): Make static. 1417 (remember_a_message): Add comment argument. Call 1418 savable_comment_to_xgettext_comment and savable_comment_reset at the 1419 end. 1420 (remember_a_message_plural): Add comment argument. Call 1421 savable_comment_to_xgettext_comment and xgettext_comment_reset, 1422 savable_comment_reset at the end. 1423 * x-awk.c (extract_parenthesized): Pass comment to remember_a_message. 1424 * x-c.c (extract_parenthesized): Likewise. 1425 * x-csharp.c (extract_parenthesized): Likewise. 1426 * x-elisp.c (read_object): Likewise. 1427 * x-glade.c (start_element_handler, end_element_handler): Likewise. 1428 * x-java.c (extract_parenthesized): Likewise. 1429 * x-librep.c (read_object): Likewise. 1430 * x-lisp.c (read_object): Likewise. 1431 * x-perl.c (extract_variable, interpolate_keywords, extract_balanced): 1432 Likewise. 1433 * x-php.c (extract_parenthesized): Likewise. 1434 * x-python.c (extract_parenthesized): Likewise. 1435 * x-scheme.c (read_object): Likewise. 1436 * x-sh.c (read_word, read_command): Likewise. 1437 * x-smalltalk.c (extract_smalltalk): Likewise. 1438 * x-tcl.c (read_command): Likewise. 1439 * x-ycp.c (extract_parenthesized): Likewise. 1440 * x-rst.c (extract_rst): Update. 1441 14422005-10-03 Bruno Haible <bruno@clisp.org> 1443 1444 * xgettext.h (xgettext_comment_add, xgettext_comment, 1445 xgettext_comment_reset): Remove declarations. 1446 * xgettext.c (xgettext_comment_add, xgettext_comment, 1447 xgettext_comment_reset): Make static. 1448 14492005-10-03 Bruno Haible <bruno@clisp.org> 1450 1451 Use savable_comment_* API instead of xgettext_comment_* API. 1452 * x-awk.c (phase2_getc): Call savable_comment_add instead of 1453 xgettext_comment_add. 1454 (x_awk_lex): Call savable_comment_reset instead of 1455 xgettext_comment_reset. 1456 (extract_parenthesized): Call savable_comment_to_xgettext_comment and 1457 savable_comment_reset around remember_a_message. 1458 * x-elisp.c (comment_line_end): Call savable_comment_add instead of 1459 xgettext_comment_add. 1460 (read_object): Call savable_comment_reset instead of 1461 xgettext_comment_reset. Call savable_comment_to_xgettext_comment and 1462 savable_comment_reset around remember_a_message. 1463 * x-glade.c (start_element_handler, end_element_handler): Call 1464 savable_comment_to_xgettext_comment and savable_comment_reset around 1465 remember_a_message. Call savable_comment_reset instead of 1466 xgettext_comment_reset. 1467 (comment_handler): Call savable_comment_add instead of 1468 xgettext_comment_add. 1469 * x-librep.c (comment_line_end): Call savable_comment_add instead of 1470 xgettext_comment_add. 1471 (read_object): Call savable_comment_reset instead of 1472 xgettext_comment_reset. Call savable_comment_to_xgettext_comment and 1473 savable_comment_reset around remember_a_message. 1474 * x-lisp.c (comment_line_end): Call savable_comment_add instead of 1475 xgettext_comment_add. 1476 (read_object): Call savable_comment_reset instead of 1477 xgettext_comment_reset. Call savable_comment_to_xgettext_comment and 1478 savable_comment_reset around remember_a_message. 1479 * x-perl.c (phase2_getc): Call savable_comment_add instead of 1480 xgettext_comment_add. 1481 (extract_variable, interpolate_keywords): Call 1482 savable_comment_to_xgettext_comment and savable_comment_reset around 1483 remember_a_message. 1484 (x_perl_prelex): Call savable_comment_reset instead of 1485 xgettext_comment_reset. 1486 (extract_balanced): Call savable_comment_to_xgettext_comment and 1487 savable_comment_reset around remember_a_message. 1488 * x-php.c (comment_line_end): Call savable_comment_add instead of 1489 xgettext_comment_add. 1490 (x_php_lex): Call savable_comment_reset instead of 1491 xgettext_comment_reset. 1492 (extract_parenthesized): Call savable_comment_to_xgettext_comment and 1493 savable_comment_reset around remember_a_message. 1494 * x-scheme.c (comment_line_end): Call savable_comment_add instead of 1495 xgettext_comment_add. 1496 (read_object): Call savable_comment_reset instead of 1497 xgettext_comment_reset. Call savable_comment_to_xgettext_comment and 1498 savable_comment_reset around remember_a_message. 1499 * x-sh.c (comment_line_end): Call savable_comment_add instead of 1500 xgettext_comment_add. 1501 (read_word): Call savable_comment_reset instead of 1502 xgettext_comment_reset. Call savable_comment_to_xgettext_comment and 1503 savable_comment_reset around remember_a_message. 1504 (read_command): Call savable_comment_to_xgettext_comment and 1505 savable_comment_reset around remember_a_message. 1506 * x-smalltalk.c (comment_line_end): Call savable_comment_add instead of 1507 xgettext_comment_add. 1508 (phase2_get): Call savable_comment_reset instead of 1509 xgettext_comment_reset. 1510 (extract_smalltalk): Call savable_comment_to_xgettext_comment and 1511 savable_comment_reset around remember_a_message. 1512 * x-tcl.c (comment_line_end): Call savable_comment_add instead of 1513 xgettext_comment_add. 1514 (read_word): Call savable_comment_reset instead of 1515 xgettext_comment_reset. 1516 (read_command): Call savable_comment_to_xgettext_comment and 1517 savable_comment_reset around remember_a_message. 1518 * x-ycp.c (phase2_getc): Call savable_comment_add instead of 1519 xgettext_comment_add. 1520 (x_ycp_lex): Call savable_comment_reset instead of 1521 xgettext_comment_reset. 1522 (extract_parenthesized): Call savable_comment_to_xgettext_comment and 1523 savable_comment_reset around remember_a_message. 1524 15252005-10-03 Bruno Haible <bruno@clisp.org> 1526 1527 * message.c (message_list_hash_insert_entry): Update. 1528 15292005-10-03 Bruno Haible <bruno@clisp.org> 1530 1531 * message.c (message_list_alloc, message_list_free, 1532 message_list_hash_insert_entry, message_list_remove_if_not, 1533 message_list_msgids_changed, message_list_search): Update. 1534 * write-qt.c (write_qm): Update. 1535 * xgettext.c (flag_context_list_table_lookup, 1536 flag_context_list_table_insert): Update. 1537 * x-awk.c (x_awk_keyword, extract_parenthesized): Update. 1538 * x-c.c (add_keyword, x_c_lex): Update. 1539 * x-csharp.c (x_csharp_keyword, extract_parenthesized: Update. 1540 * x-elisp.c (x_elisp_keyword, read_object): Update. 1541 * x-glade.c (x_glade_keyword, start_element_handler): Update. 1542 * x-java.c (x_java_keyword, extract_parenthesized): Update. 1543 * x-librep.c (x_librep_keyword, read_object): Update. 1544 * x-lisp.c (x_lisp_keyword, read_object): Update. 1545 * x-perl.c (x_perl_keyword, extract_variable, interpolate_keywords, 1546 extract_balanced): Update. 1547 * x-php.c (x_php_keyword, extract_parenthesized): Update. 1548 * x-python.c (x_python_keyword, extract_parenthesized): Update. 1549 * x-scheme.c (x_scheme_keyword, read_object): Update. 1550 * x-sh.c (x_sh_keyword, read_command): Update. 1551 * x-tcl.c (x_tcl_keyword, read_command): Update. 1552 15532005-10-01 Bruno Haible <bruno@clisp.org> 1554 1555 Support for context dependent translations in PO files. 1556 * message.h (MSGCTXT_SEPARATOR): New macro. 1557 (struct message_ty): Add 'msgctxt' field. 1558 (message_alloc): Add msgctxt argument. 1559 (is_header): New macro. 1560 (message_list_search, message_list_search_fuzzy, 1561 message_list_list_search, message_list_list_search_fuzzy, 1562 msgdomain_list_search, msgdomain_list_search_fuzzy): Add msgctxt 1563 argument. 1564 * message.c: Include xallocsa.h. 1565 (message_alloc): Add msgctxt argument. 1566 (message_copy): Update. 1567 (message_list_hash_insert_entry): New function. 1568 (message_list_append, message_list_prepend, message_list_insert_at, 1569 message_list_msgids_changed): Use it. 1570 (message_list_search): Add msgctxt argument. 1571 (message_list_search_fuzzy_inner): Likewise. 1572 (message_list_search_fuzzy): Likewise. 1573 (message_list_list_search): Likewise. 1574 (message_list_list_search_fuzzy): Likewise. 1575 * msgl-ascii.c (is_ascii_message): Also test the msgctxt. 1576 * write-po.c (message_print): Warn if some msgctxt has non-ASCII 1577 characters. Write out the msgctxt. 1578 (message_print_obsolete): Likewise. 1579 (msgdomain_list_print_po): Use is_header macro. 1580 (msgdomain_list_print): Likewise. Bail out if contexts are present and 1581 cannot be stored in the given output format. 1582 * write-properties.c (write_message): Use is_header macro. 1583 * po-lex.c: Include message.h. 1584 (keyword_p): Also recognize 'msgctxt'. 1585 (po_gram_lex): Bail out if a string contains the EOT character. 1586 * read-po-abstract.h (struct abstract_po_reader_class_ty): Add msgctxt 1587 argument to directive_message function pointer. 1588 (po_callback_message): Add msgctxt argument. 1589 * read-po-abstract.c (call_directive_message, po_callback_message): Add 1590 msgctxt argument. 1591 * po-gram-gen.y (do_callback_message): Add msgctxt argument. Use 1592 is_header macro. 1593 (MSGCTXT): New token type. 1594 (message_intro, MSGCTXT): Declare return types. 1595 (message): Use message_intro instead of just MSGID. 1596 (message_intro): New nonterminal reduction rules. 1597 * read-properties.c (properties_parse): Update. 1598 * read-stringtable.c (stringtable_parse): Update. 1599 * read-po.h (struct default_po_reader_class_ty): Add msgctxt argument 1600 to add_message field. 1601 (default_directive_message, default_add_message): Likewise. 1602 * read-po.c (call_add_message, default_directive_message, 1603 default_add_message): Add msgctxt argument. 1604 * msgl-iconv.c (convert_msgid): Also convert the msgctxt. 1605 (iconv_message_list): Use is_header macro. Test also the msgctxt for 1606 non-ASCII-ness. 1607 * msgl-cat.c (is_message_selected, is_message_needed): Use is_header 1608 macro. 1609 (catenate_msgdomain_list): Likewise. Update. 1610 * msgl-equal.c (message_equal): Likewise. Also compare the msgctxt. 1611 * msgcmp.c (is_message_selected): Use is_header macro. 1612 (match_domain): Update. 1613 (compare): Use is_header macro. 1614 * msgmerge.c (message_merge, match_domain): Use is_header macro. 1615 Update. 1616 (merge): Update. 1617 * msgattrib.c (is_message_selected): Use is_header macro. 1618 (process_message_list): Likewise. Update. 1619 * msgl-charset.c (compare_po_locale_charsets): Use is_header macro. 1620 * msgexec.c (process_string): Also set or unset MSGEXEC_MSGCTXT 1621 variable. 1622 * msgfilter.c (process_message): Use is_header macro. 1623 * msggrep.c (grep_task): Increase size from 3 to 4. 1624 (long_options): Add --msgctxt option. 1625 (main): Accept -J/--msgctxt option. Update grep_pass numbers. 1626 (no_pass): Update. 1627 (usage): Mention -J option. 1628 (is_message_selected): Use is_header macro. Perform a new grep pass on 1629 the msgctxt. 1630 * msginit.c (fill_header): Use is_header macro. Update. 1631 (update_msgstr_plurals): Update. 1632 * read-mo.c (read_mo_file): Split msgid into msgctxt and msgid. Update. 1633 * read-tcl.c (msgdomain_read_tcl): Use is_header macro. 1634 * msgl-check.c (check_plural): Update. 1635 (check_message): Use is_header macro. 1636 * write-mo.c (write_table): Write msgid with msgctxt, instead of just 1637 the msgid. 1638 * write-java.c: Include xerror.h. 1639 (write_java_code): Update. 1640 (msgdomain_write_java): Give error if some entries have a context. 1641 * write-csharp.c: Include xerror.h. 1642 (write_csharp_code): Update. 1643 (msgdomain_write_csharp): Give error if some entries have a context. 1644 * write-resources.c (msgdomain_write_csharp_resources): Bail out if 1645 contexts are present and cannot be stored in the given output format. 1646 * write-tcl.c (write_msg): Use is_header macro. 1647 (msgdomain_write_tcl): Bail out if contexts are present and cannot be 1648 stored in the given output format. 1649 * write-qt.c: Include hash.h. 1650 (write_qm): Use is_header macro. Write out msgctxt if present. Write 1651 a contexts section if appropriate. 1652 * msgfmt.c (msgfmt_add_message): Add msgctxt argument. 1653 (msgfmt_frob_new_message): Use is_header macro. 1654 * xgettext.c (exclude_directive_message): Add msgctxt argument. 1655 (remember_a_message, construct_header, finalize_header): Update. 1656 * x-po.c (extract_add_message): Add msgctxt argument. Update. 1657 (extract): Update. 1658 * gettext-po.h (po_message_msgctxt, po_message_set_msgctxt): New 1659 declarations. 1660 * gettext-po.c (po_file_domain_header): Use is_header macro. 1661 (po_message_create): Update. 1662 (po_message_msgctxt, po_message_set_msgctxt): New functions. 1663 (po_message_check_all): Use is_header macro. 1664 16652005-10-01 Bruno Haible <bruno@clisp.org> 1666 1667 Avoid a crash when msgcat or msgconv is asked to convert a non-ASCII 1668 msgid. 1669 * msgl-iconv.h (iconv_message_list): Change return type to boolean. 1670 * msgl-iconv.c (iconv_message_list): Likewise. Return true if some 1671 msgids change. 1672 * msgl-cat.c (catenate_msgdomain_list): Exit with an error message if 1673 the msgids change through charset conversion. 1674 16752005-10-04 Bruno Haible <bruno@clisp.org> 1676 1677 * format.c: Include stdbool.h. 1678 (check_msgid_msgstr_format): Enable strict checking also when 1679 msgid_plural is present but nplurals = 1. 1680 Reported by Farzaneh Sarafraz <farzaneh@farsiweb.info>. 1681 16822005-10-01 Bruno Haible <bruno@clisp.org> 1683 1684 Change msgattrib to no longer remove extracted comments and file 1685 positions when marking messages obsolete. 1686 * msgmerge.c (merge): When marking a message obsolete, remove the 1687 extracted comments and file positions. 1688 * write-po.c (message_print_obsolete): Also print the extracted 1689 comments and file positions. 1690 16912005-09-25 Bruno Haible <bruno@clisp.org> 1692 1693 Support for Python source encodings (PEP 0263). 1694 * x-python.c: Include progname.h, basename.h, xerror.h, strstr.h, 1695 c-ctype.h, utf8-ucs4.h. 1696 (phase1_pushback): Reduce size. 1697 (UEOF): New macro. 1698 (phase2_pushback, phase2_pushback_length): New variables. 1699 (phase2_getc, phase2_ungetc): New functions. 1700 (struct unicode_string_buffer): New structure type. 1701 (init_unicode_string_buffer, unicode_string_buffer_append_unicode_grow, 1702 unicode_string_buffer_append_unicode, unicode_string_buffer_result, 1703 free_unicode_string_buffer): New functions. 1704 (comment_buffer): New variable. 1705 (buffer, bufmax, buflen): Remove variables. 1706 (comment_start, comment_add, comment_line_end): Rewritten. 1707 (comment_at_start): New function. 1708 (xgettext_current_file_source_encoding): New variable. 1709 (xgettext_current_file_source_iconv): New variable. 1710 (set_current_file_source_encoding, try_to_extract_coding): New 1711 functions. 1712 (continuation_or_nonblank_line): New variable. 1713 (phase3_getc): Renamed from phase2_getc. Use phase2_getc instead of 1714 phase1_getc. Return a Unicode character. Call try_to_extract_coding 1715 when seeing a comment among the first two lines. 1716 (phase3_ungetc): Renamed from phase2_ungetc. Use phase2_ungetc instead 1717 of phase1_ungetc. 1718 (UNICODE, IS_UNICODE, UNICODE_VALUE): New macros. 1719 (struct mixed_string_buffer): New structure type. 1720 (init_mixed_string_buffer, mixed_string_buffer_append_byte, 1721 mixed_string_buffer_append_unicode_grow, 1722 mixed_string_buffer_append_unicode, 1723 mixed_string_buffer_flush_utf16_surr, 1724 mixed_string_buffer_flush_curr_buffer, mixed_string_buffer_append, 1725 mixed_string_buffer_result, free_mixed_string_buffer): New functions. 1726 (phase7_getuc): Use phase2_getc instead of phase1_getc. Return a 1727 Unicode character except for \ooo and \xnn. 1728 (phase5_get): Operate on the level of Unicode characters instead of 1729 at the level of bytes. Use a mixed_string_buffer to accumulate a 1730 string literal. 1731 (extract_parenthesized): Set xgettext_current_source_encoding to UTF-8 1732 while passing UTF-8 strings to the xgettext main code. 1733 (extract_python): Initialize xgettext_current_file_source_encoding and 1734 xgettext_current_source_encoding. 1735 17362005-09-25 Bruno Haible <bruno@clisp.org> 1737 1738 * x-csharp.c (phase2_getc): Fix mis-use of iconv() when the source 1739 encoding is neither ASCII nor UTF-8. 1740 17412005-09-20 Bruno Haible <bruno@clisp.org> 1742 1743 * msgattrib.c (main): Invoke bindtextdomain for bison-runtime. 1744 * msgcat.c (main): Likewise. 1745 * msgcmp.c (main): Likewise. 1746 * msgcomm.c (main): Likewise. 1747 * msgconv.c (main): Likewise. 1748 * msgen.c (main): Likewise. 1749 * msgexec.c (main): Likewise. 1750 * msgfilter.c (main): Likewise. 1751 * msggrep.c (main): Likewise. 1752 * msginit.c (main): Likewise. 1753 * msgmerge.c (main): Likewise. 1754 * msgunfmt.c (main): Likewise. 1755 * msguniq.c (main): Likewise. 1756 * xgettext.c (main): Likewise. 1757 * Makefile.am (DEFS): Also define BISON_LOCALEDIR. 1758 17592005-09-17 Bruno Haible <bruno@clisp.org> 1760 1761 * msgl-check.h: New file. 1762 * msgl-check.c: New file, mostly extracted from msgfmt.c. 1763 * Makefile.am (noinst_HEADERS): Add msgl-check.h. 1764 (libgettextsrc_la_SOURCES): Add msgl-check.c, plural-eval.c. 1765 (msgfmt_SOURCES): Remove plural-eval.c. 1766 * format.c (check_msgid_msgstr_format): Add const to argument type. 1767 * format.h (check_msgid_msgstr_format): Add const to argument type. 1768 * gettext-po.c: Include msgl-check.h. 1769 (po_file_check_all, po_message_check_all): New functions. 1770 (po_xerror_logger): Remove function. 1771 (po_message_check_format): Use new check_message function. 1772 * gettext-po.h (po_file_check_all, po_message_check_all): New 1773 declarations. 1774 * msgfmt.c: Include msgl-check.h instead of setjmp.h, signal.h, 1775 stdarg.h, po-xerror.h, format.h, plural-exp.h, plural-table.h, 1776 strstr.h. 1777 (SIZEOF, sigjmp_buf, sigsetjmp, siglongjmp, USE_SIGINFO, 1778 sigfpe_exit, sigfpe_code, sigfpe_handler, install_sigfpe_handler, 1779 uninstall_sigfpe_handler, check_plural_eval, plural_help, check_plural, 1780 curr_mp, curr_msgid_pos, formatstring_error_logger, check_pair, 1781 check_header_entry): Move definitions to msgl-check.c. 1782 (main): Update. 1783 (msgfmt_frob_new_message): Call check_message instead of 1784 check_header_entry and check_pair. 1785 17862005-09-17 Bruno Haible <bruno@clisp.org> 1787 1788 Use new error handlers in libgettextpo. 1789 * gettext-po.h (PO_SEVERITY_WARNING, PO_SEVERITY_ERROR, 1790 PO_SEVERITY_FATAL_ERROR): New macros. 1791 (po_xerror_handler): New structure type. 1792 (po_xerror_handler_t): New type. 1793 (po_file_read): Change signature; version 3. 1794 (po_file_write): Change signature; version 2. 1795 (po_message_check_format): Change signature; version 2. 1796 * gettext-po.c: Include po-xerror.h. 1797 (po_file_read): New implementation. Renamed old implementation to 1798 po_file_read_v2. 1799 (po_file_write): New implementation. Keep old implementation. 1800 (po_xerror_logger): New function. 1801 (po_message_check_format): New implementation. Keep old implementation. 1802 18032005-09-17 Bruno Haible <bruno@clisp.org> 1804 1805 * msgfmt.c (check_plural): Fix broken determination of max_nplurals. 1806 18072005-09-17 Bruno Haible <bruno@clisp.org> 1808 1809 New, higher-level error message output primitives. 1810 * po-xerror.h: New file. 1811 * po-xerror.c: New file. 1812 * open-po.c: Include xerror.h, po-xerror.h, not error.h. 1813 (open_po_file): Use po_xerror instead of error. 1814 * po-charset.c: Include po-xerror.h, not po-error.h. 1815 (po_lex_charset_set): Use po_xerror instead of po_multiline_warning. 1816 * po-lex.c: Include xerror.h, po-error.h, po-xerror.h. 1817 (po_gram_error, po_gram_error_at_line): Use po_xerror instead of 1818 po_error or po_error_at_line. Don't decrement error_message_count; 1819 let the caller do this instead. 1820 (mbfile_getc, lex_getc): Use po_xerror instead of po_error. 1821 * po-lex.h: Don't include po-error.h. 1822 (po_gram_error, po_gram_error_at_line): Remove optimized macros. 1823 * read-po-abstract.c: Include xerror.h, po-xerror.h. 1824 (po_scan): Use po_xerror instead of po_error. 1825 * read-po.c: Include po-xerror.h. 1826 (default_add_message): Use po_xerror2 instead of po_gram_error_at_line 1827 pair. 1828 * read-properties.c: Include xerror.h, po-xerror.h, not exit.h. 1829 (phase1_getc, phase4_getuc): Use po_xerror instead of error. 1830 * read-stringtable.c: Include xerror.h, po-xerror.h, not exit.h. 1831 (phase1_getc, read_string, stringtable_parse): Use po_xerror instead of 1832 error. 1833 * write-po.c: Include po-xerror.h, not exit.h, po-error.h. 1834 (wrap): Pass the entire message as argument. Use po_xerror instead of 1835 po_error. 1836 (message_print, message_print_obsolete): Update. Use po_xerror instead 1837 of po_multiline_warning. 1838 (msgdomain_list_print): Use po_xerror instead of po_error or 1839 po_error_at_line. 1840 * msgl-iconv.h (struct conversion_context): Add 'message' field. 1841 * msgl-iconv.c: Include xerror.h, po-xerror.h, not error.h, exit.h. 1842 (conversion_error): Use po_xerror instead of error. 1843 (iconv_message_list): Likewise. Set the entire message in the 1844 conversion context before calling convert_*. 1845 (iconv_msgdomain_list): Use po_xerror instead of error. 1846 * xgettext.c (from_current_source_encoding): Set context.message. 1847 * msgfmt.c: Include po-xerror.h. 1848 (check_plural_eval): Pass the entire header as argument. Use po_xerror 1849 instead of error_at_line. 1850 (plural_help): New function, extracted from check_plural. 1851 (check_plural): Change type of local variables has_plural, min_pos, 1852 max_pos. Use po_xerror2 instead of error_at_line pairs. Use po_xerror 1853 instead of error_at_line. 1854 (curr_mp): New variable. 1855 (formatstring_error_logger): Use po_xerror instead of vfprintf. 1856 (check_pair): Take the entire message as argument. Use po_xerror 1857 instead of error_at_line. Set curr_mp before calling 1858 check_msgid_msgstr_format. 1859 (check_header_entry): Take the entire header message as argument. Use 1860 po_xerror instead of multiline_error. 1861 (msgfmt_frob_new_message): Update. 1862 * msgcmp.c (match_domain): Decrement error_message_count between two 1863 error messages that belong together. 1864 * msgmerge.c (match_domain): Decrement error_message_count between two 1865 error messages that belong together. 1866 * Makefile.am (noinst_HEADERS): Add po-xerror.h. 1867 (COMMON_SOURCE): Add po-xerror.c. 1868 18692005-09-16 Bruno Haible <bruno@clisp.org> 1870 1871 * gettext-po.c (po_file_read): Set gram_max_allowed_errors to a large 1872 integer, so that po_gram_error doesn't cause the program to exit(). 1873 18742005-09-14 Bruno Haible <bruno@clisp.org> 1875 1876 * x-csharp.c: Include xerror.h. 1877 18782005-09-11 Bruno Haible <bruno@clisp.org> 1879 1880 * user-email.sh.in: Add support for Mozilla Thunderbird and GNOME 1881 Evolution 2. Improve mutt support. 1882 18832005-08-26 Bruno Haible <bruno@clisp.org> 1884 1885 * plural-table.c (plural_table): Add an entry about Romanian. 1886 Explanations by Eddy Petri��or <eddy.petrisor@gmail.com>. 1887 18882005-08-23 Bruno Haible <bruno@clisp.org> 1889 1890 * write-mo.h (byteswap): New variable. 1891 * write-mo.c: Include byteswap.h. 1892 (byteswap): New variable. 1893 (BSWAP32): New macro. 1894 (write_table): If requested, byteswap all 32-bit values before writing 1895 them out. 1896 * msgfmt.c (long_options): Add --endianness. 1897 (main): Accept --endianness argument and set byteswap. 1898 18992005-08-08 Bruno Haible <bruno@clisp.org> 1900 1901 * msginit.c (catalogname_for_locale): Add support for Old English, 1902 Hyam, Jju, Tyap, Maithili, Nahuatl, Low Saxon, Northern Sotho, P��ez, 1903 Tetum, Zapotec. 1904 (englishname_of_language): Add support for Old English, Hyam, Jju, 1905 Tyap, Kagoma, Maithili, Mayan, Nahuatl, Low Saxon, Northern Sotho, 1906 P��ez, Tetum, Zapotec. 1907 19082005-05-21 Bruno Haible <bruno@clisp.org> 1909 1910 New undocumented option, used by glocale PO files. 1911 * msgfmt.c (include_fuzzies): Renamed from include_all. 1912 (include_untranslated): New variable. 1913 (long_options): Add --use-untranslated. 1914 (main): Handle --use-untranslated. 1915 (msgfmt_frob_new_message): Test include_untranslated. 1916 (msgfmt_comment_special): Update. 1917 19182005-07-26 Bruno Haible <bruno@clisp.org> 1919 1920 * user-email.sh.in (datarootdir): New variable. 1921 19222005-07-26 Bruno Haible <bruno@clisp.org> 1923 1924 Fix compilation error on systems without iconv(). 1925 * xgettext.c (convert_string): Remove fallback macro definition. 1926 (from_current_source_encoding) [!HAVE_ICONV]: Just abort here. 1927 19282005-07-17 Bruno Haible <bruno@clisp.org> 1929 1930 * po-lex.c (mb_width): Remove gcc warnings on platform with unsigned 1931 'char' type (e.g. Linux/PowerPC). 1932 Reported by Jeff Rizzo <riz@netbsd.org>. 1933 19342005-07-05 Bruno Haible <bruno@clisp.org> 1935 1936 * Makefile.am (msgmerge_SOURCES, xgettext_SOURCES, msgattrib_SOURCES, 1937 msgcat_SOURCES, msgcomm_SOURCES, msgconv_SOURCES, msgen_SOURCES, 1938 msgfilter_SOURCES, msggrep_SOURCES, msguniq_SOURCES): On mingw, use 1939 C++ source code. 1940 (libgettextsrc_la_LDFLAGS, libgettextpo_la_LDFLAGS): Use LTNOUNDEF. 1941 (format_CFLAGS): New variable. 1942 (format.lo): New rule. 1943 (msg*_CFLAGS, xgettext_CFLAGS): Remove variables. 1944 (msg*_CPPFLAGS, xgettext_CPPFLAGS): New variables. 1945 19462005-05-27 Bruno Haible <bruno@clisp.org> 1947 1948 * write-po.c (wrap): Output \a and \v as an escape sequence, like 1949 \b, \f, \r. 1950 Suggested by Asgeir Frimannsson <asgeirf@redhat.com>. 1951 19522005-05-05 Bruno Haible <bruno@clisp.org> 1953 1954 * Makefile.am (msgfmt_SOURCES): Add hash-string.c. 1955 * Makefile.msvc (msgfmt_OBJECTS): Add hash-string.obj. 1956 (hash-string.obj): New rule. 1957 * Makefile.vms (msgfmt_OBJECTS): Add hash-string.obj. 1958 (hash-string.obj): New rule. 1959 19602005-05-01 Bruno Haible <bruno@clisp.org> 1961 1962 * x-sh.c (open_singlequote_terminator): New variable. 1963 (saw_opening_singlequote): Set it. 1964 (phase2_getc): Handle the case of open_singlequote_terminator == '"'. 1965 (read_word): Likewise. Treat i18n quotes like single quotes with 1966 terminator '"'. 1967 Reported by Jakub Bogusz <qboosh@pld-linux.org>. 1968 19692005-05-01 Bruno Haible <bruno@clisp.org> 1970 1971 Improved error message. 1972 * msgl-iconv.h (struct conversion_context): New type. 1973 (convert_string): Add context argument. 1974 * msgl-iconv.c (conversion_error): New function. 1975 (convert_string, convert_string_list, convert_msgid, convert_msgstr): 1976 Add context argument. 1977 (iconv_message_list): Construct context for them. 1978 * xgettext.c (convert_string): Add context argument. 1979 (from_current_source_encoding): Construct context for convert_string. 1980 Reported by Hans Ulrich Niedermann <debian@n-dimensional.de>. 1981 19822005-04-18 Bruno Haible <bruno@clisp.org> 1983 1984 * po-lex.h (po_gram_error, po_gram_error_at_line): Test for 1985 __APPLE_CC__ > 1. Needed because gcc-4.0 defines __APPLE_CC__ and 1986 implements __VA_ARGS__ correctly. 1987 * po-lex.c (po_gram_error, po_gram_error_at_line): Likewise. 1988 * read-stringtable.c (phase2_getc): Optimize UTF-8 code. Avoids 1989 gcc-4.0 warnings. 1990 19912006-06-21 Bruno Haible <bruno@clisp.org> 1992 1993 * gettext-0.14.6 released. 1994 19952006-06-21 Bruno Haible <bruno@clisp.org> 1996 1997 * Makefile.am (CLEANFILES): Add msgfmt.net.exe.mdb, 1998 msgunfmt.net.exe.mdb. 1999 20002006-06-21 Bruno Haible <bruno@clisp.org> 2001 2002 * gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number. 2003 20042006-06-20 Bruno Haible <bruno@clisp.org> 2005 2006 * format-gcc-internal.c (struct unnumbered_arg): Remove type. 2007 (struct numbered_arg): New type. 2008 (struct spec): Use it. 2009 (isdigit): New macro. 2010 (numbered_arg_compare): New function. 2011 (format_parse, format_free, format_check, format_print): Update to 2012 GCC 4.1 internal format strings. 2013 Reported by G��ran Uddeborg <goeran@uddeborg.se>. 2014 20152005-05-23 Bruno Haible <bruno@clisp.org> 2016 2017 * gettext-0.14.5 released. 2018 20192005-05-23 Bruno Haible <bruno@clisp.org> 2020 2021 * gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number. 2022 20232005-05-21 Bruno Haible <bruno@clisp.org> 2024 2025 * format-gcc-internal.c: Update for GCC 4.0. 2026 (FAT_POINTER, FAT_SIZE_LONGLONG, FAT_SIZE_WIDE, FAT_SIZE_MASK): New 2027 enum items. 2028 (FAT_*): Update. 2029 (struct spec): Add uses_err_no field. 2030 (format_parse): Initialize uses_err_no field. Handle %q flag. Handle 2031 'll', 'w' size specifiers. Handle %<, %>, %', %m, %p, %J directives. 2032 (format_check): Also check that the use of err_no is the same. 2033 Based on a patch by Jakub Jelinek <jakub@redhat.com>. 2034 20352005-04-11 Bruno Haible <bruno@clisp.org> 2036 2037 * gettext-0.14.4 released. 2038 20392005-04-11 Bruno Haible <bruno@clisp.org> 2040 2041 * gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number. 2042 20432005-03-14 Bruno Haible <bruno@clisp.org> 2044 2045 * gettext-0.14.3 released. 2046 20472005-03-08 Bruno Haible <bruno@clisp.org> 2048 2049 * gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number. 2050 20512005-02-26 Bruno Haible <bruno@clisp.org> 2052 2053 * format-scheme.c (format_arg_type): Add FAT_COMPLEX. Remove 2054 FAT_FUNCTION. 2055 (make_intersected_element): Simplify also the intersection with 2056 FAT_COMPLEX. 2057 (make_union_element): Simplify also the union with FAT_COMPLEX. 2058 (IIC): New array. 2059 (nocheck_params): Remove function. 2060 (parse_upto): Remove handling of ~W, ~<, ~>. 2061 Implement non-CL handling of ~C, ~I, ~_, ~/, ~T. 2062 Implement handling of ~Y, ~!, ~Q, ~K. 2063 20642005-02-26 Bruno Haible <bruno@clisp.org> 2065 2066 * format-scheme.c (parse_upto): Remove support for ~!. 2067 Reported by Kevin Ryde <user42@zip.com.au>. 2068 20692005-02-24 Bruno Haible <bruno@clisp.org> 2070 2071 * gettext-0.14.2 released. 2072 20732005-02-12 Bruno Haible <bruno@clisp.org> 2074 2075 * Makefile.msvc (gettextpo.lib): Link with intl.lib as well. 2076 20772005-02-12 Bruno Haible <bruno@clisp.org> 2078 2079 * Makefile.msvc (msginit_OBJECTS): Add plural-count.obj. 2080 * Makefile.vms (msginit_OBJECTS): Add plural-count.obj. 2081 20822005-02-10 Bruno Haible <bruno@clisp.org> 2083 2084 * gettext-po.h (po_header_set_field): New declaration. 2085 * gettext-po.c (po_header_set_field): New function. 2086 Suggested by Ross Golder <ross@golder.org>. 2087 20882005-02-10 Bruno Haible <bruno@clisp.org> 2089 2090 * gettext-po.h (LIBGETTEXTPO_VERSION): New macro. 2091 (libgettextpo_version): New declaration. 2092 * gettext-po.c (libgettextpo_version): New variable. 2093 20942005-02-10 Bruno Haible <bruno@clisp.org> 2095 2096 * gettext-po.h (po_message_remove_filepos, po_message_add_filepos): New 2097 declarations. 2098 * gettext-po.c (po_message_remove_filepos, po_message_add_filepos): New 2099 functions. 2100 Suggested by Asgeir Frimannsson <asgeirf@redhat.com>. 2101 21022005-02-10 Bruno Haible <bruno@clisp.org> 2103 2104 * gettext-po.h (po_message_set_extracted_comments): New declaration. 2105 * gettext-po.c (po_message_set_extracted_comments): New function. 2106 Suggested by Asgeir Frimannsson <asgeirf@redhat.com>. 2107 21082005-02-08 Bruno Haible <bruno@clisp.org> 2109 2110 * msginit.c (get_user_email): Cast _() to 'char *', to avoid compiler 2111 warning. 2112 21132005-02-07 Bruno Haible <bruno@clisp.org> 2114 2115 Make the tools work in the tr_TR locale. 2116 * po-charset.c: Include c-strcase.h instead of strcase.h. 2117 (po_charset_canonicalize): Use c_strcasecmp. 2118 * msgcmp.c: Include c-strcase.h instead of strcase.h. 2119 (compare): Use c_strncasecmp. 2120 * msginit.c: Include c-strcase.h instead of strcase.h. 2121 (content_type): Use c_strcasecmp. 2122 * msgmerge.c: Include c-strcase.h instead of strcase.h. 2123 (message_merge, merge): Use c_strncasecmp. 2124 * xgettext.c: Include c-strcase.h instead of strcase.h. 2125 (language_to_extractor): Use c_strcasecmp. 2126 Reported by Recai Okta�� <roktas@omu.edu.tr>. 2127 21282005-02-07 Bruno Haible <bruno@clisp.org> 2129 2130 * project-id: Use LC_ALL=C to protect range expression against 2131 Estonian locale. 2132 21332005-02-06 Bruno Haible <bruno@clisp.org> 2134 2135 Leave #: lines with unknown syntax alone instead of turning them into 2136 plain comments. 2137 * po-hash.h: Remove file. 2138 * po-hash-gen.y: Remove file. 2139 * read-po-abstract.c: Don't include po-hash.h. 2140 (po_parse_comment_filepos, po_parse_comment_solaris_filepos): New 2141 functions. 2142 (po_callback_comment_dispatcher): Call them instead of the old 2143 po_parse_comment_filepos. 2144 * read-stringtable.c: Don't include po-hash.h. 2145 * Makefile.am (noinst_HEADERS): Remove po-hash.h, po-hash-gen.h. 2146 (COMMON_SOURCE): Remove po-hash-gen.y. 2147 (BUILT_SOURCES): Remove po-hash-gen.c, po-hash-gen.h. 2148 * Makefile.msvc (OBJECTS): Remove po-hash-gen.obj. 2149 (po-hash-gen.obj): Remove rule. 2150 * Makefile.vms (OBJECTS): Remove po-hash-gen.obj. 2151 (po-hash-gen.obj): Remove rule. 2152 * FILES: Update. 2153 Reported by David Fraser <davidf@sjsoft.com>. 2154 21552005-02-04 Bruno Haible <bruno@clisp.org> 2156 2157 * plural-table.c (plural_table): Add an entry about Vietnamese. 2158 Explanations by Clytie Siddall <clytie@riverland.net.au>. 2159 21602005-01-29 Bruno Haible <bruno@clisp.org> 2161 2162 * Makefile.am (msgcmp_LDADD, msgfmt_LDADD, msgmerge_LDADD, 2163 msgunfmt_LDADD, xgettext_LDADD, msgattrib_LDADD, msgcat_LDADD, 2164 msgcomm_LDADD, msgconv_LDADD, msgen_LDADD, msgexec_LDADD, 2165 msgfilter_LDADD, msggrep_LDADD, msguniq_LDADD): Add INTL_MACOSX_LIBS. 2166 21672005-01-27 Bruno Haible <bruno@clisp.org> 2168 2169 * msgfmt.c (formatstring_error_logger): Cast the fprrintf argument, 2170 to make it work on big-endian 64-bit machines. 2171 21722005-01-16 Bruno Haible <bruno@clisp.org> 2173 2174 Support for Scheme. 2175 * message.h (format_type): New enum value 'format_scheme'. 2176 (NFORMATS): Increment. 2177 * message.c (format_language): Add format_scheme entry. 2178 (format_language_pretty): Likewise. 2179 * format.h (formatstring_scheme): New declaration. 2180 * format-scheme.c: New file, based on format-lisp.c. 2181 * format.c (formatstring_parsers): Add formatstring_scheme. 2182 * x-scheme.h: New file. 2183 * x-scheme.c: New file. 2184 * xgettext.c: Include x-scheme.h. 2185 (flag_table_scheme): New variable. 2186 (main): Invoke init_flag_table_scheme, x_scheme_extract_all, 2187 x_scheme_keyword. 2188 (usage): Mention Scheme source language. 2189 (xgettext_record_flag): Handle format_scheme. 2190 (language_to_extractor): Add Scheme rule. 2191 (extension_to_language): Add Scheme rule. 2192 * Makefile.am (noinst_HEADERS): Add x-scheme.h. 2193 (FORMAT_SOURCE): Add format-scheme.c. 2194 (xgettext_SOURCES): Add x-scheme.c. 2195 * Makefile.msvc (OBJECTS): Add format-scheme.obj. 2196 (xgettext_OBJECTS): Add x-scheme.obj. 2197 (format-scheme.obj, x-scheme.obj): New rules. 2198 * Makefile.vms (OBJECTS): Add format-scheme.obj. 2199 (xgettext_OBJECTS): Add x-scheme.obj. 2200 (format-scheme.obj, x-scheme.obj): New rules. 2201 * FILES: Update. 2202 22032005-01-08 Bruno Haible <bruno@clisp.org> 2204 2205 * msggrep.c (grep_args, grep_path, grep_argv): Remove variables. 2206 (struct grep_task): New type. 2207 (grep_task): New variable. 2208 (main): Initialize grep_task instead of grep_args. Change processing 2209 of options 'E', 'F' to set a matcher, of 'e', 'f' to append to the 2210 pattern string, and of 'i' to set a boolean. Compile the patterns. 2211 (is_string_selected): Execute a compiled pattern instead of calling 2212 the grep program. 2213 (is_message_selected): Update. 2214 * Makefile.am (AM_CPPFLAGS): Add -I option for libgrep. 2215 (LIBGREP): New variable. 2216 (msggrep_LDADD): Add $(LIBGREP). 2217 * Makefile.msvc (INCLUDES): Add libgrep directory. 2218 (msggrep.exe): Link with libgrep. 2219 * Makefile.vms (INCLUDES): Add libgrep directory. 2220 (msggrep.exe): Link with libgrep. 2221 22222005-01-09 Bruno Haible <bruno@clisp.org> 2223 2224 * msgl-ascii.h (is_ascii_msgdomain_list): New declaration. 2225 * msgl-ascii.c (is_ascii_msgdomain_list): New function. 2226 * x-po.c (header_charset): New variable. 2227 (extract_add_message): When seeing the header entry, store the charset 2228 in header_charset. 2229 (extract): Store the value of header_charset in the new constructed 2230 header entry. 2231 * xgettext.c (main): Convert the existing PO file to UTF-8 if it was 2232 not entirely ASCII. 2233 Reported by J��rg Schilling <schilling@fokus.fraunhofer.de>. 2234 22352005-01-08 Bruno Haible <bruno@clisp.org> 2236 2237 * msggrep.c (usage): Explain COMMENT-PATTERN syntax as well. 2238 22392005-01-06 Bruno Haible <bruno@clisp.org> 2240 2241 * x-tcl.c (read_word): Ignore non-space whitespace at the beginning. 2242 Reported by William J Poser <wjposer@ldc.upenn.edu>. 2243 22442005-01-06 Bruno Haible <bruno@clisp.org> 2245 2246 * write-csharp.c (msgdomain_write_csharp): Don't call fclose after 2247 fwriteerror. 2248 * write-java.c (msgdomain_write_java): Likewise. 2249 * write-mo.c (msgdomain_write_mo): Likewise. 2250 * write-po.c (msgdomain_list_print): Likewise. 2251 * write-qt.c (msgdomain_write_qt): Likewise. 2252 * write-resources.c (execute_writing_input): Likewise. 2253 * write-tcl.c (msgdomain_write_tcl): Likewise. 2254 22552005-01-05 Bruno Haible <bruno@clisp.org> 2256 2257 * msgattrib.c (main): Update year in --version output. 2258 * msgcat.c (main): Likewise. 2259 * msgcmp.c (main): Likewise. 2260 * msgcomm.c (main): Likewise. 2261 * msgconv.c (main): Likewise. 2262 * msgen.c (main): Likewise. 2263 * msgexec.c (main): Likewise. 2264 * msgfilter.c (main): Likewise. 2265 * msgfmt.c (main): Likewise. 2266 * msggrep.c (main): Likewise. 2267 * msginit.c (main): Likewise. 2268 * msgmerge.c (main): Likewise. 2269 * msgunfmt.c (main): Likewise. 2270 * msguniq.c (main): Likewise. 2271 * xgettext.c (main): Likewise. 2272 22732005-01-07 Bruno Haible <bruno@clisp.org> 2274 2275 * gettext-po.c (po_file_read): Interpret "-" and "/dev/stdin" as 2276 denoting stdin. 2277 Suggested by Asgeir Frimannsson <asgeirf@redhat.com>. 2278 22792004-11-29 Bruno Haible <bruno@clisp.org> 2280 2281 * Makefile.am (libgettextpo_la_LDFLAGS): Add @LTLIBINTL@ @LTLIBICONV@. 2282 Reported by Sam Steingold <sds@gnu.org>. 2283 22842004-10-01 Guido Flohr <guido@imperia.net> 2285 2286 * x-perl.c (x_perl_prelex): Recognize function names starting with '-'. 2287 Reported by Ryan Anderson <ryan@autoweb.net>. 2288 22892004-09-16 Bruno Haible <bruno@clisp.org> 2290 2291 * format.h (formatstring_error_logger_t): Modify decl for GCC <= 3.0. 2292 Reported by Jens A. Tkotz <jens@peino.de>. 2293 22942004-09-11 Bruno Haible <bruno@clisp.org> 2295 2296 * Makefile.am (msginit_SOURCES): Add plural-count.c. 2297 * msginit.c (update_msgstr_plurals): New function. 2298 (main): Call it. 2299 * msgmerge.c (match_domain): Provide the appropriate number of plural 2300 forms for messages that don't occur in the Def.po file. 2301 Reported by Jens A. Tkotz <jens@peino.de>. 2302 23032004-09-06 Bruno Haible <bruno@clisp.org> 2304 2305 * format.h (formatstring_error_logger_t): New type. 2306 (struct formatstring_parser): Change calling convention of 'check' 2307 method. 2308 (check_msgid_msgstr_format): New declaration. 2309 * format-awk.c (format_check): Use error_logger argument instead of 2310 noisy and error_at_line. 2311 * format-c.c (format_check): Likewise. 2312 * format-csharp.c (format_check): Likewise. 2313 * format-elisp.c (format_check): Likewise. 2314 * format-gcc-internal.c (format_check): Likewise. 2315 * format-java.c (format_check): Likewise. 2316 * format-librep.c (format_check): Likewise. 2317 * format-lisp.c (format_check): Likewise. 2318 * format-pascal.c (format_check): Likewise. 2319 * format-perl.c (format_check): Likewise. 2320 * format-perl-brace.c (format_check): Likewise. 2321 * format-php.c (format_check): Likewise. 2322 * format-python.c (format_check): Likewise. 2323 * format-qt.c (format_check): Likewise. 2324 * format-sh.c (format_check): Likewise. 2325 * format-tcl.c (format_check): Likewise. 2326 * format-ycp.c (format_check): Likewise. 2327 * format.c (check_msgid_msgstr_format): New function, extracted from 2328 msgfmt.c. 2329 * msgfmt.c (curr_msgid_pos): New variable. 2330 (formatstring_error_logger): New function. 2331 (check_pair): Use check_msgid_msgstr_format, formatstring_error_logger. 2332 * msgmerge.c (msgfmt_check_pair_fails): Update. 2333 * gettext-po.h (po_message_check_format): New declaration. 2334 * gettext-po.c (po_error_logger, po_message_check_format): New 2335 functions. 2336 23372004-09-05 Bruno Haible <bruno@clisp.org> 2338 2339 * po-error.h: New file. 2340 * po-error.c: New file. 2341 * po-charset.c: Include po-error.h. 2342 (po_lex_charset_set): Use po_multiline_warning instead of 2343 multiline_warning. 2344 * po-lex.h: Include po-error.h. 2345 (po_gram_error): Use po_error instead of error. 2346 (po_gram_error_at_line): Use po_error_at_line instead of error_at_line. 2347 * po-lex.c (po_gram_error): Use po_error instead of error. 2348 (po_gram_error_at_line): Use po_error_at_line instead of error_at_line. 2349 (mbfile_getc, lex_getc): Use po_error instead of error. 2350 * read-po-abstract.c (po_scan): Likewise. 2351 * write-po.c: Include po-error.h instead of error.h. 2352 (wrap): Use po_error instead of error. 2353 (message_print, message_print_obsolete): Use po_multiline_warning 2354 instead of multiline_warning. 2355 (msgdomain_list_print): Use po_error instead of error, po_error_at_line 2356 instead of error_at_line. 2357 * str-list.h (string_list_join): New declaration. 2358 * str-list.c (string_list_join): New function. 2359 * message.h (message_list_insert_at): New declaration. 2360 * message.c (message_list_insert_at): New function. 2361 * gettext-po.h (po_filepos_t): New type. 2362 (struct po_error_handler, po_error_handler_t): New types. 2363 (po_file_create): New declaration. 2364 (po_file_read): Add handler argument. 2365 (po_file_write, po_message_insert, po_message_create, 2366 po_message_set_msgid, po_message_set_msgid_plural, 2367 po_message_set_msgstr, po_message_set_msgstr_plural, 2368 po_message_comments, po_message_set_comments, 2369 po_message_extracted_comments, po_message_filepos, 2370 po_message_set_obsolete, po_message_set_fuzzy, po_message_set_format, 2371 po_filepos_file, po_filepos_start_line): New declarations. 2372 * gettext-po.c (po_file_create): New function. 2373 (po_file_read): Add handler argument. Keep an old version for backward 2374 compatibility. 2375 (po_file_write): New function. 2376 (po_message_iterator): Store more information, to make 2377 po_message_insert possible. 2378 (po_message_iterator_free): Update. 2379 (po_next_message): Don't crash if iterator->mlp is NULL. 2380 (po_message_insert): New function. 2381 (po_message_create): New function. 2382 (po_message_set_msgid, po_message_set_msgid_plural, 2383 po_message_set_msgstr, po_message_set_msgstr_plural, 2384 po_message_comments, po_message_set_comments, 2385 po_message_extracted_comments, po_message_filepos, 2386 po_message_set_obsolete, po_message_set_fuzzy, po_message_set_format, 2387 po_filepos_file, po_filepos_start_line): New functions. 2388 * Makefile.am (noinst_HEADERS): Add po-error.h. 2389 (COMMON_SOURCE): Add po-error.c. 2390 * Makefile.msvc (OBJECTS): Add po-error.obj. 2391 (po-error.obj): New rule. 2392 * Makefile.vms (OBJECTS): Add po-error.obj. 2393 (po-error.obj): New rule. 2394 * FILES: Update. 2395 23962004-09-03 Bruno Haible <bruno@clisp.org> 2397 2398 * Makefile.am (msginit_LDADD): Use the INTL_MACOSX_LDFLAGS. 2399 24002004-08-30 Bruno Haible <bruno@clisp.org> 2401 2402 * plural-table.c (plural_table): Czech is now like Slovak. 2403 Reported by Stepan Kasal <kasal@ucw.cz>. 2404 24052004-06-23 Bruno Haible <bruno@clisp.org> 2406 2407 * x-c.c (phase1_getc): Fix phase0_getc invocation. 2408 Reported by Matt Dreezer <matthew.dreezer@edl.uk.eds.com>. 2409 24102004-05-14 Bruno Haible <bruno@clisp.org> 2411 2412 * format-java.c (message_format_parse): Fix argument of freesa() calls. 2413 24142004-03-19 Bruno Haible <bruno@clisp.org> 2415 2416 * Makefile.am (install-exec-clean): Don't remove libgettextsrc.a on 2417 AIX. 2418 Reported by Kouichi Hashikawa <z01a7ksy@cs.ecip.tohoku.ac.jp>. 2419 24202004-03-14 Bruno Haible <bruno@clisp.org> 2421 2422 * format-lisp.c (parse_upto): Add integer restriction for the dispatch 2423 argument in ~[...~]. 2424 24252004-03-02 Bruno Haible <bruno@clisp.org> 2426 2427 * read-csharp.c (msgdomain_read_csharp): Extend the lang -> frobbedlang 2428 mapping so as to support Serbian and Uzbek locales. 2429 * write-csharp.c (msgdomain_write_csharp): Likewise. 2430 Reported by Jorn Baayen <jbaayen@dds.nl>. 2431 24322004-02-27 Bruno Haible <bruno@clisp.org> 2433 2434 * plural-table.c (plural_table): Add an entry about Serbian. 2435 Reported by Danilo Segan <danilo@gnome.org>. 2436 24372004-01-29 Bruno Haible <bruno@clisp.org> 2438 2439 * gettext-0.14.1 released. 2440 24412004-01-28 Bruno Haible <bruno@clisp.org> 2442 2443 * gettext-0.14 released. 2444 24452004-01-18 Bruno Haible <bruno@clisp.org> 2446 2447 * msginit.c (catalogname_for_locale): Add entries for Akan, Avaric, 2448 Bambara, Cree, Divehi (Maldivian), ��w��, Igbo, Kongo, Kanuri, Ganda, 2449 Luba-Katanga, Ojibwa, Venda. 2450 (englishname_of_language): Likewise, and also for Fulah (Fulfulde). 2451 24522004-01-09 Bruno Haible <bruno@clisp.org> 2453 2454 * format.h (struct formatstring_parser): Add 'translated' argument to 2455 parse function. 2456 (get_sysdep_c_format_directives): Renamed from 2457 get_c99_format_directives. Add 'translated' argument. Change meaning 2458 of endpos in returned array. 2459 * format-c.c (struct spec): Rename field c99_directives to 2460 sysdep_directives, and c99_directives_count to sysdep_directives_count. 2461 (format_parse): Add 'translated' argument. Handle 'I' flag. Store the 2462 pointer past the '>' character instead of the pointer to the '>'. 2463 (format_c_parse, format_objc_parse): Add 'translated' argument. 2464 (get_sysdep_c_format_directives): Renamed from 2465 get_c99_format_directives. Add 'translated' argument. 2466 * format-awk.c (format_parse): Add 'translated' argument. 2467 * format-csharp.c (format_parse): Likewise. 2468 * format-elisp.c (format_parse): Likewise. 2469 * format-gcc-internal.c (format_parse): Likewise. 2470 * format-java.c (format_parse): Likewise. 2471 * format-librep.c (format_parse): Likewise. 2472 * format-lisp.c (format_parse): Likewise. 2473 * format-pascal.c (format_parse): Likewise. 2474 * format-perl-brace.c (format_parse): Likewise. 2475 * format-perl.c (format_parse): Likewise. 2476 * format-php.c (format_parse): Likewise. 2477 * format-python.c (format_parse): Likewise. 2478 * format-qt.c (format_parse): Likewise. 2479 * format-sh.c (format_parse): Likewise. 2480 * format-tcl.c (format_parse): Likewise. 2481 * format-ycp.c (format_parse): Likewise. 2482 * msgfmt.c (check_pair): Update. 2483 * msgmerge.c (msgfmt_check_pair_fails): Likewise. 2484 * read-mo.c (get_sysdep_string): Don't add '<'...'>' around segments 2485 of length 1. 2486 (read_mo_file): Treat major revision 1 like major revision 0. 2487 * write-mo.c (write_table): Update. Use major revision 1 if "I" occurs 2488 among the sysdep segments. 2489 * xgettext.c (set_format_flags_from_context, remember_a_message, 2490 remember_a_message_plural): Update. 2491 24922004-01-14 Bruno Haible <bruno@clisp.org> 2493 2494 * msginit.c (fill_header): Avoid a NULL pointer access when the header 2495 has no comment attached to it. 2496 Reported by Josep Puigdemont <baldrick@terra.es>. 2497 24982004-01-09 Bruno Haible <bruno@clisp.org> 2499 2500 * msgattrib.c (main): Update year in --version output. 2501 * msgcat.c (main): Likewise. 2502 * msgcmp.c (main): Likewise. 2503 * msgcomm.c (main): Likewise. 2504 * msgconv.c (main): Likewise. 2505 * msgen.c (main): Likewise. 2506 * msgexec.c (main): Likewise. 2507 * msgfilter.c (main): Likewise. 2508 * msgfmt.c (main): Likewise. 2509 * msggrep.c (main): Likewise. 2510 * msginit.c (main): Likewise. 2511 * msgmerge.c (main): Likewise. 2512 * msgunfmt.c (main): Likewise. 2513 * msguniq.c (main): Likewise. 2514 * xgettext.c (main): Likewise. 2515 25162003-12-29 Bruno Haible <bruno@clisp.org> 2517 2518 * xgettext.h: Include stdlib.h, str-list.h. 2519 (struct refcounted_string_list_ty): New type. 2520 (add_reference, drop_reference): New functions. 2521 (savable_comment, savable_comment_add, savable_comment_reset, 2522 savable_comment_to_xgettext_comment): New declarations. 2523 * xgettext.c (savable_comment): New variable. 2524 (savable_comment_add, savable_comment_reset, 2525 savable_comment_to_xgettext_comment): New functions. 2526 * x-java.c (struct refcounted_string_list_ty, comment, add_reference, 2527 drop_reference, x_java_comment_add, x_java_comment_reset, 2528 x_java_comment_to_xgettext_comment): Remove. Use replacement from 2529 xgettext.{h,c} instead. 2530 * x-csharp.c (struct refcounted_string_list_ty, comment, add_reference, 2531 drop_reference, x_csharp_comment_add, x_csharp_comment_reset, 2532 x_csharp_comment_to_xgettext_comment): Remove. Use replacement from 2533 xgettext.{h,c} instead. 2534 * x-c.c (comment_line_end): Call savable_comment_add instead of 2535 xgettext_comment_add. 2536 (struct token_ty): Add 'comment' field. 2537 (free_token): Free it. 2538 (phase5_get): Initialize token's 'comment' field. 2539 (phase6_get): Call savable_comment_reset instead of 2540 xgettext_comment_reset. 2541 (phase8a_get): Initialize token's 'comment' field. 2542 (phase8b_get): Call savable_comment_reset instead of 2543 xgettext_comment_reset. 2544 (phase8c_get): In @"...", use the comment of the first token, not of 2545 the second. 2546 (struct xgettext_token_ty): Add 'comment' field. 2547 (x_c_lex): Deal with the token's comment. 2548 (extract_parenthesized): Call savable_comment_to_xgettext_comment and 2549 savable_comment_reset. Free the token's comment field. 2550 * x-python.c (comment_line_end): Call savable_comment_add instead of 2551 xgettext_comment_add. 2552 (struct token_ty): Add 'comment' field. 2553 (phase5_get): Call savable_comment_reset instead of 2554 xgettext_comment_reset. Initialize token's 'comment' field. 2555 (extract_parenthesized): Call savable_comment_to_xgettext_comment and 2556 savable_comment_reset. Free the token's comment field. 2557 25582003-12-28 Bruno Haible <bruno@clisp.org> 2559 2560 * read-mo.h (read_mo_file): Change 'fn' into 'filename'. 2561 * read-mo.c (read_mo_file): Likewise. 2562 25632003-12-28 Bruno Haible <bruno@clisp.org> 2564 2565 * write-resources.h: New file. 2566 * write-resources.c: New file. 2567 * msgfmt.cs: New file. 2568 * msgfmt.c: Include write-resources.h. 2569 (csharp_resources_mode): New variable. 2570 (long_options): Add --csharp-resources. 2571 (main): Handle --csharp-resources. More generic code for detection of 2572 contradicting modes. Invoke msgdomain_write_csharp_resources. 2573 (usage): Document --csharp-resources option. 2574 (msgfmt_set_domain): Update. 2575 * read-resources.h: New file. 2576 * read-resources.c: New file. 2577 * msgunfmt.cs (DumpResource): Add a constructor that dumps a .resources 2578 file. 2579 (Main): Invoke it when only one argument is given. 2580 * msgunfmt.c: Include read-resources.h. 2581 (csharp_resources_mode): New variable. 2582 (long_options): Add --csharp-resources. 2583 (main): Handle --csharp-resources. More generic code for detection of 2584 contradicting modes. Invoke read_one_file instead of read_mo_file. 2585 (usage): Document --csharp-resources option. 2586 (read_one_file): New function. 2587 * Makefile.am (noinst_HEADERS): Add read-resources.h and 2588 write-resources.h. 2589 (msgfmt_SOURCES): Add write-resources.c. 2590 (msgunfmt_SOURCES): Add read-resources.c. 2591 (EXTRA_DIST): Add msgfmt.cs. 2592 (CLEANFILES): Add msgfmt.net.exe. 2593 (msgfmt.net.exe): New rule. 2594 (all-csharp-yes): Depend on it. 2595 (install-exec-csharp-yes): Also install msgfmt.net.exe. 2596 (uninstall-csharp-yes): Also uninstall msgfmt.net.exe. 2597 * Makefile.msvc (msgfmt_OBJECTS): Add write-resources.obj. 2598 (msgunfmt_OBJECTS): Add read-resources.obj. 2599 (write-resources.obj, read-resources.obj): New rules. 2600 * Makefile.vms (msgfmt_OBJECTS): Add write-resources.obj. 2601 (msgunfmt_OBJECTS): Add read-resources.obj. 2602 (write-resources.obj, read-resources.obj): New rules. 2603 * FILES: Update. 2604 26052003-12-26 Bruno Haible <bruno@clisp.org> 2606 2607 Support for C#. 2608 * write-csharp.h: New file. 2609 * write-csharp.c: New file. 2610 * msgfmt.c: Include write-csharp.h. 2611 (csharp_mode, csharp_resource_name, csharp_locale_name, 2612 csharp_base_directory): New variables. 2613 (long_options): Add option --csharp. 2614 (main): Handle option --csharp. Initialize csharp_resource_name, 2615 csharp_locale_name, csharp_base_directory. Perform checks for C# mode. 2616 Invoke msgdomain_write_csharp. 2617 (usage): Document --csharp option and C# mode. 2618 (msgfmt_set_domain): Ignore in C# mode. 2619 * read-csharp.h: New file. 2620 * read-csharp.c: New file. 2621 * msgunfmt.cs: New file. 2622 * msgunfmt.c: Include read-csharp.h. 2623 (csharp_mode, csharp_resource_name, csharp_locale_name, 2624 csharp_base_directory): New variables. 2625 (long_options): Add option --csharp. 2626 (main): Handle option --csharp. Initialize csharp_resource_name, 2627 csharp_locale_name, csharp_base_directory. Perform checks for C# mode. 2628 Invoke msgdomain_read_csharp. 2629 (usage): Document --csharp option and C# mode. 2630 * Makefile.am (noinst_HEADERS): Add read-csharp.h, write-csharp.h. 2631 (CSHARPCOMP, CSHARPCOMPFLAGS): New variables. 2632 (msgfmt_SOURCES): Add write-csharp.c. 2633 (msgunfmt_SOURCES): Add read-csharp.c. 2634 (EXTRA_DIST): Add msgunfmt.cs. 2635 (CLEANFILES): Add msgunfmt.net.exe. 2636 (all-csharp-yes, all-csharp-no): New rules. 2637 (all-local): Depend on them. 2638 (msgunfmt.net.exe): New rule. 2639 (install-exec-csharp-yes, install-exec-csharp-no): New rules. 2640 (install-exec-local): Depend on them. 2641 (installdirs-csharp): New rule. 2642 (installdirs-local): Depend on it. 2643 (uninstall-csharp-yes, uninstall-csharp-no): New rules. 2644 (uninstall-local): Depend on it. 2645 * Makefile.msvc (msgfmt_OBJECTS): Add write-csharp.obj. 2646 (msgunfmt_OBJECTS): Add read-csharp.obj. 2647 (write-csharp.obj, read-csharp.obj): New rules. 2648 * Makefile.vms (msgfmt_OBJECTS): Add write-csharp.obj. 2649 (msgunfmt_OBJECTS): Add read-csharp.obj. 2650 (write-csharp.obj, read-csharp.obj): New rules. 2651 * FILES: Update. 2652 26532003-12-26 Bruno Haible <bruno@clisp.org> 2654 2655 * read-java.c (msgdomain_read_java): Relocate also the GETTEXTJAR 2656 value. 2657 * urlget.c (fetch): Likewise. 2658 26592003-12-26 Bruno Haible <bruno@clisp.org> 2660 2661 * write-java.c (write_java_code): Emit a static method 2662 'get_msgid_plural_table' instead of a static field 'plural'. 2663 * gnu/gettext/DumpResource.java (DumpResource.dump): Exploit a 2664 'get_msgid_plural_table' method if it exists. 2665 26662003-12-14 Bruno Haible <bruno@clisp.org> 2667 2668 * message.h (format_type): New enum value 'format_csharp'. 2669 (NFORMATS): Increment. 2670 * message.c (format_language): Add format_csharp entry. 2671 (format_language_pretty): Likewise. 2672 * format.h (formatstring_csharp): New declaration. 2673 * format-csharp.c: New file. 2674 * format.c (formatstring_parsers): Add formatstring_csharp. 2675 * x-csharp.h: New file. 2676 * x-csharp.c: New file. 2677 * xgettext.c: Include x-csharp.h. 2678 (flag_table_csharp): New variable. 2679 (main): Invoke init_flag_table_csharp, x_csharp_extract_all, 2680 x_csharp_keyword. 2681 (usage): Mention C# source language. 2682 (xgettext_record_flag): Handle format_csharp. 2683 (language_to_extractor): Add C# rule. 2684 (extension_to_language): Add C# rule. 2685 * Makefile.am (noinst_HEADERS): Add x-csharp.h. 2686 (FORMAT_SOURCE): Add format-csharp.c. 2687 (xgettext_SOURCES): Add x-csharp.c. 2688 * Makefile.msvc (OBJECTS): Add format-csharp.obj. 2689 (xgettext_OBJECTS): Add x-csharp.obj. 2690 (format-csharp.obj, x-csharp.obj): New rules. 2691 * Makefile.vms (OBJECTS): Add format-csharp.obj. 2692 (xgettext_OBJECTS): Add x-csharp.obj. 2693 (format-csharp.obj, x-csharp.obj): New rules. 2694 * FILES: Update. 2695 26962003-12-28 Bruno Haible <bruno@clisp.org> 2697 2698 * msgexec.c (process_string): Pass ignore_sigpipe = false. 2699 * msgfilter.c (process_string): Likewise. 2700 * msggrep.c (is_string_selected): Likewise. 2701 * msginit.c (project_id, project_id_version, get_user_email, 2702 language_team_address): Likewise. 2703 * read-java.c (execute_and_read_po_output): Likewise. 2704 * read-tcl.c (msgdomain_read_tcl): Likewise. 2705 * urlget.c (execute_it): Pass ignore_sigpipe = true. 2706 (fetch): Pass ignore_sigpipe = true when fetching the file, = false 2707 otherwise. 2708 27092003-12-14 Bruno Haible <bruno@clisp.org> 2710 2711 * x-c.c (SIZEOF): New macro. 2712 (phase1_ungetc): Verify that the pushback buffer's size is sufficient. 2713 (phase2_ungetc): Likewise. 2714 (phase3_ungetc): Likewise. 2715 (phase5_unget): Likewise. 2716 (phase6_unget): Likewise. 2717 * x-java.c (SIZEOF): New macro. 2718 (phase1_ungetc): Verify that the pushback buffer's size is sufficient. 2719 (phase2_ungetc): Likewise. 2720 (phase3_ungetc): Likewise. 2721 (phase5_unget): Likewise. 2722 (phase6_unget): Likewise. 2723 * x-php.c (SIZEOF): New macro. 2724 (phase1_ungetc): Verify that the pushback buffer's size is sufficient. 2725 (phase2_ungetc): Likewise. 2726 (phase3_ungetc): Likewise. 2727 * x-python.c (SIZEOF): New macro. 2728 (phase1_ungetc): Verify that the pushback buffer's size is sufficient. 2729 (phase5_unget): Likewise. 2730 * x-sh.c (SIZEOF): New macro. 2731 (phase1_ungetc): Verify that the pushback buffer's size is sufficient. 2732 (phase2_ungetc): Likewise. 2733 * x-smalltalk.c (SIZEOF): New macro. 2734 (phase2_unget): Verify that the pushback buffer's size is sufficient. 2735 * x-tcl.c (SIZEOF): New macro. 2736 (phase1_ungetc): Verify that the pushback buffer's size is sufficient. 2737 (phase2_ungetc): Likewise. 2738 * x-ycp.c (SIZEOF): New macro. 2739 (phase2_unget): Verify that the pushback buffer's size is sufficient. 2740 27412003-12-14 Bruno Haible <bruno@clisp.org> 2742 2743 * x-c.c (phase1_pushback): Reduce size to 2. 2744 (phase2_pushback): Reduce size to 1. 2745 (phase3_pushback): Reduce size to 2. 2746 (phase5_pushback): Reduce size to 1. 2747 (phase6_pushback): Reduce size to 2. 2748 * x-java.c (phase2_pushback): Reduce size to 1. 2749 (phase3_pushback): Reduce size to 2. 2750 (phase5_pushback): Reduce size to 3. 2751 (phase6_pushback): Reduce size to 2. 2752 * x-php.c (phase1_pushback): Reduce size to 2. 2753 * x-python.c (max): New macro. 2754 (phase1_pushback): Reduce size to UNINAME_MAX + 3. 2755 (phase5_pushback): Reduce size to 1. 2756 * x-sh.c (phase1_pushback): Reduce size to 1. 2757 (phase2_pushback): Reduce size to 2. 2758 * x-smalltalk.c (phase2_pushback): Reduce size to 1. 2759 * x-tcl.c (phase1_pushback): Reduce size to 1. 2760 (phase2_pushback): Reduce size to 2. 2761 27622003-12-12 Bruno Haible <bruno@clisp.org> 2763 2764 Assume automake-1.8. 2765 * Makefile.am (install-exec-local): Renamed from install-exec-am. 2766 27672003-11-30 Bruno Haible <bruno@clisp.org> 2768 2769 * format-java.c: Include xallocsa.h. 2770 (message_format_parse): Use xallocsa instead of alloca. 2771 (choice_format_parse): Likewise. 2772 * msgl-cat.c: Include xallocsa.h. 2773 (catenate_msgdomain_list): Use xallocsa instead of alloca. 2774 * msgl-charset.c: Include xallocsa.h. 2775 (compare_po_locale_charsets): Use xallocsa instead of alloca. 2776 * msgl-iconv.c: Include xallocsa.h. 2777 (iconv_message_list): Use xallocsa instead of alloca. 2778 * po-charset.c: Include xallocsa.h. 2779 (po_lex_charset_set): Use xallocsa instead of alloca. 2780 * read-tcl.c: Include xallocsa.h. 2781 (msgdomain_read_tcl): Use xallocsa instead of alloca. 2782 * write-java.c: Include xallocsa.h. 2783 (compute_hashsize, msgdomain_write_java): Use xallocsa instead of 2784 alloca. 2785 * write-mo.c: Include xallocsa.h. 2786 (write_table): Use xallocsa instead of alloca. 2787 * write-po.c: Include xallocsa.h. 2788 (msgdomain_list_print_po): Use xallocsa instead of alloca. 2789 * write-tcl.c: Include xallocsa.h. 2790 (msgdomain_write_tcl): Use xallocsa instead of alloca. 2791 * msggrep.c: Include xallocsa.h. 2792 (is_message_selected): Use xallocsa instead of alloca. 2793 * msginit.c: Include xallocsa.h. 2794 (subst_string): Use xallocsa instead of alloca. 2795 * msgmerge.c: Include obstack.h. 2796 (obstack_chunk_alloc, obstack_chunk_free): New macros. 2797 (message_merge): Use obstack_alloc instead of alloca. 2798 * xgettext.c: Include xallocsa.h. 2799 (flag_context_list_table_insert): Use xallocsa instead of alloca. 2800 28012003-12-17 Bruno Haible <bruno@clisp.org> 2802 2803 * gettext-0.13.1 released. 2804 28052003-12-14 Bruno Haible <bruno@clisp.org> 2806 2807 * x-sh.c (phase2_getc): Call phase1_ungetc instead of phase2_ungetc: 2808 The next phase2_getc invocation must return QUOTED('"'), not '"'. 2809 28102003-12-14 Bruno Haible <bruno@clisp.org> 2811 2812 * x-c.c (phase7_getc): Remove dead code. 2813 * x-java.c (accumulate_escaped): More precise error message. 2814 28152003-12-02 Bruno Haible <bruno@clisp.org> 2816 2817 * msginit.c (catalogname_for_locale): Treat sr_CS like sr_YU. 2818 28192003-11-30 Bruno Haible <bruno@clisp.org> 2820 2821 * gettext-0.13 released. 2822 28232003-11-28 Bruno Haible <bruno@clisp.org> 2824 2825 * xgettext.c (set_format_flags_from_context): Add casts, to make it 2826 compile in C++ mode. 2827 28282003-11-22 Bruno Haible <bruno@clisp.org> 2829 2830 * x-c.c (phase4_getc): Skip leading whitespace in C++ style comments 2831 as well. 2832 * x-sh.c (read_word): Skip leading whitespace in comments. 2833 * x-lisp.c (read_object): Skip leading whitespace in single-line 2834 comments as well. 2835 * x-elisp.c (read_object): Skip leading whitespace in comments. 2836 * x-librep.c (read_object): Skip leading whitespace in single-line 2837 comments as well. 2838 * x-java.c (phase4_getc): Skip leading whitespace in C++ style comments 2839 as well. 2840 * x-awk.c (phase2_getc): Skip leading whitespace in comments. 2841 * x-ycp.c (phase2_getc): Skip leading whitespace in single-line 2842 comments as well. 2843 * x-tcl.c (read_command): Skip leading whitespace in comments. 2844 28452003-11-24 Bruno Haible <bruno@clisp.org> 2846 2847 * format-lisp.c (check_params): Use ngettext for one of the messages. 2848 Reported by Rafa�� Maszkowski <rzm@icm.edu.pl>. 2849 28502003-11-15 Bruno Haible <bruno@clisp.org> 2851 2852 * Makefile.am (AM_CPPFLAGS): Renamed from INCLUDES. 2853 28542003-11-09 Bruno Haible <bruno@clisp.org> 2855 2856 * msginit.c (main): Drop the blank line in --no-translator mode. 2857 28582003-11-07 Bruno Haible <bruno@clisp.org> 2859 2860 * xgettext.c (remember_a_message): Omit the programmer comments of a 2861 duplicated msgid only if they are redundant. 2862 Reported by Christian Neumair <chris@gnome-de.org>. 2863 28642003-11-05 Bruno Haible <bruno@clisp.org> 2865 2866 * user-email.sh.in: Renamed from user-email.in. Internationalize, use 2867 localedir and gettext. 2868 * FILES: Update. 2869 28702003-10-23 Bruno Haible <bruno@clisp.org> 2871 2872 * read-stringtable.c (read_string, stringtable_parse): Cast 2873 gram_pos.line_number to 'unsigned long'. 2874 * x-sh.c (read_word): Case line_number to 'unsigned long'. 2875 28762003-10-21 Bruno Haible <bruno@clisp.org> 2877 2878 * message.h (message_list_msgids_changed): New declaration. 2879 * message.c (message_list_msgids_changed): New function. 2880 * msgl-iconv.c (iconv_message_list): Update the message list's hash 2881 table if it happens to contain non-ASCII msgids. 2882 28832003-10-19 Bruno Haible <bruno@clisp.org> 2884 2885 * message.h (format_type): New enum value 'format_qt'. 2886 (NFORMATS): Increment. 2887 * message.c (format_language): Add format_qt entry. 2888 (format_language_pretty): Likewise. 2889 * format.h (formatstring_qt): New declaration. 2890 * format-qt.c: New file. 2891 * format.c (formatstring_parsers): Add formatstring_qt. 2892 * xgettext.c (recognize_format_qt): New variable. 2893 (long_options): Add option "--qt". 2894 (main): Handle --qt option. Determine the extractor only after option 2895 processing is complete. 2896 (usage): Document --qt option. 2897 (xgettext_record_flag): Handle format_qt. 2898 (language_to_extractor): For C++, return a different extractor when 2899 --qt was specified. 2900 * write-qt.h: New file. 2901 * write-qt.c: New file. 2902 * msgfmt.c: Include write-qt.h. 2903 (qt_mode): New variable. 2904 (long_options): Add option "--qt". 2905 (main): Handle --qt option. More checks for contradicting options. 2906 Call msgdomain_write_qt. 2907 (usage): Mention Qt mode. 2908 (format_directive_domain): Ignore domain directive if in Qt mode. 2909 * Makefile.am (noinst_HEADERS): Add write-qt.h. 2910 (FORMAT_SOURCE): Add format-qt.c. 2911 (msgfmt_SOURCES): Add write-qt.c. 2912 * Makefile.msvc (OBJECTS): Add format-qt.obj. 2913 (msgfmt_OBJECTS): Add write-qt.obj. 2914 (format-qt.obj, write-qt.obj): New rules. 2915 * Makefile.vms (OBJECTS): Add format-qt.obj. 2916 (msgfmt_OBJECTS): Add write-qt.obj. 2917 (format-qt.obj, write-qt.obj): New rules. 2918 * FILES: Update. 2919 29202003-10-14 Bruno Haible <bruno@clisp.org> 2921 2922 Fix compilation errors in C++ mode. 2923 * msgfilter.c (process_string): Cast the xrealloc expression. 2924 * xgettext.c (language_to_extractor, extension_to_language): Move the 2925 typedef after the struct definition. 2926 29272003-10-13 Bruno Haible <bruno@clisp.org> 2928 2929 Support CR/LF line terminators in C sources even on Unix. 2930 * x-c.c (phase0_getc, phase0_ungetc): New functions. 2931 (phase1_getc): Use them instead of calling getc/ungetc directly. 2932 Reported by Christoph Thielecke <u15119@hs-harz.de>. 2933 29342003-10-13 Bruno Haible <bruno@clisp.org> 2935 2936 Support and recognize Objective C specific format strings. 2937 * message.h (enum format_type): New item format_objc. 2938 (NFORMATS): Increment. 2939 * message.c (format_language): Add an entry for format_objc. 2940 (format_language_pretty): Likewise. 2941 * format.h (formatstring_objc): New declaration. 2942 * format-c.c (enum format_arg_type): New item FAT_OBJC_OBJECT. 2943 (format_parse): Add objc_extensions argument. Handle %@ in ObjC mode. 2944 (format_c_parse, format_objc_parse): New functions. 2945 (formatstring_c): Use format_c_parse instead of format_parse. 2946 (formatstring_objc): New variable. 2947 (get_c99_format_directives): Update. 2948 * format.c (formatstring_parsers): Add an entry for format_objc. 2949 * write-mo.c (write_table): Look for system dependent strings also in 2950 ObjectiveC format strings. 2951 * x-c.h (SCANNERS_C): Use separate flag_table for ObjectiveC. 2952 (x_objc_keyword, init_flag_table_objc): New declarations. 2953 (x_c_any_keywords): Remove declaration. 2954 * x-c.c (c_keywords): Renamed from keywords. 2955 (objc_keywords): New variable. 2956 (add_keyword): Renamed from x_c_keyword. Add keywords table argument. 2957 (x_c_keyword, x_objc_keyword): New functions. 2958 (x_c_any_keywords): Remove function. 2959 (init_keywords): Also initialize ObjectiveC keyword table. 2960 (init_flag_table_objc): New function. 2961 (enum token_type_ty): New item token_type_colon. 2962 (phase5_get): Recognize colon. 2963 (enum xgettext_token_type_ty): New item xgettext_token_type_colon. 2964 (x_c_lex): Use keywords table depending on objc_extensions. Handle 2965 colon. 2966 (extract_parenthesized): Change the context_iter and inner_context 2967 after a keyword/symbol followed by a colon was seen. 2968 * xgettext.c (flag_table_objc): New variable. 2969 (main): Invoke init_flag_table_objc, x_objc_keyword. Watch out for 2970 keywords arguments, instead of calling x_c_any_keywords(). 2971 (flag_context_list_table_insert): New function, extracted from 2972 xgettext_record_flag. 2973 (xgettext_record_flag): Call it. For format_c, insert the flags also 2974 in the flag_table_objc. Handle format_objc. 2975 (remember_a_message): Don't add a heuristic c-format flag to an entry 2976 that already carries objc-format. 2977 (remember_a_message_plural): Likewise. 2978 29792003-10-18 Bruno Haible <bruno@clisp.org> 2980 2981 Support for GNUstep .strings format. 2982 * read-stringtable.h: New file. 2983 * read-stringtable.c: New file. 2984 * read-po-abstract.h (enum input_syntax_ty): New item 2985 syntax_stringtable. 2986 (po_callback_comment_dispatcher): Renamed from po_callback_comment. 2987 (po_callback_comment, po_callback_comment_special): New declarations. 2988 * read-po-abstract.c: Include read-stringtable.h. 2989 (po_scan): Add support for syntax_stringtable. 2990 (po_callback_comment_dispatcher): Renamed from po_callback_comment. 2991 (po_callback_comment, po_callback_comment_dot): New functions. 2992 (po_callback_comment_special): New function. 2993 * read-po.c (read_po): Set mdlp->encoding for syntax_stringtable too. 2994 * po-gram-gen.y: Update po_callback_comment_dispatcher call. 2995 * read-properties.c (properties_parse): Likewise. 2996 * write-stringtable.h: New file. 2997 * write-stringtable.c: New file. 2998 * write-po.h (make_format_description_string, significant_format_p): 2999 New declarations. 3000 (message_print_syntax_stringtable): New declaration. 3001 * write-po.c: Include write-stringtable.h. 3002 (make_format_description_string, significant_format_p): Make 3003 non-static. 3004 (use_syntax_stringtable): New variable. 3005 (message_print_syntax_stringtable): New function. 3006 (msgdomain_list_print): Add check for plural forms for 3007 syntax_stringtable too. Add support for writing the .strings format. 3008 * msgattrib.c (long_options): Add --stringtable-input/output. 3009 (main): Handle them. 3010 (usage): Document options --stringtable-input/output. 3011 * msgcat.c (long_options): Add --stringtable-input/output. 3012 (main): Handle them. If option --stringtable-output is used, convert to 3013 UTF-8 and ignore the to_code. 3014 (usage): Document options --stringtable-input/output. 3015 * msgcmp.c (long_options): Add --stringtable-input. 3016 (main): Handle it. 3017 (usage): Document option --stringtable-input. 3018 * msgcomm.c (long_options): Add --stringtable-input/output. 3019 (main): Handle them. 3020 (usage): Document options --stringtable-input/output. 3021 * msgconv.c (long_options): Add --stringtable-input/output. 3022 (main): Handle them. If option --stringtable-output is used, ignore the 3023 to_code. 3024 (usage): Document options --stringtable-input/output. 3025 * msgen.c (long_options): Add --stringtable-input/output. 3026 (main): Handle them. 3027 (usage): Document options --stringtable-input/output. 3028 * msgexec.c: Include limits.h. 3029 (long_options): Add --stringtable-input. 3030 (main): Handle it. 3031 (usage): Document option --stringtable-input. 3032 * msgfilter.c (long_options): Add --stringtable-input/output. 3033 (main): Handle them. 3034 (usage): Document options --stringtable-input/output. 3035 * msgfmt.c (long_options): Add --stringtable-input. 3036 (main): Handle it. 3037 (usage): Document option --stringtable-input. 3038 * msggrep.c (long_options): Add --stringtable-input/output. 3039 (main): Handle them. 3040 (usage): Document options --stringtable-input/output. 3041 * msginit.c (long_options): Add --stringtable-input/output. 3042 (main): Handle them. 3043 (usage): Document options --stringtable-input/output. 3044 * msgmerge.c (long_options): Add --stringtable-input/output. 3045 (main): Handle them. In update mode, --stringtable-input implies 3046 --stringtable-output. 3047 (usage): Document options --stringtable-input/output. 3048 * msgunfmt.c (long_options): Add --stringtable-output. 3049 (main): Handle it. 3050 (usage): Document option --stringtable-output. 3051 * msguniq.c (long_options): Add --stringtable-input/output. 3052 (main): Handle them. 3053 (usage): Document options --stringtable-input/output. 3054 * x-stringtable.h: New file. 3055 * x-po.c: Include x-stringtable.h. 3056 (extract_stringtable): New function. 3057 * xgettext.c: Include x-stringtable.h. 3058 (long_options): Add --stringtable-output. 3059 (main): Handle it. 3060 (usage): Document options -L NXStringTable and --stringtable-output. 3061 (finalize_header): If --stringtable-output was given, set the charset. 3062 (language_to_extractor): Add support for .strings format. 3063 (extension_to_language): Likewise. 3064 * Makefile.am (noinst_HEADERS): Add read-stringtable.h, 3065 write-stringtable.h, x-stringtable.h. 3066 (COMMON_SOURCE): Add read-stringtable.c. 3067 (libgettextsrc_la_SOURCES): Add write-stringtable.c. 3068 * Makefile.msvc (OBJECTS): Add read-stringtable.obj, 3069 write-stringtable.obj. 3070 (read-stringtable.obj, write-stringtable.obj): New rules. 3071 * Makefile.vms (OBJECTS): Add read-stringtable.obj, 3072 write-stringtable.obj. 3073 (read-stringtable.obj, write-stringtable.obj): New rules. 3074 * FILES: Update. 3075 30762003-10-21 Bruno Haible <bruno@clisp.org> 3077 3078 * hostname.c (xgethostname): Add support for native Woe32 API. 3079 30802003-10-21 Bruno Haible <bruno@clisp.org> 3081 3082 * message.c (message_list_search): Avoid casting a pointer to a local 3083 variable; it violated strict aliasing. 3084 30852003-10-21 Bruno Haible <bruno@clisp.org> 3086 3087 * write-java.c (mkdir): Redefine on mingw. 3088 30892003-10-12 Bruno Haible <bruno@clisp.org> 3090 3091 Improved ObjectiveC support. 3092 * x-c.h (extract_objc): New declaration. 3093 (SCANNERS_C): For ObjectiveC, use extract_objc. 3094 * x-c.c (objc_extensions): New variable. 3095 (enum token_type_ty): New item token_type_objc_special. 3096 (phase5_get): Recognize '@' for ObjectiveC. 3097 (phase8b_get, phase8b_unget): New functions. Handle 3098 token_type_white_space and token_type_eoln here instead of in x_c_lex. 3099 (phase8c_get, phase8c_unget): New functions. 3100 (phase8_get): Rely on phase8c, not phase8a. No more need to care about 3101 token_type_white_space and token_type_eoln. 3102 (x_c_lex): Drop handling of token_type_white_space and token_type_eoln. 3103 (extract_whole_file): Renamed from extract_c. 3104 (extract_c, extract_objc): New functions. 3105 31062003-10-20 Bruno Haible <bruno@clisp.org> 3107 3108 * x-java.c (phase3_getc): Fix typo: Use phase2_ungetc, not phase2_getc. 3109 31102003-10-20 Bruno Haible <bruno@clisp.org> 3111 3112 Portability to AIX with cc. 3113 * xgettext.h (struct flag_context_ty): Define the bitfields of type 3114 'unsigned int'. 3115 31162003-10-20 Bruno Haible <bruno@clisp.org> 3117 3118 Portability to Solaris with cc. 3119 * x-java.c (string_buffer_append): Avoid aggregate initializer 3120 containing non-constant expressions. 3121 * xgettext.c (flag_context_list_iterator): Likewise. 3122 (language_to_extractor): Likewise. 3123 31242003-10-11 Bruno Haible <bruno@clisp.org> 3125 3126 * xgettext.c (main): Drop suffix ".in" from input file name, if 3127 present, before looking at the file extension. 3128 31292003-10-09 Bruno Haible <bruno@clisp.org> 3130 3131 * format-awk.c: Include xalloc.h instead of xmalloc.h. 3132 * format-c.c: Likewise. 3133 * format-elisp.c: Likewise. 3134 * format-gcc-internal.c: Likewise. 3135 * format-java.c: Likewise. 3136 * format-librep.c: Likewise. 3137 * format-lisp.c: Likewise. 3138 * format-pascal.c: Likewise. 3139 * format-perl.c: Likewise. 3140 * format-perl-brace.c: Likewise. 3141 * format-php.c: Likewise. 3142 * format-python.c: Likewise. 3143 * format-sh.c: Likewise. 3144 * format-tcl.c: Likewise. 3145 * format-ycp.c: Likewise. 3146 * gettext-po.c: Likewise. 3147 * hostname.c: Likewise. 3148 * message.c: Likewise. 3149 * msgexec.c: Likewise. 3150 * msgfilter.c: Likewise. 3151 * msgfmt.c: Likewise. 3152 * msggrep.c: Likewise. 3153 * msginit.c: Likewise. 3154 * msgl-cat.c: Likewise. 3155 * msgl-english.c: Likewise. 3156 * msgl-iconv.c: Likewise. 3157 * msgmerge.c: Likewise. 3158 * open-po.c: Likewise. 3159 * po-gram-gen.y: Likewise. 3160 * po-hash-gen.y: Likewise. 3161 * po-lex.c: Likewise. 3162 * read-mo.c: Likewise. 3163 * read-po-abstract.c: Likewise. 3164 * read-po.c: Likewise. 3165 * read-properties.c: Likewise. 3166 * str-list.c: Likewise. 3167 * write-java.c: Likewise. 3168 * write-mo.c: Likewise. 3169 * write-po.c: Likewise. 3170 * write-properties.c: Likewise. 3171 * write-tcl.c: Likewise. 3172 * x-awk.c: Likewise. 3173 * x-c.c: Likewise. 3174 * x-elisp.c: Likewise. 3175 * x-glade.c: Likewise. 3176 * x-java.c: Likewise. 3177 * x-librep.c: Likewise. 3178 * x-lisp.c: Likewise. 3179 * x-perl.c: Likewise. 3180 * x-php.c: Likewise. 3181 * x-po.c: Likewise. 3182 * x-python.c: Likewise. 3183 * x-rst.c: Likewise. 3184 * x-sh.c: Likewise. 3185 * x-smalltalk.c: Likewise. 3186 * x-tcl.c: Likewise. 3187 * x-ycp.c: Likewise. 3188 * xgettext.c: Likewise. 3189 31902003-10-07 Bruno Haible <bruno@clisp.org> 3191 3192 More reliable subprocess cleanup. 3193 * msgexec.c (process_string): Pass slave_process = true to 3194 create_pipe_out() and wait_subprocess(). 3195 * msgfilter.c (process_string): Pass slave_process = true to 3196 create_pipe_bidi() and wait_subprocess(). 3197 * msggrep.c (is_string_selected): Pass slave_process = true to 3198 create_pipe_out() and wait_subprocess(). 3199 * msginit.c (project_id, project_id_version, get_user_email, 3200 language_team_address): Pass slave_process = true to create_pipe_in() 3201 and wait_subprocess(). 3202 * read-java.c (execute_and_read_po_output): Likewise. 3203 * read-tcl.c (msgdomain_read_tcl): Likewise. 3204 * urlget.c (execute_it, fetch): Pass slave_process = true to execute(). 3205 32062003-10-05 Bruno Haible <bruno@clisp.org> 3207 3208 * write-java.c: Include fatal-signal.h, not signal.h. 3209 (uninstall_handlers): Remove function. 3210 (cleanup): Remove signal argument. Don't execute the signal's default 3211 action; leave that to the caller. 3212 (install_handlers, init_signal_set, block, unblock): Remove functions. 3213 (msgdomain_write_java): Invoke at_fatal_signal instead of 3214 install_handlers/uninstall_handlers. Invoke [un]block_fatal_signals 3215 instead of [un]block. 3216 32172003-10-05 Bruno Haible <bruno@clisp.org> 3218 3219 * xgettext.c (substring_match): Remove variable. 3220 (long_options): Remove --keyword-substring option. 3221 (main): Remove handling of --keyword-substring option. 3222 32232003-10-05 Bruno Haible <bruno@clisp.org> 3224 3225 * message.h (enum is_format): New item yes_according_to_context. 3226 * message.c (possible_format_p): Handle also yes_according_to_context. 3227 * write-po.c (make_format_description_string): Likewise. 3228 3229 * xgettext.h (struct flag_context_ty): New type. 3230 (null_context, passthrough_context): New declarations. 3231 (inherited_context): New declaration. 3232 (struct flag_context_list_ty): New type. 3233 (struct flag_context_list_iterator_ty): New type. 3234 (null_context_list_iterator, passthrough_context_list_iterator): New 3235 declarations. 3236 (flag_context_list_iterator): New declaration. 3237 (flag_context_list_iterator_advance): New declaration. 3238 (flag_context_list_table_ty): New type. 3239 (flag_context_list_table_lookup): New declaration. 3240 (xgettext_record_flag): New declaration. 3241 (remember_a_message, remember_a_message_plural): Add context argument. 3242 * xgettext.c: Include alloca.h. 3243 (flag_table_c, flag_table_gcc_internal, flag_table_sh, 3244 flag_table_python, flag_table_lisp, flag_table_elisp, 3245 flag_table_librep, flag_table_java, flag_table_awk, flag_table_ycp, 3246 flag_table_tcl, flag_table_perl, flag_table_php): New variables. 3247 (long_options): Add option --flag. 3248 (extractor_func): Add argument flag_table. 3249 (struct extractor_ty): New type. 3250 (main): Use type 'extractor_ty' instead of 'extractor_func'. 3251 Invoke init_flag_table_c(), init_flag_table_gcc_internal(), 3252 init_flag_table_sh(), init_flag_table_python(), init_flag_table_lisp(), 3253 init_flag_table_elisp(), init_flag_table_librep(), 3254 init_flag_table_java(), init_flag_table_awk(), init_flag_table_ycp(), 3255 init_flag_table_tcl(), init_flag_table_perl(), init_flag_table_php(). 3256 Implement option --flag. 3257 (usage): Rename a section to "Language specific options". Document 3258 the languages to which --extract-all, --keyword, --trigraphs are 3259 applicable. Document option --flag. 3260 (null_context): New variable. 3261 (passthrough_context): New variable. 3262 (inherited_context): New function. 3263 (null_context_list_iterator): New variable. 3264 (passthrough_context_circular_list, passthrough_context_list_iterator): 3265 New variables. 3266 (flag_context_list_iterator): New function. 3267 (flag_context_list_iterator_advance): New function. 3268 (flag_context_list_table_lookup): New function. 3269 (xgettext_record_flag): New function. 3270 (extract_from_file): Change argument type to 'extractor_ty' instead of 3271 'extractor_func'. Set current_formatstring_parser{1,2} before invoking 3272 the extractor. 3273 (set_format_flags_from_context): New function. 3274 (remember_a_message): Add context argument. Set some *-format flag if 3275 the context specifies it. 3276 (remember_a_message_plural): Likewise. 3277 (language_to_extractor): Change return type to 'extractor_ty' instead 3278 of 'extractor_func'. 3279 3280 * x-awk.h (SCANNERS_AWK): Refer to flag_table_awk. 3281 (extract_awk): Add argument flag_table. 3282 (init_flag_table_awk): New declaration. 3283 * x-awk.c (init_flag_table_awk): New function. 3284 (enum token_type_ty): New enum item token_type_semicolon. 3285 (x_awk_lex): Recognize semicolon. 3286 (flag_context_list_table): New variable. 3287 (extract_parenthesized): Add arguments outer_context, context_iter. 3288 Implement context handling depending on symbol before '('. Also 3289 recognize argument lists that start without '(', but only up to the 3290 next semicolon. 3291 (extract_awk): Add argument flag_table. Initialize 3292 flag_context_list_table. 3293 3294 * x-c.h (SCANNERS_C): Refer to flag_table_c, flag_table_gcc_internal. 3295 (extract_c): Add argument flag_table. 3296 (init_flag_table_c): New declaration. 3297 (init_flag_table_gcc_internal): New declaration. 3298 * x-c.c (init_flag_table_c): New function. 3299 (init_flag_table_gcc_internal): New function. 3300 (enum xgettext_token_type_ty): New item xgettext_token_type_other. 3301 (x_c_lex): For token_type_name, put the string into the resulting 3302 token instead of freeing it. Return token type 3303 xgettext_token_type_other instead of xgettext_token_type_symbol in 3304 some cases. 3305 (flag_context_list_table): New variable. 3306 (extract_parenthesized): Add arguments outer_context, context_iter. 3307 Implement context handling depending on symbol before '('. 3308 (extract_c): Add argument flag_table. Initialize 3309 flag_context_list_table. 3310 3311 * x-elisp.h (SCANNERS_ELISP): Refer to flag_table_elisp. 3312 (extract_elisp): Add argument flag_table. 3313 (init_flag_table_elisp): New declaration. 3314 * x-elisp.c (init_flag_table_elisp): New function. 3315 (flag_context_list_table): New variable. 3316 (read_object): Add argument outer_context. Implement context handling 3317 depending on first symbol after '('. 3318 (extract_elisp): Add argument flag_table. Initialize 3319 flag_context_list_table. 3320 3321 * x-glade.h (SCANNERS_GLADE): Update. 3322 (extract_glade): Add argument flag_table. 3323 * x-glade.c (start_element_handler, end_element_handler): Pass null 3324 context to remember_a_message. 3325 (extract_glade): Add argument flag_table. 3326 3327 * x-java.h (SCANNERS_JAVA): Refer to flag_table_java. 3328 (extract_java): Add argument flag_table. 3329 (init_flag_table_java): New declaration. 3330 * x-java.c (init_flag_table_java): New function. 3331 (flag_context_list_table): New variable. 3332 (extract_parenthesized): Add arguments outer_context, context_iter. 3333 Implement context handling depending on symbol before '('. 3334 (extract_java): Add argument flag_table. Initialize 3335 flag_context_list_table. 3336 3337 * x-librep.h (SCANNERS_ELISP): Refer to flag_table_librep. 3338 (extract_librep): Add argument flag_table. 3339 (init_flag_table_librep): New declaration. 3340 * x-librep.c (init_flag_table_librep): New function. 3341 (flag_context_list_table): New variable. 3342 (read_object): Add argument outer_context. Implement context handling 3343 depending on first symbol after '('. 3344 (extract_librep): Add argument flag_table. Initialize 3345 flag_context_list_table. 3346 3347 * x-lisp.h (SCANNERS_LISP): Refer to flag_table_lisp. 3348 (extract_lisp): Add argument flag_table. 3349 (init_flag_table_lisp): New declaration. 3350 * x-lisp.c (init_flag_table_lisp): New function. 3351 (flag_context_list_table): New variable. 3352 (read_object): Add argument outer_context. Implement context handling 3353 depending on first symbol after '('. 3354 (extract_lisp): Add argument flag_table. Initialize 3355 flag_context_list_table. 3356 3357 * x-perl.h (SCANNERS_PERL): Refer to flag_table_perl. 3358 (extract_perl): Add argument flag_table. 3359 (init_flag_table_perl): New declaration. 3360 * x-perl.c (init_flag_table_java): New function. 3361 (flag_context_list_table): New variable. 3362 (extract_variable): Update. Implement context handling depending on 3363 symbol before '{'...'}'. 3364 (interpolate_keywords): Implement context handling depending on symbol 3365 before '->' or '{'...'}'. 3366 (extract_balanced): Add arguments outer_context, context_iter. 3367 Implement context handling depending on symbol before '('. Also 3368 recognize argument lists that start without '('. 3369 (extract_perl): Add argument flag_table. Initialize 3370 flag_context_list_table. 3371 3372 * x-php.h (SCANNERS_PHP): Refer to flag_table_php. 3373 (extract_php): Add argument flag_table. 3374 (init_flag_table_php): New declaration. 3375 * x-php.c (init_flag_table_php): New function. 3376 (flag_context_list_table): New variable. 3377 (extract_parenthesized): Add arguments outer_context, context_iter. 3378 Implement context handling depending on symbol before '('. 3379 (extract_php): Add argument flag_table. Initialize 3380 flag_context_list_table. 3381 3382 * x-po.h (SCANNERS_PO): Update. 3383 (extract_po): Add argument flag_table. 3384 * x-properties.h (SCANNERS_PROPERTIES): Update. 3385 (extract_properties): Add argument flag_table. 3386 * x-po.c (extract_po): Add argument flag_table. 3387 (extract_properties): Add argument flag_table. 3388 3389 * x-python.h (SCANNERS_PYTHON): Refer to flag_table_python. 3390 (extract_python): Add argument flag_table. 3391 (init_flag_table_python): New declaration. 3392 * x-python.c (init_flag_table_python): New function. 3393 (flag_context_list_table): New variable. 3394 (extract_parenthesized): Add arguments outer_context, context_iter. 3395 Implement context handling depending on symbol before '('. 3396 (extract_python): Add argument flag_table. Initialize 3397 flag_context_list_table. 3398 3399 * x-rst.h (SCANNERS_RST): Update. 3400 (extract_rst): Add argument flag_table. 3401 * x-rst.c (extract_rst): Add argument flag_table. 3402 3403 * x-sh.h (SCANNERS_SH): Refer to flag_table_sh. 3404 (extract_sh): Add argument flag_table. 3405 (init_flag_table_sh): New declaration. 3406 * x-sh.c (init_flag_table_sh): New function. 3407 (flag_context_list_table): New variable. 3408 (read_word): Add context argument. 3409 (read_command): Add outer_context argument. Implement context handling 3410 depending on first symbol of command. 3411 (read_command_list): Add outer_context argument. 3412 (extract_sh): Add argument flag_table. Initialize 3413 flag_context_list_table. 3414 3415 * x-smalltalk.h (SCANNERS_SMALLTALK): Update. 3416 (extract_smalltalk): Add argument flag_table. 3417 * x-smalltalk.c (extract_smalltalk): Add argument flag_table. 3418 3419 * x-tcl.h (SCANNERS_TCL): Refer to flag_table_tcl. 3420 (extract_tcl): Add argument flag_table. 3421 (init_flag_table_tcl): New declaration. 3422 * x-tcl.c (init_flag_table_tcl): New function. 3423 (flag_context_list_table): New variable. 3424 (accumulate_word): Add context argument. 3425 (read_word): Add context argument. 3426 (read_command): Add outer_context argument. Implement context handling 3427 depending on first symbol of command. 3428 (read_command_list): Add outer_context argument. 3429 (extract_tcl): Add argument flag_table. Initialize 3430 flag_context_list_table. 3431 3432 * x-ycp.h (SCANNERS_YCP): Refer to flag_table_ycp. 3433 (extract_ycp): Add argument flag_table. 3434 (init_flag_table_ycp): New declaration. 3435 * x-ycp.c (init_flag_table_ycp): New function. 3436 (flag_context_list_table): New variable. 3437 (extract_parenthesized): New function, split off from extract_ycp. 3438 Implement context handling depending on symbol before '('. 3439 (extract_ycp): Add argument flag_table. Initialize 3440 flag_context_list_table. Call extract_parenthesized to do the work. 3441 3442 * po-lex.c (mbfile_getc, control_sequence): Remove explicit marking of 3443 strings as c-format, now done by xgettext. 3444 34452003-09-23 Bruno Haible <bruno@clisp.org> 3446 3447 * x-awk.c (extract_parenthesized): Remove optimization of the 3448 extract_all case. 3449 * x-c.c (extract_parenthesized): Likewise. 3450 * x-elisp.c (read_object): Likewise. 3451 * x-librep.c (read_object): Likewise. 3452 * x-lisp.c (read_object): Likewise. 3453 * x-perl.c (x_perl_prelex, extract_balanced): Likewise. 3454 * x-php.c (extract_parenthesized): Likewise. 3455 * x-python.c (extract_parenthesized): Likewise. 3456 * x-sh.c (read_command): Likewise. 3457 34582003-10-08 Bruno Haible <bruno@clisp.org> 3459 3460 * msgmerge.c (main): Make option -N work. 3461 Reported by Liu Garfield <jackliu9999@hotmail.com>. 3462 34632003-10-04 Bruno Haible <bruno@clisp.org> 3464 3465 New Java backend. 3466 * x-java.c: New file. 3467 * x-java.l: Remove file. 3468 * Makefile.am (xgettext_SOURCES): Add x-java.c, remove x-java.l. 3469 (x-java.c): Remove rule. 3470 * FILES: Update. 3471 34722003-09-22 Bruno Haible <bruno@clisp.org> 3473 3474 * x-glade.c (start_element_handler): Implement extract_all behaviour. 3475 34762003-10-04 Bruno Haible <bruno@clisp.org> 3477 3478 * x-glade.c (do_extract_glade): Initialize stack_depth. 3479 * x-perl.c (extract_perl): Initialize linesize and linepos. 3480 3481 * x-python.c (phase2_getc): Set last_comment_line. 3482 (phase5_get): Set last_non_comment_line. 3483 34842003-10-04 Bruno Haible <bruno@clisp.org> 3485 3486 * x-glade.c: Don't include msgl-ascii.h and msgl-iconv.h. 3487 * x-python.c: Likewise. 3488 * x-tcl.c: Likewise. 3489 34902003-10-06 Guido Flohr <guido@imperia.net> 3491 Bruno Haible <bruno@clisp.org> 3492 3493 * x-perl.c (enum symbol_type_ty): New enum. 3494 (struct token_ty): Rename field string_type to sub_type and change its 3495 type to 'int'. 3496 (extract_quotelike_pass3, interpolate_keywords): Update. 3497 (x_perl_prelex): Set sub_type also for symbol tokens. 3498 (x_perl_lex): Special handling of prototype argument lists. 3499 Reported by Crispin Flowerday <cflowerday@zeus.com>. 3500 35012003-09-22 Bruno Haible <bruno@clisp.org> 3502 3503 * x-sh.c (read_word): Warn about $"...". 3504 35052003-09-18 Bruno Haible <bruno@clisp.org> 3506 3507 * gettext-po.h (po_file_domain_header, po_header_field, 3508 po_message_is_obsolete, po_message_is_fuzzy, po_message_is_format): New 3509 declarations. 3510 * gettext-po.c (po_file_domain_header, po_header_field, 3511 po_message_is_obsolete, po_message_is_fuzzy, po_message_is_format): New 3512 functions. 3513 * Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 1:0:1. 3514 35152003-09-14 Bruno Haible <bruno@clisp.org> 3516 3517 * plural-count.c: Include plural-count.h. 3518 * x-po.c: Include x-properties.h. 3519 * x-java.l (append_strings): Change argument type to 'const char *'. 3520 35212003-09-14 Bruno Haible <bruno@clisp.org> 3522 3523 * msgfmt.c (check_plural_eval): Mark some strings as c-format. 3524 (msgfmt_add_message): Make static. 3525 * po-lex.c (mbfile_getc, control_sequence): Mark some strings as 3526 c-format. 3527 35282003-09-18 Bruno Haible <bruno@clisp.org> 3529 3530 * FILES: Update. 3531 35322003-09-14 Bruno Haible <bruno@clisp.org> 3533 3534 More reliable checking for read errors. 3535 * po-lex.c (mbfile_getc): Diagnose read errors also in the middle of 3536 multibyte characters. 3537 (lex_getc): Diagnose read errors also right after backslash. 3538 * x-rst.c (extract_rst): Diagnose read errors also inside ConstName 3539 and immediately after #. 3540 35412003-09-14 Bruno Haible <bruno@clisp.org> 3542 3543 * write-mo.c: Include fwriterror.h. 3544 (msgdomain_write_mo): Use fwriteerror, to get right errno value in 3545 error message about write error. 3546 * write-po.c: Include fwriterror.h. 3547 (msgdomain_list_print): Use fwriteerror, to get right errno value in 3548 error message about write error. 3549 * write-java.c: Include fwriterror.h. 3550 (msgdomain_write_java): Use fwriteerror, to get right errno value in 3551 error message about write error. 3552 * write-tcl.c: Include fwriterror.h. 3553 (msgdomain_write_tcl): Use fwriteerror, to get right errno value in 3554 error message about write error. 3555 35562003-09-18 Bruno Haible <bruno@clisp.org> 3557 3558 * xgettext.c (from_current_source_encoding): Use multiline_error, 3559 for a prettier error message. 3560 3561 * x-perl.c (extract_quotelike_pass1): Store counter_delim instead of 3562 EOF as delimiter, to avoid error during from_current_source_encoding. 3563 Reported by Crispin Flowerday <cflowerday@zeus.com>. 3564 35652003-09-13 Bruno Haible <bruno@clisp.org> 3566 3567 * format-sh.c (INVALID_SHELL_SYNTAX, 3568 INVALID_CONTEXT_DEPENDENT_VARIABLE): New macros. 3569 (format_parse): Reject constructs like ${variable-default} and $?. 3570 35712003-09-13 Bruno Haible <bruno@clisp.org> 3572 3573 Fix behaviour of "<program> --help > /dev/full". 3574 * hostname.c: Include closeout.h. 3575 (main): Register close_stdout for execution at program exit. 3576 * msgattrib.c: Include closeout.h. 3577 (main): Register close_stdout for execution at program exit. 3578 * msgcat.c: Include closeout.h. 3579 (main): Register close_stdout for execution at program exit. 3580 * msgcmp.c: Include closeout.h. 3581 (main): Register close_stdout for execution at program exit. 3582 * msgcomm.c: Include closeout.h. 3583 (main): Register close_stdout for execution at program exit. 3584 * msgconv.c: Include closeout.h. 3585 (main): Register close_stdout for execution at program exit. 3586 * msgen.c: Include closeout.h. 3587 (main): Register close_stdout for execution at program exit. 3588 * msgexec.c: Include closeout.h. 3589 (main): Register close_stdout for execution at program exit. 3590 * msgfilter.c: Include closeout.h. 3591 (main): Register close_stdout for execution at program exit. 3592 * msgfmt.c: Include closeout.h. 3593 (main): Register close_stdout for execution at program exit. 3594 * msggrep.c: Include closeout.h. 3595 (main): Register close_stdout for execution at program exit. 3596 * msginit.c: Include closeout.h. 3597 (main): Register close_stdout for execution at program exit. 3598 * msgmerge.c: Include closeout.h. 3599 (main): Register close_stdout for execution at program exit. 3600 * msgunfmt.c: Include closeout.h. 3601 (main): Register close_stdout for execution at program exit. 3602 * msguniq.c: Include closeout.h. 3603 (main): Register close_stdout for execution at program exit. 3604 * urlget.c: Include closeout.h. 3605 (main): Register close_stdout for execution at program exit. 3606 * xgettext.c: Include closeout.h. 3607 (main): Register close_stdout for execution at program exit. 3608 * write-po.c (msgdomain_list_print): Don't fclose (stdout) here. 3609 36102003-09-11 Bruno Haible <bruno@clisp.org> 3611 3612 * po-lex.c (mbfile_getc): Handle unexpected return value of 3613 u8_mbtouc(). Reported by Jochen Hein <jochen@jochen.org>. 3614 36152003-09-09 Bruno Haible <bruno@clisp.org> 3616 3617 * read-properties.c (phase4_getuc): Cast line_number to 'unsigned long' 3618 before outputting it. 3619 36202003-09-09 Bruno Haible <bruno@clisp.org> 3621 3622 * po-lex.c: Test HAVE_DECL_GETC_UNLOCKED instead of HAVE_GETC_UNLOCKED. 3623 * write-po.c: Test HAVE_DECL_PUTC_UNLOCKED instead of 3624 HAVE_PUTC_UNLOCKED. 3625 36262003-09-09 Guido Flohr <guido@imperia.net> 3627 3628 * x-perl.c (extract_quotelike_pass3): Change \l handling to no longer 3629 eat up non-uppercase characters; likewise for \u. Also make \l and \u 3630 work on characters written using hex or octal escape sequence. Fix \Q 3631 handling. With option --extract-all, avoid "invalid variable 3632 interpolation" warnings. 3633 (x_perl_prelex): With option --extract-all, keep variables inside 3634 double-quoted strings untouched. 3635 36362003-09-03 Bruno Haible <bruno@clisp.org> 3637 3638 * x-sh.h: New file. 3639 * x-sh.c: New file. 3640 * xgettext.c: Include x-sh.h. 3641 (main): Call x_sh_extract_all, x_sh_keyword. 3642 (usage): Mention Shell language. 3643 (language_to_extractor): Add Shell rule. 3644 (extension_to_language): Add Shell rule. 3645 * Makefile.am (noinst_HEADERS): Add x-sh.h. 3646 (xgettext_SOURCES): Add x-sh.c. 3647 * Makefile.msvc (xgettext_OBJECTS): Add x-sh.obj. 3648 (x-sh.obj): New rule. 3649 * Makefile.vms (xgettext_OBJECTS): Add x-sh.obj. 3650 (x-sh.obj): New rule. 3651 36522003-08-31 Bruno Haible <bruno@clisp.org> 3653 3654 * format-sh.c: New file. 3655 * message.h (format_sh): New enum value. 3656 (NFORMATS): Increment. 3657 * format.h (formatstring_sh): New declaration. 3658 * format.c (formatstring_parsers): Add entry for sh. 3659 * message.c (format_language, format_language_pretty): Likewise. 3660 * Makefile.am (FORMAT_SOURCE): Add format-sh.c. 3661 * Makefile.msvc (OBJECTS): Add format-sh.obj. 3662 (format-sh.obj): New rule. 3663 * Makefile.vms (OBJECTS): Add format-sh.obj. 3664 (format-sh.obj): New rule. 3665 36662003-08-31 Bruno Haible <bruno@clisp.org> 3667 3668 * format-gcc-internal.c (isdigit): Remove unused macro. 3669 * format-perl-brace.c (isdigit): Likewise. 3670 36712003-09-01 Guido Flohr <guido@imperia.net> 3672 3673 * x-perl.c (extract_balanced): Access the global last_token. 3674 Initialize last_token and prefer_division_over_regexp here. 3675 (extract_perl): Not here. 3676 36772003-08-29 Bruno Haible <bruno@clisp.org> 3678 3679 * x-perl.c: Include getline.h. 3680 36812003-08-24 Bruno Haible <bruno@clisp.org> 3682 3683 * Makefile.msvc (format.obj, msgmerge.obj, xgettext.obj, msgattrib.obj, 3684 msgcat.obj, msgcomm.obj, msgconv.obj, msgen.obj, msgfilter.obj, 3685 msggrep.obj, msguniq.obj): Compile these in C++ mode. This works around 3686 the "non-constant initializer" error that we get for addresses of 3687 variables in DLLs in C mode. 3688 36892003-08-24 Bruno Haible <bruno@clisp.org> 3690 3691 * msgfilter.c (process_message): Cast xrealloc() result. 3692 36932003-08-24 Bruno Haible <bruno@clisp.org> 3694 3695 * msgfilter.c: On Windows, include <io.h> instead of <unistd.h>. 3696 * msggrep.c: Likewise. 3697 36982003-08-24 Bruno Haible <bruno@clisp.org> 3699 3700 * plural-count.h: New file. 3701 * plural-count.c: New file, extracted from msgmerge.c. 3702 * msgmerge.c: Include plural-count.h instead of plural-exp.h. 3703 (match_domain): Use function get_plural_count(). 3704 * Makefile.am (noinst_HEADERS): Add plural-count.h. 3705 (msgmerge_SOURCES): Add plural-count.c. 3706 * Makefile.msvc (msgmerge_OBJECTS): Add plural-count.obj. 3707 (plural-count.obj): New rule. 3708 * Makefile.vms (msgmerge_OBJECTS): Add plural-count.obj. 3709 (plural-count.obj): New rule. 3710 37112003-08-24 Bruno Haible <bruno@clisp.org> 3712 3713 Support for building DLLs on Windows. 3714 * format.h (formatstring_c, formatstring_python, formatstring_lisp, 3715 formatstring_elisp, formatstring_librep, formatstring_smalltalk, 3716 formatstring_java, formatstring_awk, formatstring_pascal, 3717 formatstring_ycp, formatstring_tcl, formatstring_perl, 3718 formatstring_perl_brace, formatstring_php, formatstring_gcc_internal, 3719 formatstring_parsers): Add DLL_VARIABLE attribute. 3720 * message.h (format_language, format_language_pretty): Likewise. 3721 * msgl-cat.h (more_than, less_than, use_first, msgcomm_mode, 3722 omit_header): Likewise. 3723 * plural-table.h (plural_table, plural_table_size): Likewise. 3724 * po-charset.h (po_charset_ascii, po_charset_utf8, po_lex_charset, 3725 po_lex_iconv, po_lex_weird_cjk): Likewise. 3726 * po-lex.h (gram_pos, gram_pos_column, gram_max_allowed_errors, 3727 pass_obsolete_entries): Likewise. 3728 * read-po.h (line_comment, allow_duplicates, input_syntax): Likewise. 3729 * write-mo.h (alignment, no_hash_table): Likewise. 3730 * Makefile.am (po-gram-gen2.h): Likewise. 3731 37322003-08-24 Bruno Haible <bruno@clisp.org> 3733 3734 * Makefile.msvc (gettext-po.obj, gettextpo.lib, gettextpo.res): New 3735 rules. 3736 (all): Depend on gettextpo.lib. 3737 (install, installdirs, uninstall): Install/uninstall gettext-po.h, 3738 gettextpo.dll and gettextpo.lib. 3739 * Makefile.vms (gettext-po.obj, gettextpo.olb): New rules. 3740 (all): Depend on gettextpo.olb. 3741 (install, installdirs, uninstall): Install/uninstall gettext-po.h, 3742 gettextpo.olb. 3743 37442003-08-24 Bruno Haible <bruno@clisp.org> 3745 3746 * dir-list.h: Make this file includable in C++ mode: add extern "C". 3747 * file-list.h: Likewise. 3748 * format.h: Likewise. 3749 * message.h: Likewise. 3750 * msgl-ascii.h: Likewise. 3751 * msgl-cat.h: Likewise. 3752 * msgl-charset.h: Likewise. 3753 * msgl-english.h: Likewise. 3754 * msgl-equal.h: Likewise. 3755 * msgl-iconv.h: Likewise. 3756 * open-po.h: Likewise. 3757 * po-charset.h: Likewise. 3758 * po-lex.h: Likewise. 3759 * po-time.h: Likewise. 3760 * read-po-abstract.h: Likewise. 3761 * str-list.h: Likewise. 3762 * write-po.h: Likewise. 3763 * xgettext.h: Likewise. 3764 * read-po.h: Likewise. 3765 (this): Redefine to a different symbol. 3766 * xgettext.c: Add extern "C" around all "x-*.h" includes. 3767 37682003-08-22 Bruno Haible <bruno@clisp.org> 3769 3770 * format-awk.c: Include error-progname.h instead of progname.h. 3771 * format-c.c: Likewise. 3772 * format-elisp.c: Likewise. 3773 * format-gcc-internal.c: Likewise. 3774 * format-java.c: Likewise. 3775 * format-librep.c: Likewise. 3776 * format-lisp.c: Likewise. 3777 * format-pascal.c: Likewise. 3778 * format-perl.c: Likewise. 3779 * format-perl-brace.c: Likewise. 3780 * format-php.c: Likewise. 3781 * format-python.c: Likewise. 3782 * format-tcl.c: Likewise. 3783 * format-ycp.c: Likewise. 3784 * po-lex.h: Likewise. 3785 * read-properties.c: Likewise. 3786 * write-po.c: Likewise. 3787 * x-awk.c: Likewise. 3788 * x-c.c: Likewise. 3789 * x-perl.c: Likewise. 3790 * x-python.c: Likewise. 3791 * x-rst.c: Likewise. 3792 * hostname.c: Include error-progname.h. 3793 * msgattrib.c: Likewise. 3794 * msgcat.c: Likewise. 3795 * msgcmp.c: Likewise. 3796 * msgcomm.c: Likewise. 3797 * msgconv.c: Likewise. 3798 * msgen.c: Likewise. 3799 * msgexec.c: Likewise. 3800 * msgfilter.c: Likewise. 3801 * msgfmt.c: Likewise. 3802 * msggrep.c: Likewise. 3803 * msginit.c: Likewise. 3804 * msgmerge.c: Likewise. 3805 * msgunfmt.c: Likewise. 3806 * msguniq.c: Likewise. 3807 * urlget.c: Likewise. 3808 * xgettext.c: Likewise. 3809 * po-lex.c: Include error-progname.h and pos.h. 3810 38112003-08-15 Bruno Haible <bruno@clisp.org> 3812 3813 * msginit.c (catalogname_for_locale): Add entries for Aragonese, 3814 Haitian, Sichuan Yi, Limburgish. 3815 (englishname_of_language): Likewise. 3816 38172003-08-08 Bruno Haible <bruno@clisp.org> 3818 3819 * format-gcc-internal.c: New file. 3820 * message.h (format_gcc_internal): New enum value. 3821 (NFORMATS): Increment. 3822 * format.h (formatstring_gcc_internal): New declaration. 3823 * format.c (formatstring_parsers): Add entry for gcc_internal. 3824 * message.c (format_language, format_language_pretty): Likewise. 3825 * x-c.h (SCANNERS_C): Add an entry for GCC-source. 3826 * xgettext.c (usage): Mention GCC-source language. 3827 * Makefile.am (FORMAT_SOURCE): Add format-gcc-internal.c. 3828 * Makefile.msvc (OBJECTS): Add format-gcc-internal.obj. 3829 (format-gcc-internal.obj): New rule. 3830 * Makefile.vms (OBJECTS): Add format-gcc-internal.obj. 3831 (format-gcc-internal.obj): New rule. 3832 38332003-08-04 Bruno Haible <bruno@clisp.org> 3834 3835 * x-perl.c (extract_quotelike_pass3): Fix \x handling. 3836 Reported by Guido Flohr. 3837 38382003-07-05 Bruno Haible <bruno@clisp.org> 3839 3840 * format-perl-brace.c: Renamed from format-perl-bracket.c. Recognize 3841 braces instead of brackets. 3842 * format.h (formatstring_perl_brace): Renamed from 3843 formatstring_perl_bracket. 3844 * format.c (formatstring_parsers): Add formatstring_perl_brace, remove 3845 formatstring_perl_bracket. 3846 * message.h (enum format_type): Add format_perl_brace, remove 3847 format_perl_bracket. 3848 * message.c (format_language, format_language_pretty): Update. 3849 * x-perl.h (SCANNERS_PERL): Update. 3850 * Makefile.am (FORMAT_SOURCE): Add format-perl-brace.c, remove 3851 format-perl-bracket.c. 3852 * Makefile.msvc (OBJECTS): Add format-perl-brace.obj, remove 3853 format-perl-bracket.obj. 3854 (format-perl-brace.obj): Renamed from format-perl-bracket.obj. 3855 * Makefile.vms (OBJECTS): Add format-perl-brace.obj, remove 3856 format-perl-bracket.obj. 3857 (format-perl-brace.obj): Renamed from format-perl-bracket.obj. 3858 38592003-07-03 Bruno Haible <bruno@clisp.org> 3860 3861 Support for PHP >= 4.2.0. 3862 * x-php.c (init_keywords): Add ngettext, dngettext, dcngettext to the 3863 built-in keywords. 3864 Reported by A. Sopicki <a.sopicki@gmx.de>. 3865 38662003-06-27 Bruno Haible <bruno@clisp.org> 3867 3868 * xgettext.h (from_current_source_encoding): New declaraction. 3869 * xgettext.c (from_current_source_encoding): New function. 3870 (CONVERT_STRING): Use it. 3871 * x-perl.c: Include po-charset.h. 3872 (get_here_document): Convert each line to UTF-8. 3873 (phase2_getc): Convert each comment to UTF-8. Tell xgettext_comment_add 3874 to not convert it. 3875 (extract_quotelike_pass1_utf8): New function. 3876 (extract_quotelike): Use extract_quotelike_pass1_utf8. 3877 (extract_triple_quotelike): Likewise. 3878 (extract_variable): Tell remember_a_message to not convert the string. 3879 (interpolate_keywords): Likewise. 3880 (extract_balanced): Tell remember_a_message, remember_a_message_plural 3881 to not convert the string. 3882 38832003-06-23 Guido Flohr <guido@imperia.net> 3884 3885 * x-perl.c (extract_quotelike_pass3): Fix handling of doubled 3886 backslashes in single-quoted strings. 3887 38882003-06-23 Bruno Haible <bruno@clisp.org> 3889 3890 * format-perl-bracket.c (format_check): Allow additional bracketed 3891 items in the msgstr. 3892 38932003-06-22 Bruno Haible <bruno@clisp.org> 3894 3895 * write-properties.c: Don't include exit.h and gettext.h. 3896 38972003-06-22 Bruno Haible <bruno@clisp.org> 3898 3899 * x-php.c (phase3_ungetc): Comment out unused function. 3900 39012003-06-21 Bruno Haible <bruno@clisp.org> 3902 3903 * format-perl.c: Complete rewrite. 3904 * format-perl-bracket.c: New file. 3905 * message.h (format_perl_bracket): New enum value. 3906 (NFORMATS): Increment. 3907 * format.h (formatstring_perl_bracket): New declaration. 3908 * format.c (formatstring_parsers): Add entry for perl_bracket. 3909 * message.c (format_language, format_language_pretty): Likewise. 3910 * x-perl.h (SCANNERS_PERL): Use formatstring_perl and 3911 formatstring_perl_bracket. 3912 * Makefile.am (FORMAT_SOURCE): Add format-perl-bracket.c. 3913 * Makefile.msvc (OBJECTS): Add format-perl.obj,format-perl-bracket.obj. 3914 (xgettext_OBJECTS): Add x-perl.obj. 3915 (format-perl.obj, format-perl-bracket.obj, x-perl.obj): New rules. 3916 * Makefile.vms (OBJECTS): Add format-perl.obj, format-perl-bracket.obj. 3917 (xgettext_OBJECTS): Add x-perl.obj. 3918 (format-perl.obj, format-perl-bracket.obj, x-perl.obj): New rules. 3919 3920 * x-perl.c (extract_quotelike_pass3): Don't give an invalid 3921 interpolation error for a backslashed dollar sign. 3922 39232003-06-21 Bruno Haible <bruno@clisp.org> 3924 3925 * x-perl.c (extract_quotelike_pass3): Fix handling of double backslash. 3926 39272003-06-19 Bruno Haible <bruno@clisp.org> 3928 3929 * x-perl.c (enum string_type_ty): Remove trailing comma. 3930 (interpolate_keywords::enum parser_state): Likewise. 3931 (extract_quotelike_pass3): Cast first argument of u8_uctomb(). 3932 39332003-06-15 Bruno Haible <bruno@clisp.org> 3934 3935 * x-awk.c: Reorder definitions. 3936 * x-c.c: Reorder definitions. 3937 * x-perl.c: Reorder definitions. 3938 * x-php.c: Reorder definitions. 3939 * x-python.c: Reorder definitions. 3940 * x-smalltalk.c: Reorder definitions. 3941 * x-ycp.c: Reorder definitions. 3942 39432003-06-15 Bruno Haible <bruno@clisp.org> 3944 3945 * x-perl.c (struct stack_entry): Remove type. 3946 (struct stack): Remove type. 3947 (struct token_stack_ty): New type. 3948 (token_stack): Change type to 'struct token_stack_ty'. 3949 (token_stack_dump): Renamed from stack_dump. Update. 3950 (token_stack_push): Renamed from stack_unshift. Rewritten. 3951 (token_stack_pop): Renamed from stack_shift. Rewritten. 3952 (token_stack_peek): Renamed from stack_head. Rewritten. 3953 (token_stack_free): Renamed from stack_free. Rewritten. 3954 (x_perl_lex, x_perl_unlex, extract_perl): Update. 3955 39562003-06-15 Bruno Haible <bruno@clisp.org> 3957 3958 * x-perl.c (DEBUG_MEMORY): Remove macro. 3959 (remember_a_message_debug, remember_a_message_plural_debug, 3960 xmalloc_debug, xrealloc_debug, xrealloc_static_debug, xstrdup_debug, 3961 free_debug): Remove functions. 3962 (xrealloc_static): Remove macro. Use xrealloc instead. 3963 39642003-06-15 Bruno Haible <bruno@clisp.org> 3965 3966 * x-awk.c (phase2_getc, x_awk_lex): Increase bufmax proportionally. 3967 * x-c.c (comment_add, comment_line_end, phase5_get, phase6_get): 3968 Likewise. 3969 * x-elisp.c (comment_add, comment_line_end): Likewise. 3970 * x-librep.c (comment_add, comment_line_end): Likewise. 3971 * x-lisp.c (comment_add, comment_line_end): Likewise. 3972 * x-php.c (comment_add, comment_line_end, x_php_lex): Likewise. 3973 * x-python.c (comment_add, comment_line_end, phase5_get): Likewise. 3974 * x-rst.c (extract_rst): Likewise. 3975 * x-smalltalk.c (comment_add, comment_line_end, phase2_get): Likewise. 3976 * x-tcl.c (comment_add, comment_line_end): Likewise. 3977 * x-ycp.c (phase2_getc, x_ycp_lex): Likewise. 3978 39792003-06-15 Bruno Haible <bruno@clisp.org> 3980 3981 * xgettext.c (current_formatstring_parser1, 3982 current_formatstring_parser2): New variables, replacing 3983 current_formatstring_parser. 3984 (remember_a_message, remember_a_message_plural): Try both 3985 formatstring parsers. 3986 (language_to_extractor): Allow two formatstring parsers per language, 3987 not just one. 3988 * x-perl.h (SCANNERS_PERL): Add formatstring_c as secondary format 3989 string parser. 3990 * x-awk.h (SCANNERS_AWK): Update. 3991 * x-c.h (SCANNERS_C): Update. 3992 * x-elisp.h (SCANNERS_ELISP): Update. 3993 * x-glade.h (SCANNERS_GLADE): Update. 3994 * x-java.h (SCANNERS_JAVA): Update. 3995 * x-librep.h (SCANNERS_LIBREP): Update. 3996 * x-lisp.h (SCANNERS_LISP): Update. 3997 * x-php.h (SCANNERS_PHP): Update. 3998 * x-po.h (SCANNERS_PO): Update. 3999 * x-properties.h (SCANNERS_PROPERTIES): Update. 4000 * x-python.h (SCANNERS_PYTHON): Update. 4001 * x-rst.h (SCANNERS_RST): Update. 4002 * x-smalltalk.h (SCANNERS_SMALLTALK): Update. 4003 * x-tcl.h (SCANNERS_TCL): Update. 4004 * x-ycp.h (SCANNERS_YCP): Update. 4005 40062003-06-15 Bruno Haible <bruno@clisp.org> 4007 4008 * x-perl.c (case_whitespace): New macro. 4009 (is_whitespace): New function. 4010 (interpolate_keywords): Add lineno argument. Track newlines to update 4011 lineno while processing the string. Use is_whitespace. 4012 (extract_triple_quotelike): Update. Use is_whitespace. 4013 (extract_variable): Simplify: add final NUL byte only when done. Use 4014 is_whitespace. 4015 (x_perl_prelex): Use is_whitespace. After reading a here document, use 4016 line_number+1, not line_number. Fix buffer overrun in <<XYZ handling. 4017 (collect_message): Use is_whitespace. 4018 (extract_balanced): Call free_token at the end of the loop, not at the 4019 beginning. 4020 40212003-06-14 Bruno Haible <bruno@clisp.org> 4022 4023 * x-perl.c (enum token_type_ty): Reorder, so as to simplify the 4024 function free_token(). 4025 (struct token_ty): Fix comments. 4026 (token2string): Add const. 4027 (token_stack): Make static. 4028 (*_debug, stack_dump): Remove all fflushs. 4029 (linebuf, linesize, linepos, linebuf_size, last_token, here_eaten, 4030 end_of_file): Make static. 4031 (last_string, last_string_finished): Remove unused variables. 4032 (phase1_getc, get_here_document, skip_pod): Test getline() result 4033 for being < 0, not == EOF. 4034 (phase1_ungetc): Signal internal error through abort(), not exit(). 4035 (get_here_document): Tweak. Increase bufmax proportionally. 4036 (phase2_getc): Increase bufmax proportionally. 4037 (prefer_division_over_regexp): Fix comment. 4038 (extract_hex, extract_oct): Add const. Simplify. 4039 (extract_quotelike): Add a safety check. 4040 (extract_quotelike_pass1): Increase bufmax proportionally. Fix 4041 insufficient memory allocation at "bufpos + len >= bufmax". 4042 (extract_quotelike_pass3): Increase bufmax proportionally. Make crs 4043 const. After \x{ABC} position crs after the closing brace. Simplify \c 4044 code. Reduce memory allocation when \N{ABC} is seen. Fix bug in \l and 4045 \u. Fix error message when $ or @ is seen. 4046 (extract_variable): Increase bufmax proportionally. 4047 (interpolate_keywords): Likewise. Convert c's value to unsigned char. 4048 (x_perl_prelex): Increase bufmax proportionally. Compute 4th argument 4049 to extract_triple_quotelike completely. 4050 (extract_perl): Initialize token_stack correctly. 4051 40522003-06-13 Bruno Haible <bruno@clisp.org> 4053 4054 * msgexec.c (process_string): Pass null_stderr=false. 4055 * msgfilter.c (process_string): Likewise. 4056 * msggrep.c (is_string_selected): Likewise. 4057 * read-java.c (execute_and_read_po_output): Likewise. 4058 * read-tcl.c (msgdomain_read_tcl): Likewise. 4059 * msginit.c (project_id, project_id_version, get_user_email, 4060 language_team_address): Return a default value if the subprocess 4061 fails, instead of exiting. 4062 40632003-06-12 Bruno Haible <bruno@clisp.org> 4064 4065 * Makefile.am (noinst_HEADERS): Add x-perl.h. 4066 (FORMAT_SOURCE): Add format-perl.c. 4067 (xgettext_SOURCES): Add x-perl.c. 4068 * message.h (enum format_type): Mention perl between tcl and php. 4069 * message.c (format_language, format_language_pretty): Likewise. 4070 * format.h (formatstring_perl): Likewise. 4071 * format.c (formatstring_parsers): Likewise. 4072 * format-perl.c: Use GNU coding style. Prefer xmalloc over xcalloc. 4073 * x-perl.h: Assume ANSI C. 4074 * x-perl.c: Assume ANSI C. Use GNU coding style. Prefer xmalloc over 4075 xcalloc. 4076 (token_buf): Remove unused variable. 4077 (xcalloc_debug, stack_push, stack_pop): Remove unused functions. 4078 * xgettext.c: Mention perl between tcl and php. 4079 40802003-06-11 Guido Flohr <guido@imperia.net> 4081 4082 * message.h (enum format_type): New enum value 'format_perl'. 4083 (NFORMATS): Increment. 4084 * message.c (format_language, format_language_pretty): Add entry 4085 for perl. 4086 * format.h (formatstring_perl): New declaration. 4087 * format-perl.c: New file. 4088 * format.c (formatstring_parsers): Add entry for perl. 4089 * x-perl.h: New file. 4090 * x-perl.c: New file. 4091 * xgettext.c: Include x-perl.h. 4092 (main): Call x_perl_extract_all, x_perl_keyword. 4093 (usage): Mention Perl language. 4094 (language_to_extractor): Add Perl rule. 4095 (extension_to_language): Add Perl rule. 4096 40972003-06-08 Bruno Haible <bruno@clisp.org> 4098 4099 * Makefile.vms (LDADD): Take options from .opt files. 4100 (libiconv.opt): New rule. 4101 (msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe, xgettext.exe, 4102 msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe, 4103 msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe): 4104 Depend on it. 4105 * plural-eval.c: Include "eval-plural.h" without a path, rely on the 4106 Makefile's -I options instead. 4107 * read-properties.c (conv_from_java): Change type of q to 4108 'unsigned char *'. 4109 Reported by Jouk Jansen <joukj@hrem.stm.tudelft.nl>. 4110 41112003-05-27 Bruno Haible <bruno@clisp.org> 4112 4113 * plural-table.c (plural_table): Correct entry for Slovak. 4114 Reported by Marcel Telka <marcel@telka.sk>. 4115 41162003-05-24 Bruno Haible <bruno@clisp.org> 4117 4118 * x-glade.h (EXTENSIONS_GLADE): Also recognize the .glade2 extension. 4119 * x-glade.c (start_element_handler): Also extract strings according to 4120 Glade 2 conventions. 4121 41222003-05-22 Bruno Haible <bruno@clisp.org> 4123 4124 * gettext-0.12.1 released. 4125 41262003-05-21 Bruno Haible <bruno@clisp.org> 4127 4128 * msggrep.c (main) [Solaris]: Fix syntax error. 4129 Reported by Valery Beaud <valery.beaud@art.alcatel.fr>. 4130 41312003-05-21 Bruno Haible <bruno@clisp.org> 4132 4133 * xgettext.c (output_syntax): New variable. 4134 (main): Set it. 4135 (finalize_header): If --properties-output was given, set the charset. 4136 41372003-05-18 Bruno Haible <bruno@clisp.org> 4138 4139 * Makefile.msvc (DEBUGFLAGS): New variable. 4140 (gettextsrc.lib): Use it. 4141 (msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe, xgettext.exe, 4142 msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe, 4143 msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe): 4144 Use it, and MFLAGS too. 4145 41462003-05-17 Bruno Haible <bruno@clisp.org> 4147 4148 * gettext-0.12 released. 4149 41502003-05-17 Bruno Haible <bruno@clisp.org> 4151 4152 * Makefile.msvc (msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe, 4153 msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe, 4154 msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe): 4155 Link with iconv.lib, needed by intl.lib. 4156 41572003-05-12 Bruno Haible <bruno@clisp.org> 4158 4159 * msginit.c (F_OK): Provide a fallback value. 4160 Reported by Perry Rapp. 4161 41622003-05-10 Bruno Haible <bruno@clisp.org> 4163 4164 * msgl-iconv.c (iconv_string): Don't return -1 just because the string 4165 is longer than 4 KB. 4166 Reported by Denis Barbier <barbier@linuxfr.org>. 4167 41682003-05-04 Bruno Haible <bruno@clisp.org> 4169 4170 * po-lex.h (po_gram_error): Don't use ISO C 99 feature on DEC C. 4171 * po-lex.c (po_gram_error): LIkewise. 4172 41732003-05-03 Bruno Haible <bruno@clisp.org> 4174 4175 * msgfilter.c: Include <sys/select.h> also on EMX. 4176 Reported by Andreas Buening <andreas.buening@nexgo.de>. 4177 41782003-04-26 Bruno Haible <bruno@clisp.org> 4179 4180 * message.h (msgdomain_list_ty): Add field 'encoding'. 4181 * message.c (msgdomain_list_alloc): Initialize it. 4182 * read-properties.h: New file. 4183 * read-properties.c: New file. 4184 * read-po-abstract.h (abstract_po_reader_class_ty): In 4185 directive_message field, add force_fuzzy argument. 4186 (po_scan_start, po_scan_end): Remove declarations. 4187 (input_syntax_ty): New type. 4188 (po_callback_message): Add force_fuzzy argument. 4189 * read-po-abstract.c (call_directive_message, po_callback_message): 4190 Add force_fuzzy argument. 4191 (po_scan_start, po_scan_end): Make static. 4192 (po_scan): Add support for syntax_properties. Move 4193 error_message_count handling to here. 4194 (po_callback_message): Move po_lex_charset_set invocation away. 4195 * read-po.h (default_po_reader_class_ty): In add_message field, add 4196 force_fuzzy argument. 4197 (default_directive_message, default_add_message): Add force_fuzzy 4198 argument. 4199 (inout_syntax): New declaration. 4200 * read-po.c (call_add_message): Add force_fuzzy argument. 4201 (default_directive_message, default_add_message): Likewise. 4202 (input_syntax): New variable. 4203 (read_po): Pass input_syntax to po_scan(). Set mdlp->encoding if 4204 possible. 4205 * po-gram-gen.y: Pass force_fuzzy = false. 4206 (do_callback_message): New function. Move po_lex_charset_set 4207 invocation to here. 4208 * po-lex.c (lex_end): Move error_message_count handling away. 4209 * write-properties.h: New file. 4210 * write-properties.c: New file. 4211 * write-po.h (message_print_syntax_properties): New declaration. 4212 * write-po.c (use_syntax_properties): New variable. 4213 (message_print_syntax_properties): New function. 4214 (msgdomain_list_print_po): New function, extracted from 4215 msgdomain_list_print. 4216 (msgdomain_list_print): Add check for plural forms. Add support for 4217 writing the .properties format. 4218 (extract_po): Renamed from extract. 4219 * write-java.h (msgdomain_write_java): Add canon_encoding argument. 4220 * write-java.c (msgdomain_write_java): Likewise. 4221 * write-tcl.h (msgdomain_write_tcl): Likewise. 4222 * write-tcl.c (msgdomain_write_tcl): Likewise. 4223 * msgl-cat.c (catenate_msgdomain_list): Use mdlp->encoding if there 4224 is no header entry. Set total_mdlp->encoding if possible. 4225 * msgl-iconv.c (iconv_msgdomain_list): Use mdlp->encoding if there 4226 is no header entry. Set mdlp->encoding. 4227 * msgattrib.c (long_options): Add --properties-input/output. 4228 (main): Handle them. 4229 (usage): Document options -P and -p. 4230 * msgcat.c (long_options): Add --properties-input/output. 4231 (main): Handle them. If option -p is used, convert to UTF-8 and 4232 ignore the to_code. 4233 (usage): Document options -P and -p. 4234 * msgcomm.c (long_options): Add --properties-input/output. 4235 (main): Handle them. 4236 (usage): Document options -P and -p. 4237 * msgconv.c (long_options): Add --properties-input/output. 4238 (main): Handle them. If option -p is used, ignore the to_code. 4239 (usage): Document options -P and -p. 4240 * msgen.c (long_options): Add --properties-input/output. 4241 (main): Handle them. 4242 (usage): Document options -P and -p. 4243 * msgfilter.c (long_options): Add --properties-input/output. 4244 (main): Handle them. 4245 (usage): Document options -P and -p. 4246 * msggrep.c (long_options): Add --properties-input/output. 4247 (main): Handle them. 4248 (usage): Document options -P and -p. 4249 * msginit.c (long_options): Add --properties-input/output. 4250 (main): Handle them. 4251 (usage): Document options -P and -p. 4252 * msgmerge.c (long_options): Add --properties-input/output. 4253 (main): Handle them. In update mode, --properties-input implies 4254 --properties-output. 4255 (usage): Document options -P and -p. 4256 (merge): Set result->encoding if possible. 4257 * msguniq.c (long_options): Add --properties-input/output. 4258 (main): Handle them. 4259 (usage): Document options -P and -p. 4260 * msgcmp.c (long_options): Add --properties-input. 4261 (main): Handle it. 4262 (usage): Document option -P. 4263 * msgexec.c (long_options): Add --properties-input. 4264 (main): Handle it. 4265 (usage): Document option -P. 4266 * msgfmt.c (long_options): Add --properties-input. 4267 (main): Handle it. Pass the known canon_encoding to 4268 msgdomain_write_java and msgdomain_write_tcl. 4269 (usage): Document option -P. 4270 (msgfmt_add_message): Add force_fuzzy argument. 4271 (read_po_file_msgfmt): Pass input_syntax to po_scan(). 4272 * msgunfmt.c (long_options): Add --properties-output. 4273 (main): Handle it. 4274 (usage): Document option -p. 4275 * x-properties.h: New file. 4276 * x-po.c (extract_add_message): Add force_fuzzy argument. 4277 (extract): Renamed from extract_po. Pass input_syntax to po_scan(). 4278 (extract_po): New function. 4279 (extract_properties): New function. 4280 * xgettext.h: Include read-po.h. 4281 * xgettext.c (long_options): Add --properties-output. 4282 (main): Handle it. 4283 (usage): Document options -L JavaProperties and --properties-output. 4284 (exclude_directive_message): Add force_fuzzy argument. 4285 (read_exclusion_file): Pass input_syntax to po_scan(). 4286 (table): Add support for .properties format. 4287 * Makefile.am (noinst_HEADERS): Add read-properties.h, 4288 write-properties.h, x-properties.h. 4289 (COMMON_SOURCE): Add read-properties.c. 4290 (libgettextsrc_la_SOURCES): Add write-properties.c. 4291 * Makefile.msvc (OBJECTS): Add read-properties.obj, 4292 write-properties.obj. 4293 (read-properties.obj, write-properties.obj): New rules. 4294 * Makefile.vms (OBJECTS): Add read-properties.obj, 4295 write-properties.obj. 4296 (read-properties.obj, write-properties.obj): New rules. 4297 * FILES: Update. 4298 42992003-04-21 Bruno Haible <bruno@clisp.org> 4300 4301 * read-po-abstract.h (po_scan_file): Remove declaration. 4302 * read-po-abstract.c (po_scan_file): Remove function. 4303 * read-po.c (read_po_file): Call read_po. 4304 * msgfmt.c (read_po_file_msgfmt): Call open_po_file. Invoke po_scan 4305 instead of po_scan_file. 4306 * xgettext.c (read_exclusion_file): Call open_po_file. Invoke po_scan 4307 instead of po_scan_file. 4308 43092003-04-20 Bruno Haible <bruno@clisp.org> 4310 4311 * open-po.h (open_po_file): Add argument 'exit_on_error'. 4312 * open-po.c (try_open_po_file): Renamed from open_po_file. 4313 (open_po_file): New function. 4314 * po-lex.h (lex_end): Change return type to void. 4315 (lex_open, lex_close): Remove declarations. 4316 * po-lex.c (lex_end): Change return type to void. 4317 (lex_open, lex_close): Remove functions. 4318 * read-po-abstract.c (po_scan_file): Inline lex_open and lex_close. 4319 Reuse po_scan code. 4320 43212003-04-14 Bruno Haible <bruno@clisp.org> 4322 4323 * hostname.c (usage): Split strings: use one string per option 4324 description. 4325 * msgattrib.c (usage): Likewise. 4326 * msgcat.c (usage): Likewise. 4327 * msgcmp.c (usage): Likewise. 4328 * msgcomm.c (usage): Likewise. 4329 * msgconv.c (usage): Likewise. 4330 * msgen.c (usage): Likewise. 4331 * msgexec.c (usage): Likewise. 4332 * msgfilter.c (usage): Likewise. 4333 * msgfmt.c (usage): Likewise. 4334 * msggrep.c (usage): Likewise. 4335 * msginit.c (usage): Likewise. 4336 * msgmerge.c (usage): Likewise. 4337 * msgunfmt.c (usage): Likewise. 4338 * msguniq.c (usage): Likewise. 4339 * urlget.c (usage): Likewise. 4340 * xgettext.c (usage): Likewise. 4341 43422003-04-13 Bruno Haible <bruno@clisp.org> 4343 4344 Unify three PO file parsers. 4345 * read-po-abstract.h: Renamed from po.h. 4346 (abstract_po_reader_class_ty): Renamed from po_method_ty. 4347 (abstract_po_reader_ty): Renamed from po_ty. 4348 (ABSTRACT_PO_READER_TY): Renamed from PO_BASE_TY. 4349 (po_reader_alloc): Renamed from po_alloc. 4350 (po_reader_free): Renamed from po_free. 4351 * read-po-abstract.c: Renamed from po.c. 4352 (po_reader_alloc): Renamed from po_alloc. 4353 (po_reader_free): Renamed from po_free. 4354 (call_parse_brief): Renamed from po_parse_brief. 4355 (call_parse_debrief): Renamed from po_parse_debrief. 4356 (call_directive_domain): Renamed from po_directive_domain. 4357 (call_directive_message): Renamed from po_directive_message. 4358 (call_comment): Renamed from po_comment. 4359 (call_comment_dot): Renamed from po_comment_dot. 4360 (call_comment_filepos): Renamed from po_comment_filepos. 4361 (call_comment_special): Renamed from po_comment_special. 4362 * read-po.h: Include read-po-abstract.h. 4363 (default_po_reader_class_ty, default_po_reader_ty): New types. 4364 (ABSTRACT_PO_READER_TY): New macro. 4365 (default_constructor, default_destructor, default_parse_brief, 4366 default_parse_debrief, default_directive_domain, 4367 default_directive_message, default_comment, default_comment_dot, 4368 default_comment_filepos, default_comment_special, default_set_domain, 4369 default_add_message): New declarations. 4370 (default_po_reader_alloc): New declaration. 4371 * read-po.c (default_po_reader_ty): Renamed from readall_class_ty. 4372 Add fields handle_comments, handle_filepos_comments, 4373 allow_domain_directives, allow_duplicates, 4374 allow_duplicates_if_same_msgstr. 4375 (call_set_domain, call_add_message, call_frob_new_message): New 4376 functions. 4377 (default_constructor): Renamed from readall_constructor. Don't set 4378 this->mdlp and this->mlp. 4379 (default_destructor): Renamed from readall_destructor. 4380 (default_parse_brief): Renamed from readall_parse_brief. 4381 (default_parse_debrief): New function. 4382 (default_copy_comment_state, default_reset_comment_state): New 4383 functions. 4384 (default_directive_domain): Renamed from readall_directive_domain. 4385 Call set_domain method. 4386 (default_directive_message): Renamed from readall_directive_message. 4387 Call add_message method. 4388 (default_comment): Renamed from readall_comment. 4389 (default_comment_dot): Renamed from readall_comment_dot. 4390 (default_comment_filepos): Renamed from readall_comment_filepos. 4391 (default_comment_special): Renamed from readall_comment_special. 4392 (default_set_domain, default_add_message): New functions. 4393 (default_methods): Renamed from readall_methods. 4394 (default_po_reader_alloc): New function. 4395 (read_po, read_po_file): Update. 4396 * msgfmt.c: Include read-po.h instead of po.h. 4397 (msgfmt_po_reader_ty): Renamed from msgfmt_class_ty. Inherit 4398 from default_po_reader_ty. 4399 (main): Drop po_lex_pass_comments call, done by default_parse_brief. 4400 (msgfmt_constructor): Renamed from format_constructor. Call superclass 4401 function. 4402 (msgfmt_parse_debrief): Renamed from format_debrief. Call superclass 4403 function. 4404 (format_directive_domain): Remove function. 4405 (msgfmt_set_domain): New function. 4406 (format_directive_message): Remove function. 4407 (msgfmt_add_message, msgfmt_frob_new_message): New functions. 4408 (msgfmt_comment_special): Renamed from format_comment_special. 4409 (msgfmt_methods): Renamed from format_methods. 4410 (read_po_file_msgfmt): Renamed from read_po_file. 4411 * x-po.c: Include read-po.h instead of po.h. 4412 (extract_class_ty, extract_constructor, extract_directive_domain, 4413 extract_directive_message, extract_parse_brief, extract_comment, 4414 extract_comment_dot, extract_comment_filepos, extract_comment_special): 4415 Remove functions. 4416 (extract_add_message): New function. 4417 (extract_methods): Update. 4418 (extract_po): Update. 4419 * xgettext.c: Include read-po-abstract.h instead of po.h. 4420 (exclude_directive_domain, exclude_directive_message, exclude_methods, 4421 read_exclusion_file): Update. 4422 * msgcmp.c: Don't include po.h. 4423 * msgmerge.c: Likewise. 4424 * po-gram-gen.y: Include read-po-abstract.h instead of po.h. 4425 * po-hash-gen.y: Likewise. 4426 (po_parse_comment_filepos): Renamed from po_hash. 4427 * po-hash.h (po_parse_comment_filepos): Renamed from po_hash. 4428 * Makefile.am (noinst_HEADERS): Remove po.h, add read-po-abstract.h. 4429 (COMMON_SOURCE): Remove po.c, add read-po-abstract.c. 4430 * Makefile.msvc (OBJECTS): Remove po.obj, add read-po-abstract.obj. 4431 (read-po-abstract.obj): Renamed from po.obj. 4432 * Makefile.vms (OBJECTS): Remove po.obj, add read-po-abstract.obj. 4433 (read-po-abstract.obj): Renamed from po.obj. 4434 44352003-04-13 Bruno Haible <bruno@clisp.org> 4436 4437 * read-po.c (readall_directive_message): Separate accumulation and 4438 reset. 4439 * x-po.c (extract_directive_message): Likewise. 4440 44412003-04-13 Bruno Haible <bruno@clisp.org> 4442 4443 * write-po.h (message_print_comment, message_print_comment_dot, 4444 message_print_comment_filepos, message_print_comment_flags): New 4445 declarations. 4446 * write-po.c: Reorder functions. 4447 (message_print_comment, message_print_comment_dot, 4448 message_print_comment_filepos, message_print_comment_flags): New 4449 functions, extracted from message_print. 4450 (message_print): Use them. 4451 (message_print_obsolete): Use message_print_comment. 4452 44532003-04-22 Bruno Haible <bruno@clisp.org> 4454 4455 * plural-table.c (plural_table): Add an entry about Faroese. 4456 Reported by Jacob Sparre Andersen <sparre@crs4.it>. 4457 44582003-04-13 Bruno Haible <bruno@clisp.org> 4459 4460 * po.h (po_scan_start, po_scan_end): New declarations. 4461 * po.c: Reorder functions. 4462 (po_scan_start, po_scan_end): New functions. 4463 (po_scan, po_scan_file): Use them. 4464 44652003-04-12 Bruno Haible <bruno@clisp.org> 4466 4467 * Makefile.vms: New variables ABIFLAGS, DEFS. Avoid rules with no 4468 lines. Don't use the force target. Correct wildcard syntax. 4469 Suggested by Jouk Jansen <joukj@hrem.stm.tudelft.nl>. 4470 44712003-04-13 Bruno Haible <bruno@clisp.org> 4472 4473 * xgettext.c (construct_header): Remove spurious comma. 4474 44752003-03-30 Bruno Haible <bruno@clisp.org> 4476 4477 * Makefile.vms: New file. 4478 * Makefile.am (EXTRA_DIST): Add Makefile.vms. 4479 (x-java.c): Prepend a few VMS specific lines. 4480 * po-lex.c (mbfile_getc): Change element type of scatchbuf to 4481 'unsigned char'. 4482 * write-java.c (string_hashcode, write_java_string): Cast argument of 4483 u8_mbtouc. 4484 * write-tcl.c (write_tcl_string): Likewise. 4485 * x-python.c (phase7_getuc): Cast argument of unicode_name_character. 4486 * msgfilter.c (write): #undef before redefining it. Needed for VMS. 4487 (select): Likewise. 4488 44892003-03-30 Bruno Haible <bruno@clisp.org> 4490 4491 * Makefile.am (noinst_HEADERS): Add po-gram-gen2.h. 4492 (BUILT_SOURCES): Add po-gram-gen2.h. 4493 (DISTCLEANFILES): Remove po-gram-gen2.h. 4494 (po-gram-gen2.h): Simplify rule. 4495 44962003-03-17 Bruno Haible <bruno@clisp.org> 4497 4498 Native Woe32/MSVC support. 4499 * Makefile.msvc: New file. 4500 * Makefile.am (EXTRA_DIST): Add it. 4501 * msgfilter.c: Include <sys/time.h> only if it exists. 4502 (process_string): Mark as NYI on Woe32. 4503 * msgfmt.c (sigjmp_buf, sigsetjmp, siglongjmp): Provide fallback 4504 definitions for Woe32. 4505 * msginit.c: Include <fcntl.h>, for F_OK. Include <pwd.h> only if it 4506 exists. 4507 (get_user_pwd, get_user_fullname): Adapt for when <pwd.h> is missing. 4508 (project_id, project_id_version, get_user_email, 4509 language_team_address): Use DEV_NULL instead of "/dev/null". 4510 * msggrep.c (is_string_selected): Likewise. 4511 * read-java.c (execute_and_read_po_output): Likewise. 4512 * read-tcl.c (msgdomain_read_tcl): Likewise. 4513 * write-mo.c: Include <sys/param.h> only if it exists. 4514 45152003-03-28 Bruno Haible <bruno@clisp.org> 4516 4517 * msgmerge.c (main): Use copy_file_preserving instead of copy_file. 4518 45192003-03-16 Bruno Haible <bruno@clisp.org> 4520 4521 * str-list.h (string_list_join): Comment out. 4522 * str-list.c (string_list_join): Comment out. 4523 45242003-03-10 Bruno Haible <bruno@clisp.org> 4525 4526 * msggrep.c (no_pass): Mention option -C. 4527 (usage): Document option -C completely. 4528 Reported by Martin Quinson <Martin.Quinson@tuxfamily.org>. 4529 45302003-02-28 Bruno Haible <bruno@clisp.org> 4531 4532 Support for relocatable installation. 4533 * msgattrib.c: Include relocatable.h. 4534 (main): Relocate LOCALEDIR value. 4535 * msgcat.c: Include relocatable.h. 4536 (main): Relocate LOCALEDIR value. 4537 * msgcmp.c: Include relocatable.h. 4538 (main): Relocate LOCALEDIR value. 4539 * msgcomm.c: Include relocatable.h. 4540 (main): Relocate LOCALEDIR value. 4541 * msgconv.c: Include relocatable.h. 4542 (main): Relocate LOCALEDIR value. 4543 * msgen.c: Include relocatable.h. 4544 (main): Relocate LOCALEDIR value. 4545 * msgexec.c: Include relocatable.h. 4546 (main): Relocate LOCALEDIR value. 4547 * msgfilter.c: Include relocatable.h. 4548 (main): Relocate LOCALEDIR value. 4549 * msgfmt.c: Include relocatable.h. 4550 (main): Relocate LOCALEDIR value. 4551 * msggrep.c: Include relocatable.h. 4552 (main): Relocate LOCALEDIR value. 4553 * msginit.c: Include relocatable.h. 4554 (main): Relocate LOCALEDIR value. 4555 (project_id, project_id_version, get_user_email): Relocate LIBDIR 4556 value. 4557 (language_team_address): Relocate LIBDIR and PROJECTSDIR values. 4558 * msgmerge.c: Include relocatable.h. 4559 (main): Relocate LOCALEDIR value. 4560 * msgunfmt.c: Include relocatable.h. 4561 (main): Relocate LOCALEDIR value. 4562 * msguniq.c: Include relocatable.h. 4563 (main): Relocate LOCALEDIR value. 4564 * xgettext.c: Include relocatable.h. 4565 (main): Relocate LOCALEDIR value. 4566 * read-java.c: Include relocatable.h. 4567 (msgdomain_read_java): Relocate GETTEXTJEXEDIR value. 4568 * read-tcl.c: Include relocatable.h. 4569 (msgdomain_read_tcl): Relocate GETTEXTDATADIR value. 4570 * hostname.c: Include relocatable.h. 4571 (main): Relocate LOCALEDIR value. Update copyright year. 4572 * urlget.c: Include relocatable.h. 4573 (main): Relocate LOCALEDIR value. Update copyright year. 4574 (fetch): Relocate GETTEXTJEXEDIR value. 4575 * user-email.in: Relocate $libdir. 4576 * Makefile.am (aliaspath): New variable. 4577 (DEFS): Define LOCALE_ALIAS_PATH. 4578 (msginit_SOURCES): Add .../localealias.c. 4579 (msginit_LDADD): Remove .../localealias.lo. 4580 (msgcmp_CFLAGS, msgfmt_CFLAGS, msgmerge_CFLAGS, msgunfmt_CFLAGS, 4581 xgettext_CFLAGS, msgattrib_CFLAGS, msgcat_CFLAGS, msgcomm_CFLAGS, 4582 msgconv_CFLAGS, msgen_CFLAGS, msgexec_CFLAGS, msgfilter_CFLAGS, 4583 msggrep_CFLAGS, msginit_CFLAGS, msguniq_CFLAGS, hostname_CFLAGS, 4584 urlget_CFLAGS): New variables. 4585 (msgcmp_LDFLAGS, msgfmt_LDFLAGS, msgmerge_LDFLAGS, msgunfmt_LDFLAGS, 4586 xgettext_LDFLAGS, msgattrib_LDFLAGS, msgcat_LDFLAGS, msgcomm_LDFLAGS, 4587 msgconv_LDFLAGS, msgen_LDFLAGS, msgexec_LDFLAGS, msgfilter_LDFLAGS, 4588 msggrep_LDFLAGS, msginit_LDFLAGS, msguniq_LDFLAGS, hostname_LDFLAGS, 4589 urlget_LDFLAGS): New variables. 4590 (install-exec-java-yes): Don't ignore INSTALL_PROGRAM_ENV. 4591 (RELOCATABLE_LIBRARY_PATH, RELOCATABLE_SRC_DIR, RELOCATABLE_BUILD_DIR, 4592 RELOCATABLE_CONFIG_H_DIR): New variables. 4593 45942003-03-13 Bruno Haible <bruno@clisp.org> 4595 4596 * msggrep.c (main): On Solaris, prefer /usr/xpg4/bin/grep to 4597 /usr/bin/grep. Needed for Solaris 2.8 and 2.9. 4598 Reported by Sven Utcke <utcke@informatik.uni-hamburg.de>. 4599 46002003-03-03 Bruno Haible <bruno@clisp.org> 4601 4602 * msgen.c (usage): Don't say that the entries are marked fuzzy. 4603 Reported by Karl Eichwalder <ke@suse.de>. 4604 46052003-02-23 Bruno Haible <bruno@clisp.org> 4606 4607 Improve error messages for invalid format strings. 4608 * format-invalid.h: New file. 4609 * format.h (struct formatstring_parser): Add invalid_reason argument 4610 to 'parse' field. 4611 * format-awk.c: Include c-ctype.h, xerror.h, format-invalid.h. 4612 (format_parse): Add invalid_reason argument. 4613 * format-c.c: Include c-ctype.h, xerror.h, format-invalid.h. 4614 (INVALID_C99_MACRO): New macro. 4615 (format_parse): Add invalid_reason argument. 4616 (get_c99_format_directives): Update. 4617 * format-elisp.c: Include c-ctype.h, xerror.h, format-invalid.h. 4618 (format_parse): Add invalid_reason argument. 4619 * format-java.c: Include xerror.h, format-invalid.h. 4620 (message_format_parse, choice_format_parse, format_parse): Add 4621 invalid_reason argument. 4622 (choice_format_parse): Return false if a choice contains an empty 4623 number part. 4624 * format-librep.c: Include c-ctype.h, xerror.h, format-invalid.h. 4625 (format_parse): Add invalid_reason argument. 4626 * format-lisp.c: Include xerror.h, format-invalid.h. 4627 (check_params, nocheck_params): Add directives, invalid_reason 4628 arguments. 4629 (parse_upto, format_parse): Add invalid_reason argument. 4630 * format-pascal.c: Include xerror.h, format-invalid.h. 4631 (format_parse): Add invalid_reason argument. 4632 * format-php.c: Include c-ctype.h, xerror.h, format-invalid.h. 4633 (format_parse): Add invalid_reason argument. 4634 * format-python.c: Include c-ctype.h, xerror.h, format-invalid.h. 4635 (INVALID_MIXES_NAMED_UNNAMED): New macro. 4636 (format_parse): Add invalid_reason argument. 4637 * format-tcl.c: Include c-ctype.h, xerror.h, format-invalid.h. 4638 (format_parse): Add invalid_reason argument. 4639 * format-ycp.c: Include c-ctype.h, xerror.h, format-invalid.h. 4640 (format_parse): Add invalid_reason argument. 4641 * msgfmt.c (check_pair): Output invalid_reason returned for msgstr. 4642 * msgmerge.c (msgfmt_check_pair_fails): Update. 4643 * xgettext.c (remember_a_message, remember_a_message_plural): Update. 4644 * Makefile.am (FORMAT_SOURCE): Add format-invalid.h. 4645 46462003-02-22 Bruno Haible <bruno@clisp.org> 4647 4648 * x-python.c (init_keywords): Add u*gettext variants and plural 4649 handling functions added in Python 2.3. 4650 46512003-02-22 Bruno Haible <bruno@clisp.org> 4652 4653 * Makefile.am (installdirs): Remove dependency, redundant with 4654 automake >= 1.6. 4655 46562003-02-20 Bruno Haible <bruno@clisp.org> 4657 4658 * Makefile.am (libgettextpo_la_DEPENDENCIES): New variable. 4659 Reported by Jim Meyering <jim@meyering.net>. 4660 46612003-02-19 Bruno Haible <bruno@clisp.org> 4662 4663 * Makefile.am (xgettext_LDADD): Mention $(LIBUNINAME) before 4664 libgettextsrc.la, not after it. Needed avoid link error on OSF/1 4.0: 4665 libtool produces a link command line that contains "-lc" where a 4666 shared library was used, and on OSF/1 4.0 "-lc" must not be used 4667 before objects that use integer division. 4668 46692003-02-18 Bruno Haible <bruno@clisp.org> 4670 4671 * message.c (msgdomain_list_free): Uncomment this function. 4672 * Makefile.am (libgettextpo_la_LDFLAGS): Add ../lib/libgettextlib.la. 4673 Needed for Solaris 2.7. 4674 46752003-02-16 Bruno Haible <bruno@clisp.org> 4676 4677 * msgmerge.c (message_merge): Add support for Report-Msgid-Bugs-To 4678 field. 4679 * xgettext.c (msgid_bugs_address): New variable. 4680 (long_options): Add option --msgid-bugs-address. 4681 (main): Handle option --msgid-bugs-address. 4682 (usage): Document option --msgid-bugs-address. 4683 (construct_header): Add 'Report-Msgid-Bugs-To:' field. Warn if 4684 msgid_bugs_address is empty. 4685 46862003-02-15 Bruno Haible <bruno@clisp.org> 4687 4688 * user-email.in: Add support for GNOME evolution, OpenOffice and 4689 StarOffice with nonstandard installation directory. 4690 46912003-02-15 Bruno Haible <bruno@clisp.org> 4692 4693 * msgattrib.c (main): Update year in --version output. 4694 * msgcat.c (main): Likewise. 4695 * msgcmp.c (main): Likewise. 4696 * msgcomm.c (main): Likewise. 4697 * msgconv.c (main): Likewise. 4698 * msgen.c (main): Likewise. 4699 * msgexec.c (main): Likewise. 4700 * msgfilter.c (main): Likewise. 4701 * msgfmt.c (main): Likewise. 4702 * msgunfmt.c (main): Likewise. 4703 * msguniq.c (main): Likewise. 4704 * xgettext.c (main): Likewise. 4705 47062003-02-12 Bruno Haible <bruno@clisp.org> 4707 4708 Big restructuring. 4709 * gettext.c: Remove file. 4710 * ngettext.c: Remove file. 4711 * Makefile.am (bin_PROGRAMS): Remove gettext, ngettext. 4712 (EXTRA_DIST): Add ChangeLog.0. 4713 (pkgdatadir): Define using 'gettext' instead of @PACKAGE@. 4714 (pkglibdir): Likewise. 4715 (INCLUDES): Refer to intl in gettext-runtime directory. 4716 (gettext_SOURCES, ngettext_SOURCES, gettext_LDADD, ngettext_LDADD): 4717 Remove variables. 4718 (install-exec-local, installdirs-local, uninstall-local, 4719 install-exec-java-yes, installdirs-java-yes, uninstall-java-yes): Use 4720 $(pkglibdir) instead of $(libdir)/$(PACKAGE). 4721 * plural.c: Update for changed directory structure. 4722 * user-email.in: Use 'gettext' instead of @PACKAGE@. 4723 4724 4725See ChangeLog.0 for earlier changes. 4726