12015-10-06 Daiki Ueno <ueno@gnu.org> 2 3 * msgfmt.c (msgfmt_desktop_bulk): Distinguish the number of errors 4 and the exit status. 5 * write-desktop.c (msgdomain_write_desktop_bulk): Don't 6 immediately exit when fwriteerror() returns error. 7 82015-10-06 Daiki Ueno <ueno@gnu.org> 9 10 msgfmt: Refactor --desktop handling 11 * msgfmt.c (get_languages): Avoid redundant memory allocation. 12 (msgfmt_operand_list_init): New function. 13 (msgfmt_operand_list_destroy): New function. 14 (msgfmt_operand_list_append): New function. 15 (msgfmt_operand_list_add_directory): New function. 16 (msgfmt_desktop_bulk): Rewrite using msgfmt_operand_list_ty. 17 18 * msgfmt.h (msgfmt_operand_ty) 19 (msgfmt_operand_list_ty): New type. 20 * write-desktop.c (msgdomain_write_desktop_bulk): 21 Simplify using msgfmt_operand_list_ty. 22 (msgdomain_write_desktop): Simplify using msgfmt_operand_list_ty. 23 * write-desktop.h (msgdomain_write_desktop_bulk): Take OPERANDS as 24 the first argument, instead of LANGUAGES and MESSAGES. 25 262015-10-06 Daiki Ueno <ueno@gnu.org> 27 28 * sentence.c (sentence_end): Assign initial values to local 29 variables to suppress compiler warnings with 30 -Wmaybe-uninitialized. This shouldn't address any real bug. 31 322015-09-11 Daiki Ueno <ueno@gnu.org> 33 34 * gettext 0.19.6 released. 35 362015-08-24 Daiki Ueno <ueno@gnu.org> 37 38 * xgettext.c (construct_header): Replace PACKAGE placeholder in 39 the header comment. 40 412015-06-11 Philip Withnall <philip.withnall@collabora.co.uk> 42 43 xgettext: add support for AppData files 44 * x-appdata.h: New file. 45 * x-appdata.c: New file. 46 * xgettext.c: Include x-appdata.h. 47 (language_to_extractor): Add AppData rule. 48 (extension_to_language): Add AppData rule. 49 * Makefile.am (noinst_HEADERS): Add x-appdata.h. 50 (xgettext_SOURCES): Add x-appdata.c. 51 * FILES: Update. 52 532015-08-21 Daiki Ueno <ueno@gnu.org> 54 55 xgettext: Allow multiple --copyright-holder 56 Feature requested by Francesco Poli in: 57 <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=682580>. 58 * xgettext.c (default_copyright_holder): New constant, renamed 59 from copyright_holder. 60 (copyright_holder): Define as a variable. 61 (main): Allow multiple --copyright-holder options. 62 (construct_header): Support multiple --copyright-holder options. 63 642015-08-15 Daiki Ueno <ueno@gnu.org> 65 66 * cldr-plurals.c (main): Close FP after use. 67 Reported by Denis Denisov. 68 692015-07-21 Václav Slavík <vaclav@slavik.io> (tiny change) 70 71 cldr-plurals: Fix --enable-relocatable compilation 72 Compilation of the cldr-plurals tool was broken in the relocatable 73 case because of missing CPPFLAGS/LDFLAGS. Add the same flags used 74 by other tools to the makefile. 75 * Makefile.am (cldr_plurals_CPPFLAGS) 76 (cldr_plurals_LDFLAGS): Adjust for --enable-relocatable 77 compilation. 78 792015-07-10 Daiki Ueno <ueno@gnu.org> 80 81 * gettext 0.19.5 released. 82 832015-06-29 Daiki Ueno <ueno@gnu.org> 84 85 * msginit.c (catalogname_for_locale): Remove sr_YU, which were 86 removed from ISO 3166-1:1997. Add comment saying that pap_AN, 87 which were removed from ISO 3166-1:2006, can be removed in the 88 future. 89 Reported by Jakub Wilk in: 90 <https://lists.gnu.org/archive/html/bug-gettext/2015-06/msg00057.html>. 91 922015-06-25 Daiki Ueno <ueno@gnu.org> 93 94 * x-c.c (literalstring_parse): Bail out if C == NUL. Also adjust 95 the loop invariant in Unicode literal handling. 96 Reported by Hanno Boeck in: 97 <http://savannah.gnu.org/bugs/?45391>. 98 992015-06-25 Daiki Ueno <ueno@gnu.org> 100 101 * x-c.c (literalstring_parse): Add more NUL checks. Change the 102 loop invariant so that C always points to the character previously 103 pointed by P. 104 Reported by Hanno Boeck in: 105 <http://savannah.gnu.org/bugs/?45391>. 106 1072015-06-24 Daiki Ueno <ueno@gnu.org> 108 109 * x-c.c (literalstring_parse): Check if the next character of a 110 backslash is NUL. 111 Reported by Hanno Boeck in: 112 <http://savannah.gnu.org/bugs/?45391>. 113 1142015-06-23 Daiki Ueno <ueno@gnu.org> 115 116 * cldr-plurals.c (main): Fix unmatched braces when 117 !(DYNLOAD_LIBEXPAT || HAVE_LIBEXPAT). 118 1192015-06-23 Daiki Ueno <ueno@gnu.org> 120 121 * cldr-plurals.c: Include "basename.h". 122 (main): Place optind on the right hand side of the expression, to 123 work around build failure on Solaris. 124 1252015-06-23 Daiki Ueno <ueno@gnu.org> 126 127 * Makefile.am (uninstall-local): Remove cldr-plurals. 128 1292015-06-23 Daiki Ueno <ueno@gnu.org> 130 131 * Makefile.am (noinst_HEADERS): Add cldr-plural.h and 132 cldr-plural-exp.h. 133 1342015-06-22 Daiki Ueno <ueno@gnu.org> 135 136 msginit: Guess plural rules from Unicode CLDR 137 * Makefile.am (noinst_PROGRAMS): Add cldr-plurals. 138 (install-exec-local): Install cldr-plurals. 139 (BUILT_SOURCES): Add cldr-plural.c and cldr-plural.h. 140 (cldr_plural_SOURCES): New variable. 141 (cldr_plural_LDADD): New variable. 142 * cldr-plural-exp.h: New file. 143 * cldr-plural-exp.c: New file. 144 * cldr-plural.y: New file. 145 * cldr-plurals.c: New file. 146 * msginit.c (plural_forms): Call cldr-plurals program if the 147 plural rule is not defined in the code. 148 1492015-06-01 Daiki Ueno <ueno@gnu.org> 150 151 * x-awk.h (EXTENSIONS_AWK): Register file extensions ".gawk" and 152 ".twjr". Suggested by Karl Berry in: 153 <https://lists.gnu.org/archive/html/bug-gettext/2015-05/msg00032.html>. 154 1552015-05-08 Часлав Илић (Chusslove Illich) <caslav.ilic@gmx.net> (tiny change) 156 157 * x-c.c (init_flag_table_kde): New function. 158 (additional_keywords_kde): New variable. 159 (activate_additional_keywords_kde): New function. 160 (init_keywords): Optional addition of KDE-specific keywords. 161 * x-c.h (init_flag_table_kde): New function declaration. 162 (activate_additional_keywords_kde): New function declaration. 163 * xgettext.c (main): Invoke addition of KDE-specific keywords when 164 language is C++ with KDE. 165 1662015-03-20 Daiki Ueno <ueno@gnu.org> 167 168 kde-kuit: Use xmlns to avoid element name conflict 169 * format-kde-kuit.c (XML_NS): New macro. 170 (format_parse): Add namespace qualifier to the <kuit> tag. 171 1722015-03-12 Daiki Ueno <ueno@gnu.org> 173 174 * format-kde-kuit.c (format_parse): Remove dead assignment, 175 spotted by clang-analyzer. 176 * x-c.c (phase5_get): Likewise. 177 1782015-03-11 Daiki Ueno <ueno@gnu.org> 179 180 msgunfmt: Check allocated size for static segment 181 Reported by Max Lin in: 182 http://lists.gnu.org/archive/html/bug-gettext/2015-03/msg00005.html 183 * read-mo.c (get_sysdep_string): Check if the embedded segment 184 size is valid, before adding it to the string length. 185 1862015-03-06 Daiki Ueno <ueno@gnu.org> 187 188 format-kde: Recognize KUIT markup 189 Reported by Chusslove Illich in: 190 https://lists.gnu.org/archive/html/bug-gettext/2015-01/msg00017.html 191 * format.h (formatstring_kde_kuit): New variable declaration. 192 * format.c (formatstring_parsers): Register formatstring_kde_kuit 193 as a format string parser. 194 * format-kde-kuit.c: New file. 195 * message.h (NFORMATS): Increment. 196 (enum format_type): New enum value format_kde_kuit. 197 * xgettext.c (xgettext_record_flag): Handle format_kde_kuit. 198 * Makefile.am (xgettext_SOURCES): Move libexpat-compat.c to... 199 (libgettextsrc_la_SOURCES): ...here. 200 (xgettext_LDADD): Move @LTLIBEXPAT@ to... 201 (libgettextsrc_la_LDFLAGS): ...here. 202 (FORMAT_SOURCE): Add format-kde-kuit.c. 203 2042015-03-02 Daiki Ueno <ueno@gnu.org> 205 206 xgettext: Support message syntax checks 207 With this change, xgettext could report common syntactic problems 208 in extracted strings. The current built-in checks are 209 ellipsis-unicode, space-ellipsis, and quote-unicode. Those checks 210 can be enabled with --check option of xgettext and disabled with 211 special "xgettext:" comment in source files. 212 Feature suggested by Philip Withnall in: 213 https://savannah.gnu.org/bugs/?44098 214 * message.h (enum syntax_check_type): New enum. 215 (NSYNTAXCHECKS): New constant. 216 (enum is_syntax_check): New enum. 217 (struct message_ty): New field 'do_syntax_check'. 218 (syntax_check_name): New variable declaration. 219 * message.c (syntax_check_name): New variable. 220 * msgl-cat.c (catenate_msgdomain_list): Propagate 221 mp->do_syntax_check. 222 * msgmerge.c (message_merge): Propagate ref->do_syntax_check. 223 * msgl-check.h (syntax_check_message_list): New declaration. 224 * msgl-check.c (syntax_check_ellipsis_unicode): New function. 225 (syntax_check_space_ellipsis): New function. 226 (syntax_check_quote_unicode): New function. 227 (syntax_check_message): New function. 228 (syntax_check_message_list): New function. 229 * read-catalog-abstract.h (po_parse_comment_special): Adjust 230 function declaration. 231 * read-catalog-abstract.c (po_parse_comment_special): Add new 232 argument SCP for syntax checking; all callers changed. 233 * read-catalog.h (DEFAULT_CATALOG_READER_TY): New field 234 'do_syntax_check'. 235 * read-catalog.c (default_constructor): Initialize 236 this->do_syntax_check. 237 (default_copy_comment_state): Propagate this->do_syntax_check. 238 * sentence.h: New file. 239 * sentence.c: New file. 240 * xgettext.c (long_options): Add options --check and --sentence-end. 241 (main): Handle options --check and --sentence-end. 242 (usage): Document options --check and --sentence-end. 243 (remember_a_message): Propagate do_syntax_check value. 244 2452015-02-05 Alex Henrie <alexhenrie24@gmail.com> (tiny change) 246 247 xgettext: Wrap location comments to 79 characters 248 Previously, messages were wrapped to 79 characters, but location 249 comments were wrapped to 78 characters. 250 * write-po.c (message_print_comment_filepos): Fix off-by-one in 251 calculating line-wrapping width of location comment. 252 2532015-02-03 Daiki Ueno <ueno@gnu.org> 254 255 msgfilter: Factor out quoted string handling 256 For later use in xgettext, separate out the scanner part in 257 filter-quote.c into a separate file. See: 258 <https://savannah.gnu.org/bugs/?44098>. 259 * quote.h: New file split from filter-quote.c. 260 * filter-quote.c: Include "quote.h". 261 (convert_quote_callback): New function. 262 (convert_ascii_quote_to_unicode): Use scan_quoted from quote.h. 263 * Makefile.am (libgettextsrc_la_SOURCES): Add quote.h. 264 2652015-01-29 Daiki Ueno <ueno@gnu.org> 266 267 msgexec: Add --newline option 268 See the commit 96dde0b for the rationale. 269 * msgexec.c (newline): New variable. 270 (long_options): Add --newline option. 271 (main): Handle --newline option. 272 (usage): Document --newline option. 273 (process_string): Handle --newline option. 274 2752015-01-28 Daiki Ueno <ueno@gnu.org> 276 277 msgfilter: Add --newline option 278 The filter program was supposed to handle translation without a 279 newline character at the end of line. This was causing 280 portability problems with standard text processing programs on 281 some platforms (BSD sed, for instance) and not friendly towards 282 POSIX, where a "text file" is required to have an ending newline. 283 The new --newline option controls the behavior. If it is given, 284 both filter input and output are assumed to end with a newline 285 character. 286 * msgfilter.c (newline): New variable. 287 (long_options): Add --newline option. 288 (main): Handle --newline option. 289 (usage): Document --newline option. 290 (process_string_with_newline): New function which wraps 291 process_string. 292 (process_message): Use process_string_with_newline instead of 293 process_string if --newline is specified. 294 2952015-01-24 Daiki Ueno <ueno@gnu.org> 296 297 xgettext, msgmerge: Avoid undefined non-null argument behavior 298 * xgettext.c (remember_a_message): Building with gcc's 299 -fsanitize=undefined and running tests triggered: 300 xgettext.c:2425:17: runtime error: null pointer passed as argument \ 301 2, which is declared to never be null 302 Adjust the argument of strncmp to never be null. 303 * msgmerge.c (message_merge): Likewise for memcpy. 304 3052015-01-23 Daiki Ueno <ueno@gnu.org> 306 307 build: Fix parallel build from git checkout 308 Since po-gram-gen2.h depends on po-gram-gen.h, an explicit 309 dependency on the YACC rule is needed for parallel compilation. 310 * Makefile.am (po-gram-gen.h): Depend on po-gram-gen.c. 311 3122015-01-16 Daiki Ueno <ueno@gnu.org> 313 314 desktop: Avoid useless warning for group header 315 Reported by Marek Černocký at: 316 <https://savannah.gnu.org/bugs/?44005> 317 * read-desktop.c (desktop_lex): Fix "invalid non-blank 318 character" check after reading a group header. 319 3202015-01-13 Daiki Ueno <ueno@gnu.org> 321 322 * x-c.c (phase5_get): Reset raw_expected at the beginning of the 323 function. 324 3252015-01-13 Daiki Ueno <ueno@gnu.org> 326 327 c++: Make C++11 raw string recognition stricter 328 Reported by Vaclav Slavik at: 329 <http://savannah.gnu.org/bugs/?43970>. 330 * x-c.c (struct token_ty): New field 'escape'. 331 (struct xgettext_token_ty): New field 'escape'. 332 (phase5_get): Recognize raw strings more strictly. Set 'escape' 333 field of token appropriately for string literals. 334 (extract_parenthesized): Respect 'escape' field of token. 335 3362015-01-13 Daiki Ueno <ueno@gnu.org> 337 338 c++: Differentiate scanning logic from C 339 To enable raw string literals only in C++, add a flag indicating 340 the current source language is C++. 341 Suggested by Vaclav Slavik at: 342 <https://savannah.gnu.org/bugs/?43970>. 343 * x-c.h (extract_cxx): New declaration. 344 (SCANNERS_C): Use extract_cxx for "C++". 345 * x-c.c (cxx_extensions): New variable. 346 (phase5_get): Respect cxx_extensions and recognize raw string 347 literals only when it is set. 348 (extract_cxx): New function. 349 (extract_c, extract_objc): Reset cxx_extensions. 350 3512014-12-24 Daiki Ueno <ueno@gnu.org> 352 353 * gettext 0.19.4 released. 354 3552014-12-18 Daiki Ueno <ueno@gnu.org> 356 357 * x-sh.c (read_word): Use phase1 instead of phase2 for Bash ANSI-C 358 escape sequences. Also handle '\"' and '\E'. 359 3602014-12-17 Daiki Ueno <ueno@gnu.org> 361 362 * x-sh.c (phase2_getc): Fix typo: debackslahificication -> 363 debackslashification. 364 3652014-12-12 Daiki Ueno <ueno@gnu.org> 366 367 * read-desktop.c (desktop_parse): Check and ignore 368 token_type_other. 369 3702014-12-12 Daiki Ueno <ueno@gnu.org> 371 372 * format-lisp.c (make_intersected_list): Don't dereference 373 potentially released memory. 'append_repeated_to_initial' may 374 release the LIST->element. Spotted by clang-analyzer. 375 * format-scheme.c (make_intersected_list): Likewise. 376 3772014-12-10 Daiki Ueno <ueno@gnu.org> 378 379 * msgl-check.c (check_header_entry): Don't declare unused variable 380 'nrequiredfields'. 381 3822014-12-09 Daiki Ueno <ueno@gnu.org> 383 384 * xgettext.c (arglist_parser_done): Avoid potential 385 null-dereference. Spotted by clang-analyzer. 386 3872014-12-09 Daiki Ueno <ueno@gnu.org> 388 389 * msgfmt.c (msgfmt_desktop_bulk): Don't dereference potentially 390 uninitialized value. Spotted by clang-analyzer. 391 3922014-12-09 Daiki Ueno <ueno@gnu.org> 393 394 * x-vala.c (phase3_get): Factor out the buffer allocation as a 395 macro. 396 3972014-12-09 Daiki Ueno <ueno@gnu.org> 398 399 * read-desktop.c (desktop_lex): Undef the APPEND macro before 400 defining. 401 4022014-12-09 Daiki Ueno <ueno@gnu.org> 403 404 desktop: Simplify the parsing logic 405 * read-desktop.h (desktop_reader_class_ty): Rename 'handle_text' 406 to 'handle_blank'. 407 (desktop_reader_handle_blank): Rename from 408 'desktop_reader_handle_text'. 409 * read-desktop.c (SIZEOF): New macro. 410 (desktop_reader_handle_blank): Rename from 411 'desktop_reader_handle_blank'. 412 (read_until_newline, read_group_name, read_key_name): Remove. 413 Merge into... 414 (desktop_lex): ...here. 415 (desktop_parse): Call 'desktop_lex' instead of read_*. Don't 416 normalize whitespaces. 417 (enum token_type_ty): New enum. 418 (struct token_ty): New struct. 419 (free_token): New function. 420 * write-desktop.c (msgfmt_desktop_handle_blank): Rename from 421 'msgfmt_desktop_handle_text'. 422 * x-desktop.c: Include "c-ctype.h". 423 (extract_desktop_handle_comment): Normalize whitespaces here. 424 (extract_desktop_handle_blank): Rename from 425 'extract_desktop_handle_text'. 426 4272014-12-07 Daiki Ueno <ueno@gnu.org> 428 429 vala: Make regex literal handling robuster 430 * x-vala.c (token_type_ty): New enumeration values 431 'token_type_arithmetic_operator' and 'token_type_question'. 432 Remove 'token_type_minus'. 433 (phase3_get): Rewrite regex literal handling right after 434 arithmetic assignment operators. 435 4362014-12-05 Daiki Ueno <ueno@gnu.org> 437 438 msgunfmt: Avoid integer overflow using xsize 439 * read-mo.c (get_uint32, get_sysdep_string): Use xsum to avoid 440 integer overflow, when checking length and offset fields. 441 Reported by Jakub Wilk at: 442 <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772088>. 443 4442014-12-04 Daiki Ueno <ueno@gnu.org> 445 446 libgettextsrc: Follow plural.c -> pluralx.c file name change 447 * plural-exp.c: Include "../intl/pluralx.c" instead of 448 "../intl/plural.c". Adjust to commit d2d04ba9. 449 4502014-12-03 Daiki Ueno <ueno@gnu.org> 451 452 intl: Work around LCOV relative base directory resolution 453 * plural-exp.c: Include "../intl/plural.c" instead of 454 "../../gettext-runtime/intl/plural.c". 455 4562014-12-02 Daiki Ueno <ueno@gnu.org> 457 458 c: Minor cleanup of the previous commit 459 * x-c.c (phase5_get): Remove redundant check of is_prefix; fit 460 lines to 80 column. 461 4622014-12-02 Daiki Ueno <ueno@gnu.org> 463 464 c: Support C++11 string literals 465 * x-c.c (phase5_get): Recognize C++ string literals, defined in 466 ISO/IEC 9899:2011. Reported at: 467 <https://savannah.gnu.org/bugs/?39499>. 468 4692014-12-01 Daiki Ueno <ueno@gnu.org> 470 471 c#: Recognize Unicode surrogate character pair 472 * x-csharp.c (accumulate_escaped): Change the first argument type 473 from 'struct string_buffer *' to 'struct mixed_string_buffer *', 474 for Unicode surrogate character pair handling; all callers 475 changed. Reported by Petr Kadlec at: 476 <https://savannah.gnu.org/bugs/?32505>. 477 4782014-11-28 Daiki Ueno <ueno@gnu.org> 479 480 * msgfilter.c (prepare_read): Simplify the last commit 06e206f5, 481 by always adding 1 to the buffer size. 482 4832014-11-28 Daiki Ueno <ueno@gnu.org> 484 485 msgfilter: Fix read buffer allocation for empty input 486 * msgfilter.c (prepare_read): Increase allocated buffer size even 487 if the original size is < 2. 488 Reported by Robin McCorkell at: 489 <https://savannah.gnu.org/bugs/?43720>. 490 4912014-11-27 Daiki Ueno <ueno@gnu.org> 492 493 javascript: Simplify Unicode character escape handling 494 ECMA-262 only supports "\uXXXX" style Unicode character escape and 495 we don't need extra space for character names. 496 * x-javascript.c: Don't include "uniname.h". 497 (phase2_pushback): Decrease to 5. Don't refer to UNINAME_MAX. 498 4992014-11-18 Daiki Ueno <ueno@gnu.org> 500 501 * read-mo.c: Include "xsize.h". 502 (get_string): Use xsum3 to avoid overflow, when checking length 503 and offset fields. 504 Reported by Jakub Wilk at: 505 <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=769901>. 506 5072014-10-28 Daiki Ueno <ueno@gnu.org> 508 509 xgettext: Allow plural extraction from a single argument function 510 The commit 8137d2b4 was a wrong fix since both singular/plural msgids 511 may point to the same address for Qt4 plural forms. This reverts 512 the commit and fix the original double-free problem in the right 513 way. Thanks to Jesper Fehrlund for suggestions. 514 * xgettext.c (arglist_parser_remember_literal): Don't ignore 515 plural argument even if ARGNUM1 equals to ARGNUM2. 516 (arglist_parser_done): Make a copy of best_cp->msgid_plural when 517 passing it to remember_a_message_plural, if it equals to 518 best_cp->msgid. Also move code conversion logic earlier taking 519 into account of the ownership transfer of best_cp->msgid. 520 5212014-10-28 Daiki Ueno <ueno@gnu.org> 522 523 xgettext: Fix double-free in singular/plural argument extraction 524 After commit 6aa7b7ed in 2009, xgettext assumed that ARGNUM1 and 525 ARGNUM2 of -k are different. That could cause an double-free in 526 exceptional cases. 527 Reported by Johan Liljegren in: 528 <https://lists.gnu.org/archive/html/bug-gettext/2014-10/msg00028.html>. 529 * xgettext.c (arglist_parser_remember_literal): Don't assume that 530 ARGNUM1 and ARGNUM2 are different. 531 5322014-10-15 Daiki Ueno <ueno@gnu.org> 533 534 * gettext 0.19.3 released. 535 5362014-10-08 Daiki Ueno <ueno@gnu.org> 537 538 * write-po.c (wrap): Report error on incomplete multibyte sequence 539 at the end of input bytes. 540 Reported by Jakub Wilk at: 541 <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763820>. 542 5432014-09-30 Daiki Ueno <ueno@gnu.org> 544 545 * x-c.c (literalstring_parse): Fix octal character escape handling. 546 Reported by Kjartan Maraas at: 547 <https://bugzilla.redhat.com/show_bug.cgi?id=1147535>. 548 5492014-09-24 Daiki Ueno <ueno@gnu.org> 550 551 * x-python.c (x_python_lex): Move 'token3' variable declaration 552 out of the internal block. 553 5542014-09-24 Daiki Ueno <ueno@gnu.org> 555 556 * filter-quote.c (BOLD_START, BOLD_END): Don't use non-portable 557 character escape "\e". 558 5592014-08-28 Jonas 'Sortie' Termansen <sortie@maxsi.org> (tiny change) 560 561 * msginit.c: Include <stdint.h>. 562 (get_user_pwd): Cast uid_t value into uintmax_t and print it with 563 '%ju' format directive. 564 5652014-08-27 Jonas 'Sortie' Termansen <sortie@maxsi.org> (tiny change) 566 567 * msgfilter.c (process_message): Use proper format directive for 568 printing size_t. 569 * msgexec.c (process_message): Likewise. 570 5712014-08-27 Jonas 'Sortie' Termansen <sortie@maxsi.org> (tiny change) 572 573 * hostname.c: Add guard around #include <sys/param.h>. 574 5752014-07-14 Daiki Ueno <ueno@gnu.org> 576 577 * gettext 0.19.2 released. 578 5792014-07-14 Daiki Ueno <ueno@gnu.org> 580 581 vala: Fix empty string literal handling 582 Similar to the commit 7b2d8d61 on July 11. 583 * x-vala.c (phase3_get): Add missing memory allocation for empty 584 string literal. 585 5862014-07-14 Daiki Ueno <ueno@gnu.org> 587 588 build: Fix race in post-install removal of *.a 589 There was an implicit dependency between the prerequisites of 590 install-exec-local, which may have caused error with make -jN. 591 Use install-exec-hook to remove the dependency. 592 Reported by Christian Weisgerber in: 593 <https://lists.gnu.org/archive/html/bug-gettext/2014-07/msg00008.html>. 594 * Makefile.am (install-exec-local): Remove. 595 (install-exec-hook): New rule, depend on install-exec-clean. 596 5972014-07-11 Daiki Ueno <ueno@gnu.org> 598 599 c: Fix empty string literal handling 600 Problem reported by Bernhard Voelker in: 601 <http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00059.html>. 602 * x-c.c (phase5_get): Add missing memory allocation for empty 603 string literal. 604 6052014-06-10 Daiki Ueno <ueno@gnu.org> 606 607 * gettext 0.19.1 released. 608 6092014-06-09 Daiki Ueno <ueno@gnu.org> 610 611 msgmerge: Disable --color option in --update mode 612 Suggested by 林V字龍 at: 613 <https://lists.gnu.org/archive/html/bug-gettext/2014-06/msg00017.html>. 614 * msgmerge.c (main): Error out when --color and --update are 615 specified at the same time. 616 6172014-06-07 Daiki Ueno <ueno@gnu.org> 618 619 xgettext: Fix misrecognition of character literals in C and Vala 620 Problem reported by Paul Eggert at 621 <http://lists.gnu.org/archive/html/bug-gettext/2014-06/msg00015.html>. 622 * x-c.c (phase5_get): Make sure to skip contents of character constant. 623 * x-vala.c (phase3_get): Likewise. 624 6252014-06-03 Daiki Ueno <ueno@gnu.org> 626 627 desktop: Use logical filename as msgid location 628 * read-desktop.c (desktop_parse): Pass logical filename instead of 629 real filename to desktop_reader_handle_pair. 630 6312014-06-03 Daiki Ueno <ueno@gnu.org> 632 633 desktop: Read LINGUAS file even if LINGUAS envvar is set 634 * msgfmt.c (get_languages): If the LINGUAS envvar is set, use it 635 to restrict the languages list read from the LINGUAS file, not to 636 extend the list. 637 (add_languages): Take an optional DESIRED_LANGUAGES argument. 638 6392014-06-03 Daiki Ueno <ueno@gnu.org> 640 641 vala: Don't elide comments while parsing string literal 642 * x-vala.c (phase3_get): Use phase1_getc to read characters inside 643 a string literal. 644 6452014-06-02 Daiki Ueno <ueno@gnu.org> 646 647 msgl-check: Treat missing header errors as warnings 648 Problem reported by Richard Hughes at 649 <https://lists.fedoraproject.org/pipermail/devel/2014-June/199539.html>. 650 After <https://savannah.gnu.org/bugs/?40262>, "msgfmt -c" reports 651 error on missing PO headers. However, it turned out to be too strict 652 for the projects using Launchpad Translations. Let's relax the check 653 for the moment and wait for one or two release cycles. 654 * msgl-check.c (check_header_entry): Report missing 655 required headers as warning, instead of error. 656 6572014-06-02 Daiki Ueno <ueno@gnu.org> 658 659 * gettext 0.19 released. 660 6612014-05-31 Daiki Ueno <ueno@gnu.org> 662 663 msgexec: Pass previous msgid to the child process 664 Suggested by Pavel Kharitonov in: 665 <http://lists.gnu.org/archive/html/bug-gettext/2014-05/msg00022.html>. 666 * msgexec.c (process_string): Set MSGEXEC_PREV_* envvar. 667 6682014-05-31 Daiki Ueno <ueno@gnu.org> 669 670 msgfilter: Pass previous msgid to the child process 671 Suggested by Pavel Kharitonov in: 672 <http://lists.gnu.org/archive/html/bug-gettext/2014-05/msg00022.html>. 673 * msgfilter.c (process_message): Set MSGFILTER_PREV_* envvar. 674 6752014-05-19 Daiki Ueno <ueno@gnu.org> 676 677 * Makefile.am (po-gram-gen2.h): Adjust the directory to which 678 po-gram-gen.h, for VPATH build. 679 6802014-05-15 Stanislav Brabec <sbrabec@suse.cz> (tiny change) 681 682 msgfilter: Implement plural support 683 * msgfilter.c (process_message): Set or unset 684 MSGFILTER_MSGID_PLURAL and MSGFILTER_PLURAL_FORM. 685 6862014-05-15 Stanislav Brabec <sbrabec@suse.cz> (tiny change) 687 688 msgexec: Implement plural support 689 * msgexec.c (process_string): Set or unset MSGEXEC_MSGID_PLURAL. 690 (process_message): Set or unset MSGEXEC_PLURAL_FORM. 691 6922014-05-14 Daiki Ueno <ueno@gnu.org> 693 694 msgfmt: Report error on accelerator mismatch 695 * msgl-check.c (check_pair): Increment error count on missing 696 accelerator character or too many accelerators. 697 6982014-05-13 Daiki Ueno <ueno@gnu.org> 699 700 msgfmt: Accumulate errors when parsing the PO header 701 Problem reported by Peter Eisentraut at 702 <https://savannah.gnu.org/bugs/?40262>. 703 * msgl-check.c (check_header_entry): Return the number of errors. 704 (check_message): Check the return value of check_header_entry. 705 7062014-05-13 Felipe Sateler <fsateler@debian.org> (tiny change) 707 708 project-id: Add missing quotes around `pwd` for basename 709 Problem reported at <http://bugs.debian.org/654779>. 710 * project-id: Quote argument of the basename command. 711 7122014-05-12 Daiki Ueno <ueno@gnu.org> 713 714 msgfilter: Fix quote handling of doubled grave charaters 715 * filter-quote.c (convert_ascii_quote_to_unicode): Fix handling of 716 doubled grave characters. 717 7182014-05-12 Daiki Ueno <ueno@gnu.org> 719 720 * msgfmt.c (add_languages): New function split from get_languages. 721 (get_languages): Use add_languages instead of manually parsing 722 LINGUAS envvar with strtok_r. 723 724 * x-c.h (literalstring_c): Remove unnecessary DLL_VARIABLE. 725 * xgettext.c (arglist_parser_alloc): Use LET_NONE instead of 0. 726 (arglist_parser_remember): Likewise. 727 * xgettext.h (enum literalstring_escape_type): New enum value 728 LET_NONE. 729 7302014-05-10 Guido Flohr <guido@imperia.net> 731 732 msgattrib: Add --empty option to clear msgstr 733 * msgattrib.c (REMOVE_TRANSLATION): New enum value. 734 (long_options): Add --empty. 735 (main): Set REMOVE_TRANSLATION flag when --empty is given. 736 (usage): Show help of --empty. 737 (process_message_list): Handle REMOVE_TRANSLATION flag. 738 7392014-05-09 Daiki Ueno <ueno@gnu.org> 740 741 vala: Interpret string literals lazily 742 * x-vala.c (P7_EOF, P7_STRING_END, P7_QUOTES, P7_QUOTE, P7_NEWLINE) 743 (UNICODE, IS_UNICODE, UNICODE_VALUE): Remove. 744 (phase7_getc): Remove. 745 (phase7_ungetc): Remove. 746 (phase3_get): Use 'phase2_get' directly to extract string 747 literals; use 'arglist_parser_remember_literal' instead of 748 'arglist_parser_remember'. 749 (literalstring_c): Declare external variable. 750 (extract_balanced): Remove the 751 'xgettext_current_source_encoding' setting to prevent encoding 752 conversion around 'arglist_parser_done'. 753 (token_ty): New field 'escape'. 754 * x-vala.h (SCANNERS_VALA): Register 'literalstring_c' as a 755 literalstring_parser. 756 7572014-05-09 Daiki Ueno <ueno@gnu.org> 758 759 c: Interpret string literals lazily 760 * x-c.c (P7_EOF, P7_STRING_END, P7_QUOTES, P7_QUOTE, P7_NEWLINE) 761 (UNICODE, IS_UNICODE, UNICODE_VALUE): Remove. 762 (phase7_get): Remove. 763 (phase7_ungetc): Remove. 764 (phase5_get): Use 'phase3_get' directly to extract string 765 literals; use 'arglist_parser_remember_literal' instead of 766 'arglist_parser_remember'. 767 (literalstring_parse): New function. 768 (literalstring_c): New variable. 769 (extract_parenthesized): Remove the 770 'xgettext_current_source_encoding' setting to prevent encoding 771 conversion around 'arglist_parser_done'. 772 * x-c.h (SCANNERS_C): Register 'literalstring_c' as a 773 literalstring_parser. 774 (literalstring_c): New variable declaration. 775 7762014-05-09 Daiki Ueno <ueno@gnu.org> 777 778 xgettext: Provide a way to interpret string literals lazily 779 * xgettext.c (extract_ty): New field 'literalstring_parser'. 780 (current_literalstring_parser): New variable. 781 (extract_from_file): Set 'current_literalstring_parser'. 782 (savable_comment_convert_encoding): New function. 783 (arglist_parser_remember_literal): New function. 784 (arglist_parser_remember): Call 'arglist_parser_remember_literal'. 785 (arglist_parser_done): Call literalstring_parser on msgctxt, 786 msgid, and msgid_plural before calling 'remember_a_message'; 787 convert encoding of msgid_comment. 788 * x-*.h: Register 'literalstring_parser' through SCANNER_*. 789 * xgettext.h (enum literalstring_escape_type): New enum. 790 (struct literalstring_parser): New struct. 791 (struct partial_call): New fields 'msgctxt_escape', 792 'msgid_escape', and 'msgid_plural_escape'. 793 (arglist_parser_remember_literal): New function declaration. 794 (savable_comment_convert_encoding): New function declaration. 795 7962014-05-03 Daiki Ueno <ueno@gnu.org> 797 798 xgettext: Recognize prefixed comment tag 799 Reported by Jiang Xin in 800 <http://article.gmane.org/gmane.comp.version-control.git/246462>. 801 * xgettext.c (remember_a_message): Discard a string prefixed to 802 the comment tag from all remaining comment lines. 803 8042014-05-03 Daiki Ueno <ueno@gnu.org> 805 806 c: Support C99-style Unicode character escapes 807 * x-c.c: Include assert.h and po-charset.h. 808 (P7_QUOTES, P7_QUOTE, P7_NEWLINE): Redefine as a negative integer. 809 (P7_EOF, P7_STRING_END): New definitions. 810 (UNICODE): New macro. 811 (IS_UNICODE): New macro. 812 (UNICODE_VALUE): New macro. 813 (phase7_getc): Recognize "\unnnn" and "\Unnnnnnnn". 814 (phase5_get): Use mixed_string_buffer for parse string literal. 815 8162014-05-02 Daiki Ueno <ueno@gnu.org> 817 818 vala: Support C99-style Unicode character escapes 819 * x-vala.c: Include assert.h and po-charset.h. 820 (P7_QUOTES, P7_QUOTE, P7_NEWLINE): Redefine as a negative integer. 821 (P7_EOF, P7_STRING_END): New definitions. 822 (UNICODE): New macro. 823 (IS_UNICODE): New macro. 824 (UNICODE_VALUE): New macro. 825 (phase7_getc): Recognize "\unnnn" and "\Unnnnnnnn". 826 (phase3_get): Use mixed_string_buffer for parse string literal. 827 8282014-05-02 Daiki Ueno <ueno@gnu.org> 829 830 xgettext: Factor out commonly used mixed_string_buffer 831 * x-python.c (init_mixed_string_buffer) 832 (mixed_string_buffer_append_byte) 833 (mixed_string_buffer_append_unicode_grow) 834 (mixed_string_buffer_append_unicode) 835 (mixed_string_buffer_flush_utf16_surr) 836 (mixed_string_buffer_flush_curr_buffer) 837 (mixed_string_buffer_append, mixed_string_buffer_result) 838 (free_mixed_string_buffer): Move to... 839 * xgettext.c: ...here. 840 (mixed_string_buffer_alloc): Rename from init_mixed_string_buffer. 841 (mixed_string_buffer_append_to_curr_buffer): Rename from 842 mixed_string_buffer_append_byte. 843 (mixed_string_buffer_append_to_utf8_buffer): Rename from 844 mixed_string_buffer_append_unicode. 845 (mixed_string_buffer_grow_utf8_buffer): Rename from 846 mixed_string_buffer_append_unicode_grow. 847 (mixed_string_buffer_append_char): Split from 848 mixed_string_buffer_append. 849 (mixed_string_buffer_append_unicode): Split from 850 mixed_string_buffer_append. 851 (mixed_string_buffer_done): New function merging 852 mixed_string_buffer_result and free_mixed_string_buffer. 853 * xgettext.h (mixed_string_buffer): New struct moved from 854 x-python.c; add logical_file_name and line_number fields. 855 (mixed_string_buffer_alloc): New function declaration. 856 (mixed_string_buffer_append_char): New function declaration. 857 (mixed_string_buffer_append_unicode): New function declaration. 858 (mixed_string_buffer_done): New function declaration. 859 * x-javascript.c (init_mixed_string_buffer) 860 (mixed_string_buffer_append_byte) 861 (mixed_string_buffer_append_unicode_grow) 862 (mixed_string_buffer_append_unicode) 863 (mixed_string_buffer_flush_utf16_surr) 864 (mixed_string_buffer_flush_curr_buffer) 865 (mixed_string_buffer_append, mixed_string_buffer_result) 866 (free_mixed_string_buffer): Remove. 867 8682014-04-30 Daiki Ueno <ueno@gnu.org> 869 870 scheme: Recognize GIMP script-fu extension _"abc" 871 * x-scheme.c (read_object): Recognize _"abc". 872 8732014-04-30 Daiki Ueno <ueno@gnu.org> 874 875 format-python-brace: Limit acceptable format specifiers 876 Problem reported by Kovid Goyal at: 877 <https://savannah.gnu.org/bugs/?41668>. 878 * format-python-brace.c (parse_directive): Only recognize a single 879 nested format directive or the standard format specifiers as 880 format specifiers. 881 8822014-04-22 Roumen Petrov <bugtrack@roumenpetrov.info> (tiny change) 883 884 build: Use Automake 'subdir-objects' option 885 * Makefile.am (AUTOMAKE_OPTIONS): Add 'subdir-objects'. 886 8872014-04-21 Daiki Ueno <ueno@gnu.org> 888 889 msgfilter: Fix single quote handling in the quot filter 890 * filter-quote.c (convert_ascii_quote_to_unicode): Fix single 891 quote handling to accept multiple quotations in a string. 892 8932014-04-17 Daiki Ueno <ueno@gnu.org> 894 895 xgettext: Strip multiple ".in" suffixes from the file name. 896 * xgettext.c (main): Strip multiple ".in" suffixes. 897 8982014-04-16 Daiki Ueno <ueno@gnu.org> 899 900 * msgfmt.c (get_languages): Allow any whitespace character as a 901 list separator in LINGUAS. 902 9032014-04-15 Daiki Ueno <ueno@gnu.org> 904 905 msgfilter: Add 'quot' and 'boldquot' built-in filters 906 * filter-quote.c: New file. 907 * filters.h (ascii_quote_to_unicode, ascii_quote_to_unicode_bold): 908 New function declaration. 909 * msgfilter.c (main): Handle 'quot' and 'boldquot' filters. 910 * Makefile.am (msgfilter_SOURCES): Add filter-quote.c. 911 9122014-04-04 Daiki Ueno <ueno@gnu.org> 913 914 * xgettext.c (main): Warn user if invalid encoding name is 915 specified with the --from-code option. 916 Reported by jaroslav.fojtik@evolvsys.cz in 917 <https://lists.gnu.org/archive/html/bug-gettext/2014-03/msg00034.html>. 918 9192014-04-04 Daiki Ueno <ueno@gnu.org> 920 921 msgfmt: Add support for Desktop Entry files 922 * write-desktop.h: New file. 923 * write-desktop.c: New file. 924 * msgfmt.c (desktop_mode, desktop_locale_name) 925 (desktop_template_name, desktop_base_directory, desktop_keywords) 926 (desktop_default_keywords): New variables. 927 (long_options): Add --desktop and --template options for Desktop 928 Entry mode. 929 (get_languages): New function. 930 (msgfmt_desktop_bulk): New function which implements bulk 931 operation mode for Desktop Entry mode. 932 (main): Handle Desktop Entry mode options; call 933 'msgfmt_desktop_bulk' if -d option is seen. 934 * Makefile.am (noinst_HEADERS): Add write-desktop.h. 935 (msgfmt_SOURCES): Add write-desktop.c 936 9372014-04-04 Daiki Ueno <ueno@gnu.org> 938 939 xgettext: Add support for Desktop Entry files 940 * read-desktop.h: New file. 941 * read-desktop.c: New file. 942 * x-desktop.h: New file. 943 * x-desktop.h: New file. 944 * xgettext.c (main): Regiser keywords for Desktop Entry mode. 945 (usage): Mention Desktop Entry source language. 946 (language_to_extractor): Add Desktop Entry rule. 947 (extension_to_language): Add Desktop Entry rule. 948 * Makefile.am (noinst_HEADERS): Add read-desktop.h and x-desktop.h. 949 (xgettext_SOURCES): Add x-desktop.c. 950 9512014-03-26 Aurélien Gâteau <mail@agateau.com> (tiny change) 952 953 msgfmt: Add --source option to generate .java file instead of .class 954 * msgfmt.c (java_output_source): New variable. 955 (long_options, main, usage): Add --source option. 956 * write-java.h (msgdomain_write_java): Add OUTPUT_SOURCE argument. 957 * write-java.c (msgdomain_write_java): Generate .java file instead 958 of .class if OUTPUT_SOURCE argument is given. 959 Reported at <https://savannah.gnu.org/bugs/?41766>. 960 9612014-03-25 Daiki Ueno <ueno@gnu.org> 962 963 Extend --add-location option to suppress line number output 964 The --add-location option of msgattrib, msgcat, msgcomm, msgconv, 965 msgen, msgfilter, msggrep, msgmerge, msguniq, and xgettext 966 commands now got new semantics. It takes an optional argument 967 'never', 'full', or 'file', to control the format of "#: ..." 968 comments. 969 The default catalog reader changed to always remember file 970 positions so the line number part can be suppressed in output 971 phase rather than input phase. 972 Feature requested in: 973 <https://lists.gnu.org/archive/html/bug-gettext/2013-08/msg00039.html>. 974 * read-catalog.h (line_comment): Abolish. 975 (DEFAULT_CATALOG_READER_TY): Remove handle_filepos_comments field. 976 * read-catalog.c (line_comment): Abolish. 977 (default_destructor, default_copy_comment_state) 978 (default_reset_comment_state, default_comment_filepos): Always 979 remember filepos. 980 (default_parse_brief, read_catalog_stream): Adjust to the change. 981 * write-po.h (enum filepos_comment_type): New enum. 982 (message_print_style_filepos): New function declaration. 983 (handle_filepos_comment_option): New function declaration. 984 * write-po.c (message_print_style_filepos): New function 985 (handle_filepos_comment_option): New function. 986 (message_print_comment_filepos): Uniquify mp->filepos elements 987 ignoring line number if filepos_comment_type is 988 filepos_comment_file. 989 * msgfmt.c: Adjust to the change. 990 * msgattrib.c (long_options, main): Allow --add-location option to 991 take an optional format specifier. 992 * msgcat.c (long_options, main): Likewise. 993 * msgcomm.c (long_options, main): Likewise. 994 * msguniq.c (long_options, main): Likewise. 995 * xgettext.c (long_options, main): Likewise. 996 * msgconv.c (long_options, main): Likewise; add a new option -n as 997 an alias of --add-location. 998 * msgen.c (long_options, main): Likewise. 999 * msgfilter.c (long_options, main): Likewise. 1000 * msggrep.c (long_options, main): Likewise. 1001 * msgmerge.c (long_options, main): Likewise. 1002 10032014-03-12 Daiki Ueno <ueno@gnu.org> 1004 1005 xgettext: Fix infloop on loading Glade files with non-DL expat 1006 * libexpat-compat.c: Keep the references to 1007 XML_GetCurrent{Line,Column}Number symbols before including 1008 libexpat-compat.h, since they are redefined. 1009 10102014-03-10 Daiki Ueno <ueno@gnu.org> 1011 1012 php: Recognize single and double quotes around heredoc label 1013 Problem reported by Byrial Jensen in: 1014 <https://lists.gnu.org/archive/html/bug-gettext/2012-04/msg00001.html>. 1015 Based on the patch by Andreas Stricker posted as: 1016 <https://lists.gnu.org/archive/html/bug-gettext/2012-04/msg00002.html>. 1017 * x-php.c (phase4_get): Strip quotes around heredoc label. 1018 10192013-11-20 Daiki Ueno <ueno@gnu.org> 1020 1021 xgettext: Add E4X support to JavaScript scanner 1022 Reported by Piotr Drąg at: <https://savannah.gnu.org/bugs/?40125>. 1023 * xgettext.h (enum lexical_context_ty): New enumeration items 1024 lc_xml_open_tag, lc_xml_close_tag, lc_xml_content. 1025 * x-javascript.c (phase5_scan_xml_markup): New function. 1026 (phase5_get): Handle '<', '>', '/', '=', '{', and '}' specially 1027 to support E4X. 1028 (enum token_type_ty): New enumeration item token_type_equal. 1029 (xml_element_depth): New variable. 1030 (inside_embedded_in_xml): New variable. 1031 (extract_javascript): Initialize those variables. 1032 10332013-11-14 Daiki Ueno <ueno@gnu.org> 1034 1035 * x-javascript.c (phase3_getc): Make sure to call comment_line_end 1036 after parsing C++ style comment line. 1037 Reported by Illimar Tambek at: <http://savannah.gnu.org/bugs/?40572>. 1038 10392013-11-14 Daiki Ueno <ueno@gnu.org> 1040 1041 * x-javascript.c (comment_line_end): Add missing chars_to_remove 1042 argument; all callers changed. 1043 Reported by Illimar Tambek at: <http://savannah.gnu.org/bugs/?40573>. 1044 10452013-11-11 Daiki Ueno <ueno@gnu.org> 1046 1047 * x-c.c (phase5_get): Fix misuse of a logical operator. 1048 * x-perl.c (extract_quotelike_pass3): Likewise. 1049 * x-vala.c (phase3_get): Likewise. 1050 Reported by David Binderman at: <https://savannah.gnu.org/bugs/?40528>. 1051 10522013-10-23 Daiki Ueno <ueno@gnu.org> 1053 1054 * read-catalog-abstract.c (catalog_reader_parse): Clear 1055 error_message_count before parsing, rather than after. The 1056 variable may be > 0 before calling the PO parser, when xgettext 1057 handles mutiple files. 1058 Problem reported by Emil Wojak in 1059 <https://lists.gnu.org/archive/html/bug-gettext/2013-10/msg00005.html>. 1060 10612013-10-15 Peter Eisentraut <peter_e@gmx.net> (tiny change) 1062 1063 * msgl-check.c (check_header_entry): Adjust the default value of 1064 PO-Revision-Date to xgettext output. Reported at 1065 <https://savannah.gnu.org/bugs/?40261>. 1066 10672013-08-29 Daiki Ueno <ueno@gnu.org> 1068 1069 * po-gram-gen.y (message): Free memory allocated for 1070 msgid_pluralform. 1071 (string_list): Free memory allocated for STRING. 1072 (prev_string_list): Free memory allocated for PREV_STRING. 1073 Reported by Alexander Potashev in 1074 <https://lists.gnu.org/archive/html/bug-gettext/2013-08/msg00043.html>. 1075 10762013-08-13 Miguel Angel Arruga Vivas <rosen644835@gmail.com> 1077 1078 * x-glade.c (start_element_glade1): Use extract_all variable. 1079 (start_element_glade2): Ignore --extract-all option. 1080 (start_element_gtkbuilder): Likewise. 1081 (start_element_handler): Initialize p->extract_string to false. 1082 10832013-08-12 Daiki Ueno <ueno@gnu.org> 1084 1085 * xgettext.c (remember_a_message): Handle multi-line extracted 1086 comments. 1087 Reported by Gabor Kelemen in 1088 <http://lists.gnu.org/archive/html/bug-gettext/2013-08/msg00026.html>. 1089 10902013-08-09 Daiki Ueno <ueno@gnu.org> 1091 1092 * x-gsettings.c (extract_gsettings): Add guard when expat is not 1093 available at compile time. 1094 10952013-08-08 Miguel Angel Arruga Vivas <rosen644835@gmail.com> (tiny change) 1096 1097 Fix copyright year in xgettext version string. 1098 * xgettext.c (main): Update copyright year. 1099 11002013-08-06 Daiki Ueno <ueno@gnu.org> 1101 1102 xgettext: add support for GSettings schema file 1103 * x-gsettings.h: New file. 1104 * x-gsettings.c: New file. 1105 * xgettext.c: Include x-gsettings.h. 1106 (flag_table_vala): New variable. 1107 (usage): Mention GSettings source language. 1108 (language_to_extractor): Add GSettings rule. 1109 (extension_to_language): Add GSettings rule. 1110 * Makefile.am (noinst_HEADERS): Add x-gsettings.h. 1111 (xgettext_SOURCES): Add x-gsettings.c. 1112 * FILES: Update. 1113 11142013-08-05 Daiki Ueno <ueno@gnu.org> 1115 1116 * xgettext.c (main): Allow exntension with multiple 1117 dots. e.g. .gschema.xml. 1118 11192013-03-02 Miguel Angel Arruga Vivas <rosen644385@gmail.com> 1120 1121 Extract libexpat compatibility layer. 1122 * libexpat-compat.h, libexpat-compat.c: Extracted from x-glade.c 1123 * x-glade.c: Use libexpat-compat.h 1124 11252013-07-11 Daiki Ueno <ueno@gnu.org> 1126 1127 Fix crash when parsing '..' with non-string argument. 1128 Reported by Koen Dergent at <http://savannah.gnu.org/bugs/?39458>. 1129 * x-lua.c (extract_balanced): Skip stray '..'. 1130 11312013-06-27 Daiki Ueno <ueno@gnu.org> 1132 1133 * x-python.c (phase5_pushback): Increment size to 2. 1134 11352013-06-25 Daiki Ueno <ueno@gnu.org> 1136 1137 Fix handling of \u escape sequences in Tcl. 1138 * x-tcl.c (do_getc_escaped): Fix handling of \u. 1139 Reported by Guido Berhoerster in 1140 <https://lists.gnu.org/archive/html/bug-gettext/2013-06/msg00022.html>. 1141 11422013-06-17 Daiki Ueno <ueno@gnu.org> 1143 1144 * x-python.c (init_flag_table_python): Enable python-brace-format 1145 by default. 1146 11472013-06-17 Daiki Ueno <ueno@gnu.org> 1148 1149 * x-glade.c (start_element_null): New function. 1150 (end_element_null): New function. 1151 (element_parser_null): New variable. 1152 (start_element_handler): Use element_parser_null if the top-level 1153 element does not indicate a valid Glade file. 1154 (do_extract_glade): Initialize element_parser to 1155 element_parser_null rather than NULL. 1156 11572013-06-13 Miguel Angel Arruga Vivas <rosen644835@gmail.com> 1158 Daiki Ueno <ueno@gnu.org> 1159 1160 Support for GtkBuilder file format in the Glade scanner. 1161 * x-glade.h (EXTENSIONS_GLADE): Recognize .ui. 1162 * x-glade.c (element_parser): New struct. 1163 (start_element_glade1): New function split from start_element_handler. 1164 (end_element_glade1): New function split from end_element_handler. 1165 (start_element_glade2): New function split from start_element_handler. 1166 (end_element_glade2): New function split from end_element_handler. 1167 (start_element_gtkbuilder): New function. 1168 (end_element_gtkbuilder): New function. 1169 (element_parser_glade1): New variable. 1170 (element_parser_glade2): New variable. 1171 (element_parser_gtkbuilder): New variable. 1172 (start_element_handler): Delegate the actual parsing logic to 1173 specific element_parser. 1174 (end_element_handler): Likewise. 1175 Thanks to Miguel Ángel Arruga Vivas for the initial implementation 1176 and the discussion in 1177 <https://lists.gnu.org/archive/html/bug-gettext/2013-03/msg00074.html> 1178 footnote 2. 1179 11802013-06-10 Daiki Ueno <ueno@gnu.org> 1181 1182 * Makefile.am: Use $(MKDIR_P) instead of $(mkdir_p). 1183 Suggested by Stefano Lattarini in 1184 <https://lists.gnu.org/archive/html/bug-gettext/2013-04/msg00044.html>. 1185 11862013-06-04 Daiki Ueno <ueno@gnu.org> 1187 1188 Support for Vala. 1189 * x-vala.h: New file. 1190 * x-vala.c: New file. 1191 * xgettext.c: Include x-vala.h. 1192 (flag_table_vala): New variable. 1193 (main): Invoke init_flag_table_vala, x_vala_extract_all, 1194 x_vala_keyword. 1195 (usage): Mention Vala source language. 1196 (language_to_extractor): Add Vala rule. 1197 (extension_to_language): Add Vala rule. 1198 * Makefile.am (noinst_HEADERS): Add x-vala.h. 1199 (xgettext_SOURCES): Add x-vala.c. 1200 * FILES: Update. 1201 12022013-05-21 Daiki Ueno <ueno@gnu.org> 1203 1204 * x-javascript.c (phase7_getuc): Treat non-legitimate character 1205 escape sequences more strictly. 1206 12072013-05-20 Pavel Kharitonov <ineiev@gnu.org> (tiny change) 1208 1209 Add --previous option to msgattrib. 1210 * msgattrib.c (long_options, main, process_message_list): 1211 (usage): Add --previous option. 1212 12132013-05-12 Daiki Ueno <ueno@gnu.org> 1214 1215 Fix end-of-string handling in JavaScript scanner. 1216 * x-javascript.c (phase7_getuc): Remove unused BACKSLASH_COUNTER 1217 argument; all callers changed. 1218 Reported by Andreas Stricker in 1219 <http://lists.gnu.org/archive/html/bug-gettext/2013-04/msg00051.html>. 1220 12212013-05-03 Daiki Ueno <ueno@gnu.org> 1222 1223 * user-email.sh.in (lowercase_sed): Don't use non-portable 1224 character escape in sed 's' command. 1225 Reported by Ben Fox-Moore in 1226 <http://lists.gnu.org/archive/html/bug-gettext/2013-05/msg00003.html> 1227 and thanks to Ineiev for the suggestion. 1228 12292013-04-26 Daiki Ueno <ueno@gnu.org> 1230 1231 Support for Python brace format. 1232 * message.h (format_type): New enum value 'format_python_brace. 1233 (NFORMATS): Increment. 1234 * message.c (format_language): Add format_python_brace entry. 1235 (format_language_pretty): Likewise. 1236 * format.h (formatstring_python_brace): New declaration. 1237 * format-python-brace.c: New file. 1238 * format.c (formatstring_parsers): Add formatstring_python_brace. 1239 * x-python.h (SCANNERS_PYTHON): Refar to formatstring_python_brace. 1240 * xgettext.c (xgettext_record_flag): Handle format_python_brace. 1241 * FILES: Update. 1242 12432013-04-22 Daiki Ueno <ueno@gnu.org> 1244 1245 Make msgfmt --check-header more reliable. 1246 * msgl-check.c (check_header_entry): Don't use c_strstr to parse 1247 message header. 1248 12492013-04-22 Daiki Ueno <ueno@gnu.org> 1250 1251 Support CR/LF line terminators in Python sources even on Unix. 1252 * x-python.c (phase0_getc, phase0_ungetc): New functions. 1253 (phase1_getc): Use them instead of calling getc/ungetc directly. 1254 12552013-04-22 Daiki Ueno <ueno@gnu.org> 1256 1257 Support explicit string concatenation in Python. 1258 * x-python.c (enum token_type_ty): New enumeration item 1259 token_type_plus. 1260 (free_token): New function. 1261 (phase5_get): Recognize token_type_plus. 1262 (x_python_lex): Handle string concatenation with '+'. 1263 (extract_balanced): Handle token_type_plus. 1264 12652013-04-18 Daiki Ueno <ueno@gnu.org> 1266 1267 * xgettext.c (usage): Wrap long lines in --help output. 1268 12692013-04-17 Andreas Stricker <astricker@futurelab.ch> 1270 1271 Support for JavaScript. 1272 * message.h (format_type): New enum value 'format_javascript'. 1273 (NFORMATS): Increment. 1274 * message.c (format_language): Add format_javascript entry. 1275 (format_language_pretty): Likewise. 1276 * format.h (formatstring_javascript): New declaration. 1277 * format-javascript.c: New file. 1278 * format.c (formatstring_parsers): Add formatstring_javascript. 1279 * x-javascript.h: New file. 1280 * x-javascript.c: New file. 1281 * xgettext.c: Include x-javascript.h. 1282 (flag_table_javascript): New variable. 1283 (main): Invoke init_flag_table_javascript, x_javascript_extract_all, 1284 x_javascript_keyword. 1285 (usage): Mention JavaScript source language. 1286 (xgettext_record_flag): Handle format_javascript. 1287 (language_to_extractor): Add JavaScript rule. 1288 (extension_to_language): Add JavaScript rule. 1289 * Makefile.am (noinst_HEADERS): Add x-javascript.h. 1290 (FORMAT_SOURCE): Add format-javascript.c. 1291 (xgettext_SOURCES): Add x-javascript.c. 1292 * FILES: Update. 1293 12942013-04-16 Ľubomír Remák <lubomirr@lubomirr.eu> 1295 1296 Support for escape sequences added in Lua 5.2. 1297 * x-lua.c (phase3_get): Add \x and \z escape sequences. 1298 12992013-04-11 Ľubomír Remák <lubomirr@lubomirr.eu> 1300 1301 Support for Lua. 1302 * message.h (format_type): New enum value 'format_lua'. 1303 (NFORMATS): Increment. 1304 * message.c (format_language): Add format_lua entry. 1305 (format_language_pretty): Likewise. 1306 * format.h (formatstring_lua): New declaration. 1307 * format-lua.c: New file. 1308 * format.c (formatstring_parsers): Add formatstring_lua. 1309 * x-lua.h: New file. 1310 * x-lua.c: New file. 1311 * xgettext.c: Include x-lua.h. 1312 (flag_table_lua): New variable. 1313 (main): Invoke init_flag_table_lua, x_lua_extract_all, 1314 x_lua_keyword. 1315 (usage): Mention Lua source language. 1316 (xgettext_record_flag): Handle format_lua. 1317 (language_to_extractor): Add Lua rule. 1318 (extension_to_language): Add Lua rule. 1319 * Makefile.am (noinst_HEADERS): Add x-lua.h. 1320 (FORMAT_SOURCE): Add format-lua.c. 1321 (xgettext_SOURCES): Add x-lua.c. 1322 * FILES: Update. 1323 13242013-03-15 Miguel Ángel Arruga Vivas <rosen644835@gmail.com> 1325 Daiki Ueno <ueno@gnu.org> 1326 1327 Extract msgctxt from Glade input files. 1328 Reported at <https://savannah.gnu.org/bugs/?34506> 1329 * x-glade.c (struct element_state): Add field 'extract_context'. 1330 (start_element_handler): Check "context" attribute if the string 1331 contains msgctxt. 1332 (end_element_handler): Extract msgctxt if extract_context is set. 1333 13342013-02-25 Daiki Ueno <ueno@gnu.org> 1335 1336 * Makefile.am (libgettextsrc_la_CPPFLAGS): Define to specify Woe32 1337 DLL export flags. 1338 13392013-01-09 Andreas Stricker <astricker@futurelab.ch> (tiny change) 1340 1341 * po-xerror.c: Include error.h for error_message_count. 1342 * read-catalog-abstract.c: Likewise. 1343 13442013-01-06 Daiki Ueno <ueno@gnu.org> 1345 1346 * msgl-fsearch.c (message_fuzzy_index_ty): Don't use float-derived 1347 integer SHORT_MSG_MAX to define array. 1348 (message_fuzzy_index_alloc): Allocate memory for 'short_messages' 1349 field dynamically. 1350 (message_fuzzy_index_free): Free it. 1351 13522013-01-03 Daiki Ueno <ueno@gnu.org> 1353 1354 * xgettext.c (construct_header): Fix memory leak. 1355 13562012-12-25 Daiki Ueno <ueno@gnu.org> 1357 1358 * gettext-0.18.2 released. 1359 13602012-06-03 Jim Meyering <jim@meyering.net> 1361 1362 * msginit.c: Spelling fixes. 1363 * write-catalog.c: Likewise. 1364 13652012-05-03 Bruno Haible <bruno@clisp.org> 1366 1367 Document msgfmt option --endianness. 1368 * msgfmt.c (usage): Document the option --endianness. 1369 Reported by Paul Martin <pm@debian.org> via 1370 Santiago Vila <sanvila@unex.es>. 1371 13722012-01-26 Bruno Haible <bruno@clisp.org> 1373 1374 Modernize quoting. 1375 * hostname.c (usage): Quote 'like this', not `like this', as per the 1376 recent change to the GNU coding standards. 1377 * msgattrib.c (usage): Likewise. 1378 * msgcat.c (usage): Likewise. 1379 * msgcmp.c (usage): Likewise. 1380 * msgcomm.c (usage): Likewise. 1381 * msgconv.c (usage): Likewise. 1382 * msgen.c (usage): Likewise. 1383 * msgexec.c (usage): Likewise. 1384 * msgfilter.c (usage): Likewise. 1385 * msgfmt.c (usage, msgfmt_set_domain, msgfmt_frob_new_message): 1386 Likewise. 1387 * msggrep.c (usage): Likewise. 1388 * msginit.c (usage): Likewise. 1389 * msgl-cat.c (catenate_msgdomain_list): Likewise. 1390 * msgl-check.c (check_pair, check_header_entry): Likewise. 1391 * msgmerge.c (usage): Likewise. 1392 * msgunfmt.c (usage): Likewise. 1393 * msguniq.c (usage): Likewise. 1394 * recode-sr-latin.c (usage): Likewise. 1395 * urlget.c (usage): Likewise. 1396 * write-po.c (wrap): Likewise. 1397 * xgettext.c (main, usage, remember_a_message, construct_header, 1398 language_to_extractor): Likewise. 1399 * po-gram-gen.y: Likewise. 1400 * po-error.h: Likewise. 1401 * po-lex.h: Likewise. 1402 * read-catalog-abstract.h: Likewise. 1403 * x-c.c: Likewise. 1404 14052011-10-04 Bruno Haible <bruno@clisp.org> 1406 1407 xgettext for Scheme: Understand guile 2.0 comment syntax, part 2. 1408 * x-scheme.c (read_object): Extract and don't ignore block comments. 1409 Understand the #|...|# syntax of SRFI-30. (Code copied from x-lisp.c.) 1410 14112011-10-04 Bruno Haible <bruno@clisp.org> 1412 1413 xgettext for Scheme: Understand guile 2.0 comment syntax, part 1. 1414 * x-scheme.c (read_object): Understand !# as a block comment terminator 1415 even when not surrounded by newlines. 1416 Reported by David Pirotte <david@altosw.be> 1417 via Santiago Vila <sanvila@unex.es>. 1418 14192011-07-29 Bruno Haible <bruno@clisp.org> 1420 1421 Fix xgettext crash when extracting a message with plural that is 1422 excluded. 1423 * xgettext.h (remember_a_message): Document the return value. 1424 * xgettext.c (arglist_parser_done): Handle the case where 1425 remember_a_message returned NULL. 1426 * x-smalltalk.c (extract_smalltalk): Likewise. 1427 * x-ycp.c (extract_parenthesized): Likewise. 1428 Reported by Jean-Luc Coulon <jean-luc.coulon@wanadoo.fr> via 1429 Santiago Vila <sanvila@unex.es>. 1430 14312011-06-13 Bruno Haible <bruno@clisp.org> 1432 1433 Avoid compilation error on Solaris 7 with cc. 1434 * msgl-fsearch.c (SHORT_MSG_MAX): Define more directly with SunPRO C. 1435 14362011-06-04 Bruno Haible <bruno@clisp.org> 1437 1438 Avoid link error when linking statically on AIX 7. 1439 * Makefile.am (xgettext_LDADD): Add LTLIBICONV. 1440 14412011-04-13 Bruno Haible <bruno@clisp.org> 1442 1443 * msgcat.c (usage): Fix description of --use-first. 1444 * msgcomm.c (usage): Fix typo. 1445 Reported by Matthijs Kooijman. 1446 14472011-06-04 Bruno Haible <bruno@clisp.org> 1448 1449 Update after __attibute__ is no longer defined by gnulib. 1450 * msgl-check.c (formatstring_error_logger): Use __attribute__ only with 1451 compiler versions that support it. 1452 14532011-06-02 Bruno Haible <bruno@clisp.org> 1454 1455 Use u8_mbtoucr instead of u8_mbtouc in some places. 1456 * po-lex.c (mbfile_getc): Call u8_mbtoucr instead of u8_mbtouc. 1457 * x-csharp.c (phase2_getc): Likewise. 1458 * x-python.c (phase2_getc): Likewise. 1459 Needed after libunistring changed on 2010-11-13. 1460 14612011-06-02 Bruno Haible <bruno@clisp.org> 1462 1463 Update after gnulib changed. 1464 * msgexec.c: Include spawn-pipe.h instead of pipe.h. 1465 * msginit.c: Likewise. 1466 * read-csharp.c: Likewise. 1467 * read-java.c: Likewise. 1468 * read-resources.c: Likewise. 1469 * read-tcl.c: Likewise. 1470 * write-resources.c: Likewise. 1471 14722010-11-20 Bruno Haible <bruno@clisp.org> 1473 1474 Port to uClibc. 1475 * write-po.c (wrap): Treat uClibc like a non-glibc platform. 1476 * format-c-parse.h (HANDLE_I_FLAG): Likewise. 1477 * po-charset.c (po_lex_charset_set): Likewise. 1478 * recode-sr-latin.c (process): Likewise. 1479 * x-python.c (set_current_file_source_encoding): Likewise. 1480 * xgettext.c (main): Likewise. 1481 14822010-11-13 Ihar Hrachyshka <ihar.hrachyshka@gmail.com> (tiny change) 1483 1484 * plural-table.c (plural_table): Added Belarusian, copied from Russian 1485 and Ukrainian. 1486 14872010-11-07 Bruno Haible <bruno@clisp.org> 1488 1489 format-c.c: Share code with libintlext. 1490 * format-c-parse.h: New file, extracted from format-c.c. 1491 * format-c.c: Include it. 1492 (format_parse_entrails): Remove function. 1493 * Makefile.am (FORMAT_SOURCE): Add format-c-parse.h. 1494 * FILES: Update. 1495 14962010-11-07 Bruno Haible <bruno@clisp.org> 1497 1498 format-c.c: Prepare for sharing code with libintlext. 1499 * format-c.c: Move INVALID_* macros. 1500 (IF_OOM): New macro. 1501 (SYSDEP_SEGMENTS_PROCESSED): New macro. 1502 (FAT_BASIC_MASK): New enumeration value. 1503 (HANDLE_I_FLAG): New macro. 1504 (format_parse_entrails): New function, extracted from format_parse. 1505 Use the IF_OOM, SYSDEP_SEGMENTS_PROCESSED, HANDLE_I_FLAG macros. Handle 1506 I64 as a size specifier on native Win32. 1507 (format_parse): Rewritten to call format_parse_entrails. 1508 15092010-11-07 Bruno Haible <bruno@clisp.org> 1510 1511 format-c.c: Prepare for sharing code with libintlext. 1512 * format-c.c (INVALID_ANGLE_BRACKET, INVALID_IGNORED_ARGUMENT): New 1513 macros. 1514 (format_parse): Use them. 1515 15162011-06-07 Bruno Haible <bruno@clisp.org> 1517 1518 Rely more on libtool. 1519 * Makefile.am (libgettextsrc_la_LDFLAGS): Use -no-undefined always. 1520 Don't use @LTNOUNDEF@. 1521 15222010-06-06 Bruno Haible <bruno@clisp.org> 1523 1524 Bug fixes in libgettextpo. 1525 * msgl-check.h (check_message_list): Add ignore_untranslated_messages, 1526 ignore_fuzzy_messages arguments. 1527 * msgl-check.c (check_plural, check_message_list): Likewise. 1528 * msgfmt.c (main): Update. 1529 15302010-06-04 Bruno Haible <bruno@clisp.org> 1531 1532 * gettext-0.18.1 released. 1533 15342010-06-03 Bruno Haible <bruno@clisp.org> 1535 1536 xgettext: Recognize language of files ending in .perl. 1537 * x-perl.h (EXTENSIONS_PERL): Recognize .perl. 1538 Suggested by Ævar Arnfjörð Bjarmason <avarab@gmail.com>. 1539 15402010-06-03 Bruno Haible <bruno@clisp.org> 1541 1542 urlget: Don't attempt to run the Java program if we don't install it. 1543 * Makefile.am (USEJAVA): New variable. 1544 (DEFS): Define USEJAVA. 1545 * urlget.c (fetch): Don't try to use Java is USEJAVA is 0. 1546 15472010-05-19 Bruno Haible <bruno@clisp.org> 1548 1549 Link with libunistring, if it exists. 1550 * Makefile.am (LDADD, libgettextsrc_la_LDFLAGS): Add LTLIBUNISTRING. 1551 15522010-05-18 Bruno Haible <bruno@clisp.org> 1553 1554 Correct program dependencies. 1555 * Makefile.am (OTHERPROGDEPENDENCIES): New variable. 1556 (recode_sr_latin_LDADD): Remove redundant variable. 1557 (recode_sr_latin_DEPENDENCIES): Use OTHERPROGDEPENDENCIES. 1558 (hostname_DEPENDENCIES, urlget_DEPENDENCIES): New variables. 1559 15602010-05-09 Bruno Haible <bruno@clisp.org> 1561 1562 * gettext-0.18 released. 1563 15642010-05-09 Bruno Haible <bruno@clisp.org> 1565 1566 * msgattrib.c (main): Update year in --version output. 1567 * msgcat.c (main): Likewise. 1568 * msgcmp.c (main): Likewise. 1569 * msgcomm.c (main): Likewise. 1570 * msgconv.c (main): Likewise. 1571 * msgen.c (main): Likewise. 1572 * msgexec.c (main): Likewise. 1573 * msgfilter.c (main): Likewise. 1574 * msgfmt.c (main): Likewise. 1575 * msggrep.c (main): Likewise. 1576 * msginit.c (main): Likewise. 1577 * msgmerge.c (main): Likewise. 1578 * msgunfmt.c (main): Likewise. 1579 * msguniq.c (main): Likewise. 1580 * xgettext.c (main): Likewise. 1581 15822010-04-25 Bruno Haible <bruno@clisp.org> 1583 1584 Update support of object-pascal-format strings. 1585 * format-pascal.c: Update description of format strings. 1586 (enum format_arg_type): Remove FAT_INTEGER64. 1587 (format_parse): Accept an empty digit sequence before ':'. Treat 'd', 1588 'u', 'x' the same way. 1589 (main): Update. 1590 15912010-04-05 Bruno Haible <bruno@clisp.org> 1592 1593 Interoperability with mono versions >= 2009-02-27. 1594 * write-csharp.c (write_csharp_code): Emit a TableInitialized field. 1595 Change ReadResources so that it may be called multiple times, even 1596 concurrently. 1597 Reported by Guido Flohr <guido@imperia.net> 1598 15992010-03-31 Guido Flohr <guido@imperia.net> 1600 1601 Improve how xgettext handles Perl syntax ambiguities. 1602 * x-perl.c(enum token_type_ty): New enumeration items 1603 token_type_number, token_type_object. 1604 (struct token_ty): New field 'last_type'. 1605 (token2string): Handle token_type_number, token_type_object. 1606 (free_token): Likewise. 1607 (prefer_division_over_regexp): Remove variable. 1608 (extract_variable): Recognize token of type token_type_object. 1609 (prefer_regexp_over_division): New function. 1610 (last_token_type): Renamed from last_token. 1611 (x_perl_prelex): Assign the token's last_type. Recognize token of type 1612 token_type_number. Don't special-case "grep" and "split". Invoke 1613 prefer_regexp_over_division for disambiguation. 1614 (token_stack_dump): Handle token_type_number, token_type_object. 1615 (x_perl_lex): Assign the token's last_type. Update last_token_type 1616 intelligently. 1617 (collect_message): Invoke prefer_regexp_over_division for 1618 disambiguation. 1619 (extract_balanced): Don't set last_token_type here. Handle 1620 token_type_number, token_type_object. 1621 (extract_perl): Initialize last_token_type here. 1622 Reported by Guillem Jover <guillem@debian.org> via Santiago Vila. 1623 1624 * x-perl.c (x_perl_prelex): Clarify interpolate_keywords arguments. 1625 1626 * x-perl.c (eaten_here): Renamed from here_eaten. 1627 (phase1_getc, get_here_document, skip_pod, extract_perl): Update. 1628 16292010-03-13 Bruno Haible <bruno@clisp.org> 1630 1631 New options --color, --style for many programs. 1632 * msgattrib.c: Include color.h. 1633 (long_options): Add options --color, --style. 1634 (main): Implement them. 1635 (usage): Document them. 1636 * msgcomm.c: Include color.h. 1637 (long_options): Add options --color, --style. 1638 (main): Implement them. 1639 (usage): Document them. 1640 * msgconv.c: Include color.h. 1641 (long_options): Add options --color, --style. 1642 (main): Implement them. 1643 (usage): Document them. 1644 * msgen.c: Include color.h. 1645 (long_options): Add options --color, --style. 1646 (main): Implement them. 1647 (usage): Document them. 1648 * msgfilter.c: Include color.h. 1649 (long_options): Add options --color, --style. 1650 (main): Implement them. 1651 (usage): Document them. 1652 * msggrep.c: Include color.h. 1653 (long_options): Add options --color, --style. 1654 (main): Implement them. 1655 (usage): Document them. 1656 * msginit.c: Include color.h. 1657 (long_options): Add options --color, --style. 1658 (main): Implement them. 1659 (usage): Document them. 1660 * msgmerge.c: Include color.h. 1661 (long_options): Add options --color, --style. 1662 (main): Implement them. 1663 (usage): Document them. 1664 * msgunfmt.c: Include color.h. 1665 (long_options): Add options --color, --style. 1666 (main): Implement them. 1667 (usage): Document them. 1668 * msguniq.c: Include color.h. 1669 (long_options): Add options --color, --style. 1670 (main): Implement them. 1671 (usage): Document them. 1672 * xgettext.c: Include color.h. 1673 (long_options): Add options --color, --style. 1674 (main): Implement them. 1675 (usage): Document them. 1676 Reported by Kalle Olavi Niemitalo <kon@iki.fi> 1677 via Santiago Vila <sanvila@unex.es>. 1678 16792010-02-20 Bruno Haible <bruno@clisp.org> 1680 1681 * plural-table.c (plural_table): Add Bulgarian. 1682 Reported by Roumen Petrov <transl@roumenpetrov.info>. 1683 16842010-02-20 Bruno Haible <bruno@clisp.org> 1685 1686 * plural-table.c (plural_table): Sort in the same order as 1687 gettext.texi. 1688 16892010-02-17 Bruno Haible <bruno@clisp.org> 1690 1691 Fix error in conversion of large PO file (> 4000 msgs) to Java class. 1692 * write-java.c: Include minmax.h. 1693 (write_java1_init_statements, write_java2_init_statements): New 1694 functions, extracted from write_java_code. 1695 (write_java_code): If there are many messages, split the initialization 1696 code into several static methods. 1697 Reported by sasha <predator@savannah.gnu.org>. 1698 16992009-12-21 Bruno Haible <bruno@clisp.org> 1700 1701 * lang-table.c (language_table): Add Mapudungun, Lower Sorbian, 1702 Upper Sorbian, Mohawk, Yakut, Southern Sami, Lule Sami, Inari Sami, 1703 Skolt Sami. 1704 * msginit.c (catalogname_for_locale): Add Mapudungun, Lower Sorbian, 1705 Upper Sorbian, Yakut, Inari Sami, Skolt Sami. 1706 17072009-12-12 Bruno Haible <bruno@clisp.org> 1708 1709 * *.h, *.c, *.y: Untabify. 1710 17112009-11-28 Bruno Haible <bruno@clisp.org> 1712 1713 * x-perl.c (extract_variable): Fix tp->type when returning at EOF. 1714 Reported by Guido Flohr <guido@imperia.bg>. 1715 17162009-11-15 Bruno Haible <bruno@clisp.org> 1717 1718 * x-python.c: Update comments regarding PEP 0263. 1719 17202009-09-05 Bruno Haible <bruno@clisp.org> 1721 1722 * write-po.c (wrap): Remove unused initialization. 1723 * x-glade.c (comment_handler): Likewise. 1724 * xgettext.c (flag_context_list_table_insert): Add comment. 1725 Found by clang's static analyzer. 1726 17272009-08-30 Bruno Haible <bruno@clisp.org> 1728 1729 Accommodate the Solaris iconv_open function, which cannot convert 1730 directly between many pairs of encodings. 1731 * msgl-iconv.h (convert_string_directly): Renamed from convert_string. 1732 * msgl-iconv.c: Include xstriconveh.h. 1733 (convert_string_directly): Renamed from convert_string. 1734 (convert_string): New function. 1735 (convert_string_list, convert_prev_msgid, convert_msgid, 1736 iconvable_string_list, iconvable_prev_msgid, iconvable_msgid): Change 1737 argument type to 'const iconveh_t *'. 1738 (convert_msgstr, iconvable_string, iconvable_msgstr): Likewise. Invoke 1739 xmem_cd_iconveh instead of xmem_cd_iconv. 1740 (iconv_message_list_internal, is_message_list_iconvable): Invoke 1741 iconveh_open, iconveh_close instead of iconv_open, iconv_close. 1742 * xgettext.c (from_current_source_encoding): Update. 1743 17442009-08-16 Bruno Haible <bruno@clisp.org> 1745 1746 Reduce dependency on project-id heuristic. 1747 * msginit.c (project_id): Add header argument. Return first part of 1748 Project-Id-Version field if present. 1749 (fill_header): Update. 1750 17512009-08-13 Bruno Haible <bruno@clisp.org> 1752 1753 * msgexec.c: Include msgl-charset.h. 1754 (main): Invoke compare_po_locale_charsets. 1755 (process_string): Add comment. 1756 * msgfilter.c (process_message): Likewise. 1757 17582009-08-10 Bruno Haible <bruno@clisp.org> 1759 1760 Avoid a gcc warning. 1761 * msgfilter.c (sub_argv): Change type to 'const char **'. 1762 (main): Update. 1763 17642009-08-10 Bruno Haible <bruno@clisp.org> 1765 1766 Use type 'ucs4_t' more often. Avoids gcc warnings on Cygwin. 1767 * po-lex.c (struct mbchar): Change type of 'uc'. 1768 (mb_width): Update. 1769 * read-properties.c (read_escaped_string): Change type of local 1770 variable 'uc'. 1771 * read-stringtable.c (phase2_getc): Likewise. 1772 * write-properties.c (conv_to_java, write_escaped_string): Change type 1773 of local variables 'uc', 'uc1', 'uc2'. 1774 * write-java.c (string_hashcode, write_java_string): Likewise. 1775 * write-csharp.c (construct_class_name, write_csharp_string): Change 1776 type of local variable 'uc'. 1777 * write-tcl.c (write_tcl_string): Likewise. 1778 * write-qt.c (conv_to_iso_8859_1, conv_to_utf16): Likewise. 1779 * x-python.c (phase2_getc, mixed_string_buffer_append): Likewise. 1780 (mixed_string_buffer_append_unicode): Change argument type to 'ucs4_t'. 1781 * x-java.c (string_buffer_append): Change type of local variable 'uc'. 1782 (string_buffer_append_unicode): Change argument type to 'ucs4_t'. 1783 * x-csharp.c (phase2_getc): Change type of local variable 'uc'. 1784 17852009-08-04 Bruno Haible <bruno@clisp.org> 1786 1787 Port msgfilter to Woe32 platforms. 1788 * msgfilter.c: Don't include errno.h, fcntl.h, io.h, sys/select.h, 1789 pipe.h, wait-process.h. Include pipe-filter.h instead. 1790 (HAVE_SELECT): Remove undefine. 1791 (nonintr_close, nonintr_read, nonintr_write, nonintr_select): Remove 1792 functions. 1793 (O_NONBLOCK): Remove fallback. 1794 (IS_EAGAIN): Remove macro. 1795 (struct locals): New type. 1796 (prepare_write, done_write, prepare_read, done_read): New functions. 1797 (generic_filter): Implement using pipe_filter_ii_execute. 1798 17992009-07-27 Часлав Илић (Chusslove Illich) <caslav.ilic@gmx.net> 1800 1801 Extend recode-sr-latin to also transform letters with accents. 1802 * filter-sr-latin.c (table): Add entries for letters with accents. 1803 (IS_UPPERCASE_CYRILLIC): Recognize also U+04E2, U+04EE. 1804 (serbian_to_latin): Update. 1805 18062009-06-06 Bruno Haible <bruno@clisp.org> 1807 1808 * x-perl.c (x_perl_prelex): Recognize the perl 5.10 operator '//'. 1809 Reported by Kevin Ryde <user42@zip.com.au>. 1810 18112009-05-29 Bruno Haible <bruno@clisp.org> 1812 1813 Improve msgfmt error message about format directive mismatches 1814 in msgstr[i]. 1815 * format.h (struct formatstring_parser): Add pretty_msgid argument to 1816 'check' member. 1817 * format-awk.c (format_check): Add pretty_msgid argument. 1818 * format-boost.c (format_check): Likewise. 1819 * format-c.c (format_check): Likewise. 1820 * format-csharp.c (format_check): Likewise. 1821 * format-elisp.c (format_check): Likewise. 1822 * format-gcc-internal.c (format_check): Likewise. 1823 * format-gfc-internal.c (format_check): Likewise. 1824 * format-java.c (format_check): Likewise. 1825 * format-kde.c (format_check): Likewise. 1826 * format-librep.c (format_check): Likewise. 1827 * format-lisp.c (format_check): Likewise. 1828 * format-pascal.c (format_check): Likewise. 1829 * format-perl-brace.c (format_check): Likewise. 1830 * format-perl.c (format_check): Likewise. 1831 * format-php.c (format_check): Likewise. 1832 * format-python.c (format_check): Likewise. 1833 * format-qt.c (format_check): Likewise. 1834 * format-qt-plural.c (format_check): Likewise. 1835 * format-scheme.c (format_check): Likewise. 1836 * format-sh.c (format_check): Likewise. 1837 * format-tcl.c (format_check): Likewise. 1838 * format-ycp.c (format_check): Likewise. 1839 * format.c (check_msgid_msgstr_format_i): Pass either "msgid" or 1840 "msgid_plural" as pretty_msgid argument. 1841 18422009-05-23 Bruno Haible <bruno@clisp.org> 1843 1844 * Makefile.am (libgettextsrc_la_LINK, msgattrib_LINK, msgcat_LINK, 1845 msgcomm_LINK, msgconv_LINK, msgen_LINK, msgfilter_LINK, msggrep_LINK, 1846 msgmerge_LINK, msguniq_LINK, xgettext_LINK): Add $(AM_V_lt) flag. 1847 18482009-05-16 Bruno Haible <bruno@clisp.org> 1849 1850 Extract comments meant for translators from Glade input files. 1851 * xgettext.h (remember_a_message): Add 'extracted_comment' argument. 1852 * xgettext.c (remember_a_message): Likewise. 1853 (arglist_parser_done): Update. 1854 * x-glade.c (struct element_state): Add field 'extracted_comment'. 1855 (start_element_handler): Fill it. 1856 (end_element_handler): Pass it to 'remember_a_message', free it. 1857 * x-awk.c (extract_parenthesized): Update. 1858 * x-c.c (extract_parenthesized): Update. 1859 * x-csharp.c (extract_parenthesized): Update. 1860 * x-elisp.c (read_object): Update. 1861 * x-java.c (extract_parenthesized): Update. 1862 * x-librep.c (read_object): Update. 1863 * x-lisp.c (read_object): Update. 1864 * x-perl.c (extract_variable, interpolate_keywords, extract_balanced): 1865 Update. 1866 * x-php.c (extract_balanced): Update. 1867 * x-python.c (extract_balanced): Update. 1868 * x-rst.c (extract_rst): Update. 1869 * x-scheme.c (read_object): Update. 1870 * x-sh.c (read_word, read_command): Update. 1871 * x-smalltalk.c (extract_smalltalk): Update. 1872 * x-tcl.c (read_command): Update. 1873 * x-ycp.c (extract_parenthesized): Update. 1874 Reported by <sandro.bonazzola@gmail.com> 1875 at <https://savannah.gnu.org/bugs/?26570>. 1876 18772009-03-29 Bruno Haible <bruno@clisp.org> 1878 1879 * message.h (format_type): New enum value 'format_gfc_internal'. 1880 (NFORMATS): Increment. 1881 * message.c (format_language): Add format_gfc_internal entry. 1882 (format_language_pretty): Likewise. 1883 * format.h (formatstring_gfc_internal): New declaration. 1884 * format-gfc-internal.c: New file. 1885 * format.c (formatstring_parsers): Add formatstring_gfc_internal. 1886 * x-c.h (SCANNERS_C): In language GCC-source, also keep track of 1887 gfc-internal-format format strings. 1888 * x-c.c (init_flag_table_gcc_internal): Also register flags for 1889 gfc-internal-format. 1890 * xgettext.c (xgettext_record_flag): Store gfc-internal-format flags in 1891 flag_table_gcc_internal. 1892 * Makefile.am (FORMAT_SOURCE): Add format-gfc-internal.c. 1893 * FILES: Update. 1894 Reported by Göran Uddeborg <goeran@uddeborg.se>. 1895 18962009-01-27 Bruno Haible <bruno@clisp.org> 1897 1898 * message.h (format_type): New enum value 'format_qt_plural'. 1899 (NFORMATS): Increment. 1900 * message.c (format_language): Add format_qt_plural entry. 1901 (format_language_pretty): Likewise. 1902 * format.h (formatstring_qt_plural): New declaration. 1903 * format-qt-plural.c: New file. 1904 * format.c (formatstring_parsers): Add formatstring_qt_plural. 1905 * xgettext.h (struct flag_context_ty): Add fields is_format3, 1906 pass_format3. 1907 * xgettext.c (struct extractor_ty): Add field formatstring_parser3. 1908 (inherited_context, flag_context_list_table_insert): Handle the new 1909 flag_context_ty fields. 1910 (xgettext_record_flag): Handle format_qt_plural. 1911 (current_formatstring_parser3): New variable. 1912 (extract_from_file): Initialize it. 1913 (set_format_flags_from_context): Handle the new flag_context_ty fields. 1914 (remember_a_message, remember_a_message_plural): Handle 1915 current_formatstring_parser3. Avoid adding a c-format flag to a message 1916 already flagged as qt-plural-format. 1917 (arglist_parser_remember): Allow argnum1 and argnum2 in the call shape 1918 to be the same. 1919 (arglist_parser_done): Add special recognition of qt-plural-format 1920 strings. 1921 (language_to_extractor): Set the formatstring_parser3 in the result. 1922 * Makefile.am (FORMAT_SOURCE): Add format-qt-plural.c. 1923 * FILES: Update. 1924 19252009-01-27 Bruno Haible <bruno@clisp.org> 1926 1927 * plural-table.c (plural_table): Put Turkish under nplurals=2. 1928 Reported by Sertaç Ö. Yıldız <sertacyildiz@gmail.com>. 1929 19302009-01-26 Bruno Haible <bruno@clisp.org> 1931 1932 * msgattrib.c (main): Update year in --version output. 1933 * msgcat.c (main): Likewise. 1934 * msgcmp.c (main): Likewise. 1935 * msgcomm.c (main): Likewise. 1936 * msgconv.c (main): Likewise. 1937 * msgen.c (main): Likewise. 1938 * msgexec.c (main): Likewise. 1939 * msgfilter.c (main): Likewise. 1940 * msgfmt.c (main): Likewise. 1941 * msggrep.c (main): Likewise. 1942 * msginit.c (main): Likewise. 1943 * msgmerge.c (main): Likewise. 1944 * msgunfmt.c (main): Likewise. 1945 * msguniq.c (main): Likewise. 1946 * xgettext.c (main): Likewise. 1947 * urlget.c (main): Likewise. 1948 19492009-01-25 Bruno Haible <bruno@clisp.org> 1950 1951 Fix bug introduced on 2005-10-01. 1952 * msgl-charset.c (compare_po_locale_charsets): Fix recognition of 1953 header entry. 1954 19552009-01-25 Bruno Haible <bruno@clisp.org> 1956 1957 Fix bug introduced on 2008-10-04. 1958 * read-catalog-abstract.c (po_parse_comment_special): Initialize 1959 *rangep. 1960 Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>. 1961 19622009-01-18 Bruno Haible <bruno@clisp.org> 1963 1964 * msgfmt.c: Include str-list.h. 1965 (main): When --statistics and --verbose are both specified, output the 1966 input file name in front of the statistics line. 1967 Suggested by Vincent Lefevre <vincent@vinc17.org>. 1968 19692009-01-18 Bruno Haible <bruno@clisp.org> 1970 1971 Allow multiple levels of verbosity in 'msgfmt'. 1972 * msgfmt.h (verbose): Change from 'bool' to 'int'. 1973 * msgfmt.c (verbose): Likewise. 1974 (main): Increment 'verbose' for each --verbose option. 1975 * write-java.c (msgdomain_write_java): Update. 1976 * write-csharp.c (msgdomain_write_csharp): Update. 1977 * write-resources.c (msgdomain_write_csharp_resources): Update. 1978 19792009-01-18 Bruno Haible <bruno@clisp.org> 1980 1981 * str-list.h (string_list_join): Change the separator argument, 1982 allowing an entire separator string. 1983 * str-list.c (string_list_join): Likewise. 1984 19852009-01-18 Bruno Haible <bruno@clisp.org> 1986 1987 Fix a '(null)' in an error message. Bug present since gettext-0.16. 1988 * read-catalog.h (DEFAULT_CATALOG_READER_TY): Add a file_name field. 1989 * read-catalog.c (read_catalog_stream): Initialize it. 1990 * x-po.c (extract): Likewise. 1991 * msgfmt.c (read_catalog_file_msgfmt): Likewise. 1992 (msgfmt_parse_debrief): Use the file_name field from the catalog reader 1993 instead of gram_pos.file_name. 1994 19952009-01-17 Bruno Haible <bruno@clisp.org> 1996 1997 Update after gnulib changed. 1998 * Makefile.am (RELOCATABLE_STRIP): New variable. 1999 20002008-12-07 Bruno Haible <bruno@clisp.org> 2001 2002 * write-po.c (message_print_comment_filepos): Use a 'const' pointer 2003 where possible. 2004 * write-stringtable.c (write_message): Likewise. 2005 20062008-12-07 Bruno Haible <bruno@clisp.org> 2007 2008 Avoid gcc -Wredundant-decls warnings. 2009 * x-awk.c: Don't include the specification header file twice. 2010 * x-c.c: Likewise. 2011 * x-csharp.c: Likewise. 2012 * x-elisp.c: Likewise. 2013 * x-glade.c: Likewise. 2014 * x-java.c: Likewise. 2015 * x-librep.c: Likewise. 2016 * x-lisp.c: Likewise. 2017 * x-perl.c: Likewise. 2018 * x-php.c: Likewise. 2019 * x-po.c: Likewise. 2020 * x-python.c: Likewise. 2021 * x-rst.c: Likewise. 2022 * x-scheme.c: Likewise. 2023 * x-sh.c: Likewise. 2024 * x-smalltalk.c: Likewise. 2025 * x-tcl.c: Likewise. 2026 * x-ycp.c: Likewise. 2027 20282008-11-14 Bruno Haible <bruno@clisp.org> 2029 2030 * msgfilter.c: Include xvasprintf.h, xsetenv.h. 2031 (process_message): Set the environment variables MSGFILTER_MSGCTXT, 2032 MSGFILTER_MSGID, MSGFILTER_LOCATION. 2033 20342008-10-28 Bruno Haible <bruno@clisp.org> 2035 2036 * msgmerge.c (match_domain): Remove space between '#' and 'pragma' for 2037 OpenMP. 2038 Reported by Lamarque Eric <eric.lamarque@free.fr>. 2039 20402008-10-04 Bruno Haible <bruno@clisp.org> 2041 2042 * plural-distrib.h (struct plural_distribution): New field 'histogram'. 2043 * format.h (check_msgid_msgstr_format_i, check_msgid_msgstr_format): 2044 Add range argument. 2045 * format.c (check_msgid_msgstr_format_i): Add range argument. Set 2046 strict_checking to false if, due to the range, the plural forms applies 2047 to only one value of n. 2048 (check_msgid_msgstr_format): Add range argument. 2049 * msgl-check.c (plural_expression_histogram): New function. 2050 (check_plural_eval, check_plural): Update. 2051 (check_pair): Pass the range to check_msgid_msgstr_format. 2052 (check_message_list): Update. 2053 * msgmerge.c (message_merge): Pass the range to 2054 check_msgid_msgstr_format_i. 2055 Reported by Anatoly Techtonik <techtonik@gmail.com> 2056 via <https://savannah.gnu.org/bugs/?24433>. 2057 20582008-10-04 Bruno Haible <bruno@clisp.org> 2059 2060 * message.h (struct argument_range): New type. 2061 (has_range_p): New macro. 2062 (struct message_ty): Add field 'range'. 2063 * message.c (message_alloc): Initialize the 'range' field. 2064 (message_copy): Copy the 'range' field. 2065 * read-catalog-abstract.h (po_parse_comment_special): Add 'rangep' 2066 argument. 2067 * read-catalog-abstract.c: Include <limits.h>. 2068 (po_parse_comment_special): Add 'rangep' argument. Parse the range 2069 description syntax. 2070 * read-catalog.h (DEFAULT_CATALOG_READER_TY): Add 'range' field. 2071 * read-catalog.c (default_constructor): Initialize the 'range' field. 2072 (default_copy_comment_state): Copy the 'range' field into the new 2073 message. 2074 (default_reset_comment_state): Clear the 'range' field. 2075 (default_comment_special): Update. 2076 * write-po.h (make_range_description_string): New declaration. 2077 * write-po.c (make_range_description_string): New function. 2078 (message_print_comment_flags): Also print the range. 2079 * write-stringtable.c (write_message): Likewise. 2080 * msgl-cat.c: Include <limits.h>. 2081 (catenate_msgdomain_list): Fill in the range of the resulting messages. 2082 * msgl-equal.c (message_equal): Compare also the ranges. 2083 * msgmerge.c (message_merge): Fill in the range of the resulting 2084 message. Set it fuzzy if a range was introduced or extended. 2085 * xgettext.c (remember_a_message): Set the range of the new message. 2086 20872008-10-03 Bruno Haible <bruno@clisp.org> 2088 2089 * plural-distrib.h: New file. 2090 * format.h: Include plural-distrib.h. 2091 (check_msgid_msgstr_format_i, check_msgid_msgstr_format): Replace 2092 plural_distribution, plural_distribution_length arguments with a single 2093 distribution argument. 2094 * format.c (check_msgid_msgstr_format_i, check_msgid_msgstr_format): 2095 Likewise. 2096 * msgl-check.h: Include plural-distrib.h. 2097 (check_plural_eval, check_message): Replace plural_distribution, 2098 plural_distribution_length arguments with a single distribution 2099 argument. 2100 * msgl-check.c (check_plural_eval): Likewise. Free array in case of 2101 error. 2102 (check_plural): Replace plural_distribution, plural_distribution_length 2103 arguments with a single distribution argument. Don't store a 2104 distribution result when there are errors. 2105 (check_pair, check_message): Replace plural_distribution, 2106 plural_distribution_length arguments with a single distribution 2107 argument. 2108 (check_message_list): Update. 2109 * msgmerge.c (message_merge: Replace plural_distribution, 2110 plural_distribution_length arguments with a single distribution 2111 argument. 2112 (match_domain): Update. 2113 * Makefile.am (noinst_HEADERS): Add plural-distrib.h. 2114 * FILES: Mention plural-distrib.h. 2115 21162008-09-28 Bruno Haible <bruno@clisp.org> 2117 2118 * write-catalog.c (msgdomain_list_print): Open the output stream in 2119 binary mode, for consistency with the term_styled_ostream or fd_stream 2120 based case. 2121 21222008-09-28 Bruno Haible <bruno@clisp.org> 2123 2124 * Makefile.am (msg*_DEPENDENCIES, xgettext_DEPENDENCIES, 2125 recode_sr_latin_DEPENDENCIES): Add $(WOE32_LDADD). 2126 21272008-09-28 Bruno Haible <bruno@clisp.org> 2128 2129 * msgexec.c (process_string): Don't die from SIGPIPE if the subprocess 2130 does not want our input. 2131 Reported by Rainer Tammer <tammer@tammer.net>. 2132 21332008-09-28 Bruno Haible <bruno@clisp.org> 2134 2135 * Makefile.am (msgcmp_LDADD): Add MSGMERGE_LIBM. 2136 Reported by Rainer Tammer <tammer@tammer.net>. 2137 21382008-09-27 Bruno Haible <bruno@clisp.org> 2139 2140 * lang-table.c (language_table): Add Asturian, Crimean Tatar, Friulian, 2141 Papiamento. 2142 * msginit.c (catalogname_for_locale): Add Asturian, Friulian, 2143 Papiamento. 2144 21452008-09-26 Bruno Haible <bruno@clisp.org> 2146 2147 * write-catalog.c (cmp_by_msgid, cmp_by_filepos): Compare the msgctxt 2148 fields if the msgid fields are the same. 2149 Reported by Rainer Tammer <tammer@tammer.net>. 2150 21512008-09-15 Bruno Haible <bruno@clisp.org> 2152 2153 * Makefile.am (msg*_DEPENDENCIES, xgettext_DEPENDENCIES, 2154 recode_sr_latin_DEPENDENCIES): New variables. 2155 21562008-09-15 Bruno Haible <bruno@clisp.org> 2157 2158 * msgl-fsearch.h: Include stdbool.h. 2159 (message_fuzzy_index_search): Add 'heuristic' argument. 2160 * msgl-fsearch.c (message_fuzzy_index_search): Likewise. If !heuristic, 2161 consider all messages. 2162 * msgmerge.c (struct definitions_ty): Add fields 'curr_findex', 2163 'curr_findex_init_lock'. 2164 (definitions_init): Initialize them. 2165 (definitions_set_current_list): Clear the previous curr_findex. 2166 (definitions_init_curr_findex): New function. 2167 (definitions_search_fuzzy): Do fuzzy matching by calling 2168 message_fuzzy_index_search on a hashed index, rather than through 2169 message_list_search_fuzzy. 2170 (definitions_destroy): Update. 2171 (merge): Determine the definitions' canonical encoding. 2172 * msgcmp.c: Include xmalloca.h, po-charset.h, msgl-fsearch.h. 2173 (match_domain): Add defmlp_findex, def_canon_charset arguments. Do 2174 fuzzy matching by calling message_fuzzy_index_search on a hashed 2175 index, rather than through message_list_search_fuzzy. 2176 (compare): Determine the definitions' canonical encoding. Prepare room 2177 for a lazily allocated hashed index. 2178 * Makefile.am (msgcmp_SOURCES): Add msgl-fsearch.c. 2179 21802008-09-15 Bruno Haible <bruno@clisp.org> 2181 2182 * msgcmp.c (use_fuzzy_matching): New variable. 2183 (long_options): Add option -N/--no-fuzzy-matching. 2184 (main, match_domain): Implement it. 2185 (usage): Document it. 2186 21872008-09-14 Bruno Haible <bruno@clisp.org> 2188 2189 * msgl-fsearch.h (message_fuzzy_index_search): Add 'lower_bound' 2190 argument. 2191 * msgl-fsearch.c (message_fuzzy_index_search): Likewise. 2192 * msgmerge.c (definitions_search_fuzzy): Use the result of the fuzzy 2193 search in the current list as a lower bound for the fuzzy search in the 2194 compendiums. 2195 21962008-09-14 Bruno Haible <bruno@clisp.org> 2197 2198 * message.h (message_list_search_fuzzy, FUZZY_THRESHOLD): Clarify 2199 documentation. 2200 2201 * msgmerge.c (struct definitions_ty): Rename field 'findex' to 2202 'comp_findex', and 'findex_init_lock' to 'comp_findex_init_lock'. 2203 (definitions_init): Update. 2204 (definitions_init_comp_findex): Renamed from definitions_init_findex. 2205 Update. 2206 (definitions_search_fuzzy, definitions_destroy): Update. 2207 2208 * msgmerge.c (definitions_current_list, definitions_set_current_list): 2209 Move functions. 2210 22112008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2212 Bruno Haible <bruno@clisp.org> 2213 2214 * message.h (fuzzy_search_goal_function): Add 'lower_bound' argument. 2215 * message.c (fuzzy_search_goal_function): Likewise. Use fstrcmp_bounded 2216 instead of fstrcmp. 2217 (message_list_search_fuzzy_inner): Pass fuzzy_search_goal_function the 2218 best weight known so far, to shortcut computations. 2219 * msgl-fsearch.c (message_fuzzy_index_search): Likewise. 2220 * msgmerge.c (definitions_search_fuzzy): Update 2221 fuzzy_search_goal_function calls. 2222 22232008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2224 Bruno Haible <bruno@clisp.org> 2225 2226 * xgettext.c: Include concat-filename.h. 2227 (main, xgettext_open): Use xconcatenated_filename instead of 2228 concatenated_filename. 2229 22302008-09-01 Bruno Haible <bruno@clisp.org> 2231 2232 * color.c: Include concat-filename.h. 2233 (style_file_lookup, style_file_prepare): Use xconcatenated_filename 2234 instead of concatenated_filename. 2235 * msginit.c: Include concat-filename.h instead of filename.h. 2236 (project_id, project_id_version): Use xconcatenated_filename instead of 2237 concatenated_filename. 2238 * open-catalog.c: Include concat-filename.h. 2239 (try_open_catalog_file): Use xconcatenated_filename instead of 2240 concatenated_filename. 2241 * read-csharp.c: Include concat-filename.h instead of filename.h. 2242 (msgdomain_read_csharp): Use xconcatenated_filename instead of 2243 concatenated_filename. 2244 * read-resources.c: Include concat-filename.h instead of filename.h. 2245 (read_resources_file): Use xconcatenated_filename instead of 2246 concatenated_filename. 2247 * read-tcl.c: Include concat-filename.h instead of filename.h. 2248 (msgdomain_read_tcl): Use xconcatenated_filename instead of 2249 concatenated_filename. 2250 * write-resources.c: Include concat-filename.h instead of filename.h. 2251 (msgdomain_write_csharp_resources): Use xconcatenated_filename instead of 2252 concatenated_filename. 2253 * write-csharp.c: Include concat-filename.h instead of filename.h. 2254 (msgdomain_write_csharp): Use xconcatenated_filename instead of 2255 concatenated_filename. 2256 * write-java.c: Include concat-filename.h instead of filename.h. 2257 (msgdomain_write_java): Use xconcatenated_filename instead of 2258 concatenated_filename. 2259 * write-tcl.c: Include concat-filename.h instead of filename.h. 2260 (msgdomain_write_tcl: Use xconcatenated_filename instead of 2261 concatenated_filename. 2262 22632008-08-31 Bruno Haible <bruno@clisp.org> 2264 2265 * msgexec.c: Include <signal.h>. 2266 (main): Block SIGPIPE for the duration of the processing. 2267 22682008-08-23 Bruno Haible <bruno@clisp.org> 2269 2270 Fix behaviour of "msgmerge --update" when sorting is requested and 2271 obsolete messages are present. 2272 * write-catalog.h (struct catalog_output_format): New field 2273 'sorts_obsoletes_to_end'. 2274 * write-po.c (output_format_po): Initialize it to true. 2275 * write-properties.c (output_format_properties): Initialize it to false. 2276 * write-stringtable.c (output_format_stringtable): Likewise. 2277 * msgmerge.c (msgdomain_list_stablesort_by_obsolete): New function. 2278 (main): Before testing whether the result is the same as the old 2279 contents, sort the result using msgdomain_list_stablesort_by_obsolete. 2280 Reported by Vincent Danjean <vdanjean.abo@free.fr> 2281 via <http://savannah.gnu.org/bugs/?24123>. 2282 22832008-08-16 Bruno Haible <bruno@clisp.org> 2284 2285 * x-python.c (enum token_type_ty): New values token_type_lbracket, 2286 token_type_rbracket. 2287 (phase5_get): Recognize also token_type_lbracket, token_type_rbracket. 2288 (extract_balanced): Renamed from extract_parenthesized. Add 'delim' 2289 argument. Handle token_type_lbracket and token_type_rbracket. 2290 (extract_python): Update. 2291 Reported by Claude Paroz <claude@2xlibre.net> 2292 via <http://savannah.gnu.org/bugs/?23824>. 2293 22942008-08-16 Bruno Haible <bruno@clisp.org> 2295 2296 * x-php.c (extract_balanced): Fix small bug in 2007-03-17 commit. 2297 22982008-08-15 Bruno Haible <bruno@clisp.org> 2299 2300 * format-python.c (format_parse): For %.0s and %.0r, set the type to 2301 FORMAT_ANY. 2302 (format_check): When strict equality is not desired, compare FORMAT_ANY 2303 as matching any type. 2304 Reported by Alexander Dupuy <alex.dupuy@mac.com> in 2305 <http://savannah.gnu.org/bugs/?24025>. 2306 23072008-08-14 Bruno Haible <bruno@clisp.org> 2308 2309 * format-python.c (format_parse): For '%', set the type to FAT_NONE. 2310 23112008-08-14 Bruno Haible <bruno@clisp.org> 2312 2313 * format-python.c (format_check): Require the same number of unnamed 2314 arguments also when !equality. 2315 Reported by Alexander Dupuy <alex.dupuy@mac.com> in 2316 <http://savannah.gnu.org/bugs/?24025>. 2317 23182008-08-14 Bruno Haible <bruno@clisp.org> 2319 2320 * msgmerge.c: Include "glthread/lock.h" instead of "lock.h". 2321 23222008-08-03 Bruno Haible <bruno@clisp.org> 2323 2324 * x-python.c (mixed_string_buffer_append): Replace a lone high 2325 surrogate with U+FFFD. 2326 Reported by Yann <asterix@lagaule.org> 2327 via Santiago Vila <sanvila@unex.es>. 2328 23292008-07-19 Bruno Haible <bruno@clisp.org> 2330 2331 * gnu/gettext/GetURL.java: Don't output anything to standard error. 2332 Instead, set exit code to indicate failure reason. 2333 * urlget.c (verbose): New variable. 2334 (long_options): Add --quiet, --silent option. 2335 (main): Implement --quiet, --silent option. 2336 (usage): Document --quiet, --silent option. 2337 (java_exitcode): New variable. 2338 (execute_it): Set it. Return false also when the exit code is 2. 2339 (fetch): Implement verbosity to standard error here. 2340 Reported by 宋浩 <baritono.tux@gmail.com>. 2341 23422008-06-10 Bruno Haible <bruno@clisp.org> 2343 2344 * msgexec.c (process_string): Update for changed signature of 2345 wait_subprocess(). 2346 * msgfilter.c (generic_filter): Likewise. 2347 * msginit.c (project_id, project_id_version, get_user_email, 2348 language_team_address): Likewise. 2349 * read-csharp.c (execute_and_read_po_output): Likewise. 2350 * read-java.c (execute_and_read_po_output): Likewise. 2351 * read-resources.c (execute_and_read_po_output): Likewise. 2352 * read-tcl.c (msgdomain_read_tcl): Likewise. 2353 * write-resources.c (execute_writing_input): Likewise. 2354 * urlget.c (execute_it, fetch): Update for changed signature of 2355 execute(). 2356 23572008-05-26 Bruno Haible <bruno@clisp.org> 2358 2359 * msginit.c (get_field, put_field): Recognize a field also if there is 2360 no space after the ':'. 2361 Reported by Nacho <nacho.resa@gmail.com>. 2362 23632008-05-16 Bruno Haible <bruno@clisp.org> 2364 2365 * msgl-iconv.c (iconvable_prev_msgid): Fix typo. 2366 Reported by Karl Eichwalder <ke@novell.com> 2367 via Philipp Thomas <pth@novell.com> 2368 at <https://bugzilla.novell.com/show_bug.cgi?id=391372>. 2369 23702008-05-10 Bruno Haible <bruno@clisp.org> 2371 2372 * write-po.c: Include unilbrk.h instead of linebreak.h. 2373 (wrap): Update. 2374 * po-lex.c: Don't include linebreak.h. 2375 23762008-04-25 Bruno Haible <bruno@clisp.org> 2377 2378 * lang-table.c (language_table): Add Beja. Remove Adangme, Banda, 2379 Batak. Update Scottish Gaelic, Central Khmer, Romansh. 2380 * msginit.c (catalogname_for_locale: Add Beja. Remove Banda, Batak. 2381 Update Scottish Gaelic, Central Khmer, Romansh. 2382 23832008-04-20 Bruno Haible <bruno@clisp.org> 2384 2385 Improve error message. 2386 * xgettext.h (lexical_context_ty): New type. 2387 (non_ascii_error_message): New declaration. 2388 (from_current_source_encoding): Add lcontext argument. 2389 * xgettext.c (non_ascii_error_message): New function. 2390 (from_current_source_encoding): Add lcontext argument. Use 2391 non_ascii_error_message. 2392 (CONVERT_STRING): Add lcontext argument. 2393 (remember_a_message, remember_a_message_plural): Update. 2394 * x-csharp.c (lexical_context): New variable. 2395 (phase2_getc): Use non_ascii_error_message. 2396 (comment_start, comment_line_end, phase6_get): Set lexical_context. 2397 (extract_csharp): Initialize lexical_context. 2398 * x-java.c (struct string_buffer): Add lcontext field. 2399 (init_string_buffer): Add lcontext argument. 2400 (string_buffer_flush_curr_buffer): Update from_current_source_encoding 2401 call. 2402 (comment_start): Set lcontext. 2403 (phase5_get): Pass lcontext argument. 2404 * x-perl.c (get_here_document, phase2_getc, 2405 extract_quotelike_pass1_utf8): Pass lcontext argument. 2406 * x-python.c (lexical_context): New variable. 2407 (phase2_getc): Use non_ascii_error_message. 2408 (comment_start, comment_line_end, phase6_get): Set lexical_context. 2409 (struct mixed_string_buffer): Add lcontext field. 2410 (init_mixed_string_buffer): Add lcontext argument. 2411 (mixed_string_buffer_flush_curr_buffer): Update 2412 from_current_source_encoding call. 2413 (phase5_get): Set lexical_context. Pass lcontext argument. 2414 (extract_python): Initialize lexical_context. 2415 Reported by Mark Weyer. 2416 24172008-04-20 Bruno Haible <bruno@clisp.org> 2418 2419 * xgettext.c (usage): Clarify single-letter options that take an 2420 optional argument: -c, -k, -m, -M. 2421 24222008-04-16 Bruno Haible <bruno@clisp.org> 2423 2424 * msginit.c (catalogname_for_locale): Add entries for Maori, Uighur. 2425 24262008-02-20 Jakub Jelinek <jakub@redhat.com> 2427 Bruno Haible <bruno@clisp.org> 2428 2429 * format-gcc-internal.c: Update for GCC 4.3. 2430 (FAT_TREE_STATEMENT): New enum item. 2431 (format_parse): Recognize %K. 2432 (format_print): Update. 2433 24342008-02-04 Bruno Haible <bruno@clisp.org> 2435 2436 * msgmerge.c (match_domain): Remove the prev_msgid fields also from 2437 the untranslated messages. 2438 Reported by Yukiko Bando <ybando@k6.dion.ne.jp> via 2439 Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>. 2440 24412008-02-04 Bruno Haible <bruno@clisp.org> 2442 2443 * msgmerge.c (message_merge): Store the prev_msgid field also if the 2444 resulting message is not fuzzy: it might be marked as fuzzy later. 2445 (match_domain): Remove the prev_msgid fields from the non-fuzzy 2446 messages. 2447 24482008-01-29 Bruno Haible <bruno@clisp.org> 2449 2450 * write-po.c (wrap): Change the severity of the "should not contain 2451 escape sequence" message from PO_SEVERITY_ERROR to PO_SEVERITY_WARNING. 2452 Reported by Kerb <ykerb2@free.fr>. 2453 24542008-01-13 Bruno Haible <bruno@clisp.org> 2455 2456 * Makefile.am (noinst_headers): Add msgl-header.h. 2457 24582007-12-24 Bruno Haible <bruno@clisp.org> 2459 2460 Introduce 'Language' header field. 2461 * xgettext.c (construct_header): Add an empty 'Language' field. 2462 * msginit.c (language_value): New function. 2463 (fields): Add 'Language'. 2464 * msgmerge.c: Include lang-table.h. 2465 (catalogname): New variable. 2466 (long_options): Add --lang option. 2467 (main): Handle --lang option. 2468 (usage): Document --lang option. 2469 (message_merge): Set the 'Language' field if --lang was specified or 2470 if it is missing and can be inferred from the 'Language-Team' field. 2471 * msgl-header.h: New file. 2472 * msgl-header.c: New file. 2473 * msgcat.c: Include msgl-header.h. 2474 (long_options): Add --lang option. 2475 (main): Handle --lang option. 2476 (usage): Document --lang option. 2477 * msgen.c: Include msgl-header.h. 2478 (long_options): Add --lang option. 2479 (main): Handle --lang option. 2480 (usage): Document --lang option. 2481 * msgl-check.c (plural_help): Look at the 'Language' field before 2482 looking at the 'Language-Team' field. 2483 (check_header_entry): Fix comparison with default value. When the 2484 'Language' field is missing, signal a warning. 2485 * Makefile.am (libgettextsrc_la_SOURCES): Add msgl-header.c. 2486 (msgmerge_SOURCES): Add lang-table.c. 2487 * FILES: Update. 2488 24892007-12-22 Bruno Haible <bruno@clisp.org> 2490 2491 * write-po.c (wrap): Avoid breaking line in the middle of a format 2492 directive. 2493 Reported by Dwayne Bailey <dwayne@translate.org.za>. 2494 24952007-11-07 Jim Meyering <meyering@redhat.com> 2496 Bruno Haible <bruno@clisp.org> 2497 2498 * write-catalog.c (msgdomain_list_print): Fix open() call. 2499 25002007-11-07 Bruno Haible <bruno@clisp.org> 2501 2502 * gettext-0.17 released. 2503 25042007-10-28 Bruno Haible <bruno@clisp.org> 2505 2506 * color.c (style_file_lookup): New function. 2507 (style_file_prepare): Use it. 2508 25092007-10-21 Bruno Haible <bruno@clisp.org> 2510 2511 Normalize the leading space of every comment line during input, not 2512 during output. 2513 * read-catalog-abstract.c (po_callback_comment_dispatcher): Before 2514 calling po_callback_comment or po_callback_comment_dot, drop the 2515 leading space. 2516 * write-po.c (message_print_comment, message_print_comment_dot): Don't 2517 remove the leading space of every comment line. 2518 * write-stringtable.c (write_message): Likewise. 2519 Suggested by Dwayne Bailey <dwayne@translate.org.za>. 2520 25212007-10-20 Bruno Haible <bruno@clisp.org> 2522 2523 * msgmerge.c (message_merge): Set the fuzzy flag if the msgid_plural 2524 changed. 2525 Suggested by Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>. 2526 25272007-10-20 Bruno Haible <bruno@clisp.org> 2528 2529 Make msgmerge's introduction of fuzzy markers more consistent with 2530 msgfmt's --check-format. 2531 * format.h (check_msgid_msgstr_format_i): New declaration. 2532 * format.c (check_msgid_msgstr_format_i): New function, extracted from 2533 check_msgid_msgstr_format. 2534 (check_msgid_msgstr_format): Use it. 2535 * msgl-check.h: Include plural-eval.h. 2536 (check_plural_eval): New declaration. 2537 * msgl-check.c (check_plural_eval): Add const to first parameter. Make 2538 non-static. 2539 (check_plural): Update. 2540 * msgmerge.c: Include plural-exp.h, msgl-check.h, po-xerror.h. 2541 (msgfmt_check_pair_fails): Remove function. 2542 (silent_error_logger, silent_xerror): New functions. 2543 (message_merge): Add plural_distribution, plural_distribution_length 2544 arguments. Call check_msgid_msgstr_format_i instead of 2545 msgfmt_check_pair_fails. 2546 (match_domain): Extract not only the plural count, but also the 2547 plural expression from the header entry. Determine the plural 2548 distribution from it. Pass it to message_merge. 2549 Reported by Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>. 2550 25512007-10-20 Bruno Haible <bruno@clisp.org> 2552 2553 * msgl-check.c (check_plural): If there is no header entry, or if the 2554 header entry does not contain plural= and nplurals=, return a plural 2555 distribution corresponding to the Germanic plural. 2556 25572007-10-20 Bruno Haible <bruno@clisp.org> 2558 2559 * format.h (check_msgid_msgstr_format): Add plural_distribution_length 2560 argument. 2561 * format.c (check_msgid_msgstr_format): Likewise. 2562 * msgl-check.h (check_message): Likewise. 2563 * msgl-check.c (check_plural_eval, check_plural, check_pair, 2564 check_message): Likewise. 2565 (check_message_list): Update. 2566 25672007-10-18 Bruno Haible <bruno@clisp.org> 2568 2569 * plural-count.c (get_plural_count): Adapt to changed prototype of 2570 extract_plural_expression. 2571 * write-csharp.c (write_csharp_expression): Add const to parameter. 2572 (write_csharp_code): Adapt to changed prototype of 2573 extract_plural_expression. 2574 * write-java.c (write_java_expression): Add const to parameter. 2575 (write_java_code): Adapt to changed prototype of 2576 extract_plural_expression. 2577 25782007-10-07 Bruno Haible <bruno@clisp.org> 2579 2580 * hostname.c (main): In the --version output, say GPLv3+. 2581 * msgattrib.c (main): Likewise. 2582 * msgcat.c (main): Likewise. 2583 * msgcmp.c (main): Likewise. 2584 * msgcomm.c (main): Likewise. 2585 * msgconv.c (main): Likewise. 2586 * msgen.c (main): Likewise. 2587 * msgexec.c (main): Likewise. 2588 * msgfilter.c (main): Likewise. 2589 * msgfmt.c (main): Likewise. 2590 * msggrep.c (main): Likewise. 2591 * msginit.c (main): Likewise. 2592 * msgmerge.c (main): Likewise. 2593 * msgunfmt.c (main): Likewise. 2594 * msguniq.c (main): Likewise. 2595 * recode-sr-latin.c (main): Likewise. 2596 * urlget.c (main): Likewise. 2597 * xgettext.c (main): Likewise. 2598 25992007-09-30 Bruno Haible <bruno@clisp.org> 2600 2601 * xgettext.c (package_name, package_version): New variables. 2602 (long_options): Add --package-name, --package-version. 2603 (main): Handle options --package-name, --package-version. 2604 (usage): Document them. 2605 (construct_header): Use package_name if present. 2606 * msginit.c (project_id_version): Take a header argument. Return the 2607 old value if already present. 2608 (fields): Update. 2609 26102007-09-30 Bruno Haible <bruno@clisp.org> 2611 2612 * message.h (format_type): New enum value 'format_kde'. 2613 (NFORMATS): Increment. 2614 * message.c (format_language): Add format_kde entry. 2615 (format_language_pretty): Likewise. 2616 * format.h (formatstring_kde): New declaration. 2617 * format-kde.c: New file. 2618 * format.c (formatstring_parsers): Add formatstring_kde. 2619 * x-c.c (init_flag_table_c): Also register flags for qt-format and 2620 kde-format. 2621 * xgettext.c (flag_table_cxx_kde): New variable. 2622 (recognize_format_kde): New variable. 2623 (main): Handle --kde option. 2624 (usage): Document --kde option. 2625 (xgettext_record_flag): Also fill flag_table_cxx_kde. 2626 (remember_a_message, remember_a_message_plural): In the heuristics, 2627 don't mark a string as c-format that is already known to be a 2628 kde-format. 2629 (language_to_extractor): Use a flag_table_cxx_kde that is different 2630 from flag_table_c. 2631 * Makefile.am (FORMAT_SOURCE): Add format-kde.c. 2632 * FILES: Update. 2633 26342007-09-09 Bruno Haible <bruno@clisp.org> 2635 2636 Add support for Qt 4 format strings. 2637 * format-qt.c (struct spec): Increase args_used field size to 100. 2638 Add 'simple' field. 2639 (format_parse): Update for Qt 4 syntax. Remove error message when the 2640 same format argument is used more than once. 2641 (format_check): Add check: If the msgid is simple, the msgstr must be 2642 simple as well. 2643 Reported by Chusslove Illich <caslav.ilic@gmx.net>. 2644 26452007-09-02 Bruno Haible <bruno@clisp.org> 2646 2647 Correct handling of different libexpat ABIs. 2648 * x-glade.c: Include <stdint.h>. 2649 (p_XML_GetCurrentLineNumber, p_XML_GetCurrentColumnNumber): New 2650 variables. 2651 (is_XML_LARGE_SIZE_ABI, GetCurrentLineNumber, GetCurrentColumnNumber): 2652 New functions. 2653 (XML_GetCurrentLineNumber, XML_GetCurrentColumnNumber): Redefine. 2654 (XML_Expat_Version, XML_FeatureEnum, XML_Feature): New types. 2655 (p_XML_ExpatVersionInfo, p_XML_GetFeatureList): New variables. 2656 (p_XML_GetCurrentLineNumber, p_XML_GetCurrentColumnNumber): Change 2657 type to 'void *'. 2658 (XML_ExpatVersionInfo, XML_GetFeatureList): New macros. 2659 (XML_Size_ABI): New type. 2660 (get_XML_Size_ABI): New function. 2661 (XML_GetCurrentLineNumber, XML_GetCurrentColumnNumber): New functions. 2662 (load_libexpat): Try both version 2 and version 1. Initialize 2663 p_XML_ExpatVersionInfo, p_XML_GetFeatureList. 2664 26652007-09-02 Bruno Haible <bruno@clisp.org> 2666 2667 Implement msgctxt for C# ResourceManagers. 2668 * x-csharp.c (init_keywords): Also register GetParticularString and 2669 GetParticularPluralString. 2670 (init_flag_table_csharp): Update accordingly. 2671 * write-csharp.c: Include xmalloca.h. 2672 (write_csharp_msgid): New function. 2673 (write_csharp_code): Use it instead of write_csharp_string. 2674 (msgdomain_write_csharp): Remove error message if mlp has entries with 2675 context. 2676 * msgunfmt.cs (DumpResource.DumpMessage): Emit an msgctxt line 2677 if the message contain the context separator. 2678 26792007-09-01 Bruno Haible <bruno@clisp.org> 2680 2681 Implement msgctxt for Java ResourceBundles. 2682 * x-java.c (init_keywords): Also register pgettext and npgettext. 2683 (init_flag_table_java): Update accordingly. 2684 * write-java.c (msgid_hashcode): New function. 2685 (compute_hashsize, compute_table_items): Use it instead of 2686 string_hashcode. 2687 (write_java_msgid): New function. 2688 (write_java_code): Use it instead of write_java_string. 2689 (msgdomain_write_java): Remove error message if mlp has entries with 2690 context. 2691 * gnu/gettext/DumpResource.java (dumpMessage): Emit an msgctxt line 2692 if the message contain the context separator. 2693 Suggested by Felix Berger. 2694 26952007-09-01 Bruno Haible <bruno@clisp.org> 2696 2697 * po-lex.c: Include uniwidth.h. 2698 26992007-06-19 Bruno Haible <bruno@clisp.org> 2700 2701 * x-c.c (phase8_get): Call free_token, so that the reference to 2702 tmp.comment gets dropped. 2703 27042007-08-27 Bruno Haible <bruno@clisp.org> 2705 2706 * x-python.c (phase7_getuc): Interpret octal and hexadecimal escapes 2707 as Unicode code points inside Unicode strings. 2708 Reported and patch by Jakub Wilk <ubanus@users.sf.net>. 2709 27102007-08-23 Bruno Haible <bruno@clisp.org> 2711 2712 * file-list.c: Don't include getline.h. 2713 * format-awk.c: Likewise. 2714 * format-boost.c: Likewise. 2715 * format-c.c: Likewise. 2716 * format-csharp.c: Likewise. 2717 * format-elisp.c: Likewise. 2718 * format-gcc-internal.c: Likewise. 2719 * format-java.c: Likewise. 2720 * format-librep.c: Likewise. 2721 * format-lisp.c: Likewise. 2722 * format-pascal.c: Likewise. 2723 * format-perl-brace.c: Likewise. 2724 * format-perl.c: Likewise. 2725 * format-php.c: Likewise. 2726 * format-python.c: Likewise. 2727 * format-qt.c: Likewise. 2728 * format-scheme.c: Likewise. 2729 * format-sh.c: Likewise. 2730 * format-tcl.c: Likewise. 2731 * format-ycp.c: Likewise. 2732 * msginit.c: Likewise. 2733 * x-perl.c: Likewise. 2734 27352007-08-18 Bruno Haible <bruno@clisp.org> 2736 2737 * write-csharp.c (msgdomain_write_csharp): Don't recommend to use 2738 --verbose if it is already in use. 2739 * write-java.c (msgdomain_write_java): Likewise. 2740 Reported by Karsten Kousgaard <karsten@f-kousgaard.dk>. 2741 27422007-07-07 Bruno Haible <bruno@clisp.org> 2743 2744 * Makefile.am (AM_CPPFLAGS): Remove reference to libuniname directory. 2745 (LIBUNINAME): Remove variable. 2746 (xgettext_LDADD): Update. 2747 27482007-07-04 Bruno Haible <bruno@clisp.org> 2749 2750 Recognize the PHP string concatenation operator. 2751 * x-php.c (enum token_type_ty): New elements token_type_dot, 2752 token_type_operator1, token_type_operator2. 2753 (struct token_ty): Add comment field. 2754 (free_token): Drop reference to comment field. 2755 (phase4_pushback, phase4_pushback_length): New variables. 2756 (phase4_get): Renamed from x_php_lex. Return last pushed-back token if 2757 available. Recognize tokens '.', '+', '-', '*', '/', '%', '++', '--', 2758 '!', '~', '@'. Fill in tp->comment. 2759 (phase4_unget): New function. 2760 (phase5_last): New variable. 2761 (x_php_lex): New function. 2762 (extract_balanced): Handle the new token types. Pass token's comment 2763 to remember_a_message. 2764 (extract_php): Initialize phase5_last. 2765 Reported by Jan Engelhardt <jengelh@computergmbh.de>. 2766 27672007-06-30 Bruno Haible <bruno@clisp.org> 2768 2769 * hostname.c (main): Use the standard --version output, see 2770 <http://lists.gnu.org/archive/html/bug-gnulib/2007-03/msg00302.html>. 2771 * msgattrib.c (main): Likewise. 2772 * msgcat.c (main): Likewise. 2773 * msgcmp.c (main): Likewise. 2774 * msgcomm.c (main): Likewise. 2775 * msgconv.c (main): Likewise. 2776 * msgen.c (main): Likewise. 2777 * msgexec.c (main): Likewise. 2778 * msgfilter.c (main): Likewise. 2779 * msgfmt.c (main): Likewise. 2780 * msggrep.c (main): Likewise. 2781 * msginit.c (main): Likewise. 2782 * msgmerge.c (main): Likewise. 2783 * msgunfmt.c (main): Likewise. 2784 * msguniq.c (main): Likewise. 2785 * recode-sr-latin.c (main): Likewise. 2786 * urlget.c (main): Likewise. 2787 * xgettext.c (main): Likewise. 2788 27892007-06-30 Bruno Haible <bruno@clisp.org> 2790 2791 * lang-table.c (language_table): Fix entry for Javanese. 2792 27932007-06-28 Bruno Haible <bruno@clisp.org> 2794 2795 * format-gcc-internal.c (format_parse): Tweak an error message. 2796 Reported by Karl Eichwalder. 2797 27982007-06-28 Bruno Haible <bruno@clisp.org> 2799 2800 * lang-table.h (language_variant_table, language_variant_table_size): 2801 New declarations. 2802 * lang-table.c (language_variant_table, language_variant_table_size): 2803 New variables. 2804 * msginit.c (language_team_englishname): New function. 2805 (language_team): Use it instead of englishname_of_language. 2806 Reported by Li Daobing <lidaobing@gmail.com>. 2807 28082007-06-25 Bruno Haible <bruno@clisp.org> 2809 2810 Change boundary of extracted comments. 2811 * x-perl.c (struct token_ty): Add comment field. 2812 (free_token): Release tp->comment. 2813 (extract_quotelike): Fill in tp->comment. 2814 (x_perl_prelex): Set or release tp->comment when constructing tokens. 2815 (x_perl_lex): Likewise. 2816 (extract_balanced): Pass token's comment to remember_a_message. 2817 28182007-06-18 Bruno Haible <bruno@clisp.org> 2819 2820 Change boundary of extracted comments. 2821 * x-ycp.c (struct token_ty): Add comment field. 2822 (free_token): New function. 2823 (phase5_get): Fill in tp->comment. 2824 (phase8_get): Use free_token. 2825 (extract_parenthesized): Pass token's comment to remember_a_message. 2826 Use free_token. 2827 Reported by Karl Eichwalder <ke@suse.de>. 2828 28292007-06-09 Bruno Haible <bruno@clisp.org> 2830 2831 * format-java.c: Include xmalloca.h instead of xallocsa.h. 2832 (message_format_parse): Use xmalloca/freea instead of xallocsa/freesa. 2833 * message.c: Include xmalloca.h instead of xallocsa.h. 2834 (message_list_hash_insert_entry, message_list_search): Use 2835 xmalloca/freea instead of xallocsa/freesa. 2836 * msggrep.c: Include xmalloca.h instead of xallocsa.h. 2837 (is_message_selected_no_invert): Use xmalloca/freea instead of 2838 xallocsa/freesa. 2839 * msginit.c: Include xmalloca.h instead of xallocsa.h. 2840 (subst_string): Use xmalloca/freea instead of xallocsa/freesa. 2841 * msgl-cat.c: Include xmalloca.h instead of xallocsa.h. 2842 (catenate_msgdomain_list): Use xmalloca/freea instead of 2843 xallocsa/freesa. 2844 * msgl-charset.c: Include xmalloca.h instead of xallocsa.h. 2845 (compare_po_locale_charsets): Use xmalloca/freea instead of 2846 xallocsa/freesa. 2847 * msgl-iconv.c: Include xmalloca.h instead of xallocsa.h. 2848 (iconv_message_list_internal, is_message_list_iconvable): Use 2849 xmalloca/freea instead of xallocsa/freesa. 2850 * msgmerge.c: Include xmalloca.h instead of xallocsa.h. 2851 (merge): Use xmalloca/freea instead of xallocsa/freesa. 2852 * po-charset.c: Include xmalloca.h instead of xallocsa.h. 2853 (po_lex_charset_set): Use xmalloca/freea instead of xallocsa/freesa. 2854 * read-tcl.c: Include xmalloca.h instead of xallocsa.h. 2855 (msgdomain_read_tcl): Use xmalloca/freea instead of xallocsa/freesa. 2856 * write-java.c: Include xmalloca.h instead of xallocsa.h. 2857 (compute_hashsize, msgdomain_write_java): Use xmalloca/freea instead of 2858 xallocsa/freesa. 2859 * write-mo.c: Include xmalloca.h instead of xallocsa.h. 2860 (write_table): Use xmalloca/freea instead of xallocsa/freesa. 2861 * write-po.c: Include xmalloca.h instead of xallocsa.h. 2862 (msgdomain_list_print_po): Use xmalloca/freea instead of 2863 xallocsa/freesa. 2864 * write-tcl.c: Include xmalloca.h instead of xallocsa.h. 2865 (msgdomain_write_tcl): Use xmalloca/freea instead of xallocsa/freesa. 2866 * xgettext.c: Include xmalloca.h instead of xallocsa.h. 2867 (flag_context_list_table_insert): Use xmalloca/freea instead of 2868 xallocsa/freesa. 2869 28702007-06-08 Bruno Haible <bruno@clisp.org> 2871 2872 * msgattrib.c (main): Update year in --version output. 2873 * msgcat.c (main): Likewise. 2874 * msgcmp.c (main): Likewise. 2875 * msgcomm.c (main): Likewise. 2876 * msgconv.c (main): Likewise. 2877 * msgen.c (main): Likewise. 2878 * msgexec.c (main): Likewise. 2879 * msgfilter.c (main): Likewise. 2880 * msgfmt.c (main): Likewise. 2881 * msggrep.c (main): Likewise. 2882 * msginit.c (main): Likewise. 2883 * msgmerge.c (main): Likewise. 2884 * msgunfmt.c (main): Likewise. 2885 * msguniq.c (main): Likewise. 2886 * xgettext.c (main): Likewise. 2887 * recode-sr-latin.c (main): Likewise. 2888 * hostname.c (main): Likewise. 2889 * urlget.c (main): Likewise. 2890 28912007-06-08 Bruno Haible <bruno@clisp.org> 2892 2893 * msginit.c: Include localename.h. 2894 (_nl_locale_name): Remove declaration. 2895 (main): Use gl_locale_name instead of _nl_locale_name. 2896 * Makefile.am (msginit_LDADD): Remove localename object file. 2897 28982007-05-28 Bruno Haible <bruno@clisp.org> 2899 2900 * Makefile.am (WOE32_LDADD): New variable. 2901 (LDADD, msgcmp_LDADD, msgfmt_LDADD, msgmerge_LDADD, msgunfmt_LDADD, 2902 xgettext_LDADD, msgattrib_LDADD, msgcat_LDADD, msgcomm_LDADD, 2903 msgconv_LDADD, msgen_LDADD, msgexec_LDADD, msgfilter_LDADD, 2904 msggrep_LDADD, msginit_LDADD, msguniq_LDADD, recode_sr_latin_LDADD): 2905 Include it. 2906 (gettext.res): New rule. 2907 (MOSTLYCLEANFILES): Add gettext.res. 2908 29092007-05-27 Bruno Haible <bruno@clisp.org> 2910 2911 Avoid link error; u16_mbtouc_aux is no longer a public API. 2912 * x-java.c (string_buffer_append): Use u16_mbtouc instead of 2913 u16_mbtouc_aux. 2914 * x-python.c (mixed_string_buffer_append): Likewise. 2915 29162007-05-13 Bruno Haible <bruno@clisp.org> 2917 2918 * write-java.c (mkdir): Remove definition. Now done by gnulib. 2919 * write-csharp.c (mkdir): Remove definition. Now done by gnulib. 2920 29212007-05-13 Bruno Haible <bruno@clisp.org> 2922 2923 * msgl-check.c: Include stdio.h instead of vasprintf.h. 2924 * po-lex.c: Don't include vasprintf.h. 2925 29262007-03-27 Bruno Haible <bruno@clisp.org> 2927 2928 * hostname.c (usage): Ask translators to specify a translation bug 2929 report address. 2930 * msgattrib.c (usage): Likewise. 2931 * msgcat.c (usage): Likewise. 2932 * msgcmp.c (usage): Likewise. 2933 * msgcomm.c (usage): Likewise. 2934 * msgconv.c (usage): Likewise. 2935 * msgen.c (usage): Likewise. 2936 * msgexec.c (usage): Likewise. 2937 * msgfilter.c (usage): Likewise. 2938 * msgfmt.c (usage): Likewise. 2939 * msggrep.c (usage): Likewise. 2940 * msginit.c (usage): Likewise. 2941 * msgmerge.c (usage): Likewise. 2942 * msgunfmt.c (usage): Likewise. 2943 * msguniq.c (usage): Likewise. 2944 * recode-sr-latin.c (usage): Likewise. 2945 * urlget.c (usage): Likewise. 2946 * xgettext.c (usage): Likewise. 2947 29482007-03-24 Bruno Haible <bruno@clisp.org> 2949 2950 * po-lex.c: Include unistr.h instead of utf8-ucs4.h. 2951 * read-properties.c: Include unistr.h instead of utf16-ucs4.h, 2952 ucs4-utf8.h. 2953 * x-java.c: Likewise. 2954 * read-stringtable.c: Include unistr.h instead of utf8-ucs4.h, 2955 ucs4-utf8.h. 2956 * x-csharp.c: Likewise. 2957 * write-csharp.c: Include unistr.h instead of utf8-ucs4.h. 2958 * write-java.c: Likewise. 2959 * write-properties.c: Likewise. 2960 * write-qt.c: Likewise. 2961 * write-tcl.c: Likewise. 2962 * x-perl.c: Likewise. 2963 * x-python.c: Include unistr.h instead of utf8-ucs4.h, utf16-ucs4.h, 2964 ucs4-utf8.h. 2965 * x-tcl.c: Include unistr.h instead of ucs4-utf8.h. 2966 29672007-03-17 Bruno Haible <bruno@clisp.org> 2968 2969 * x-php.c (enum token_type_ty): New values token_type_lbracket, 2970 token_type_rbracket. 2971 (x_php_lex): Recognize also token_type_lbracket, token_type_rbracket. 2972 (extract_balanced): Renamed from extract_parenthesized. Add 'delim' 2973 argument. Handle token_type_lbracket and token_type_rbracket. 2974 (extract_php): Update. 2975 Reported by Robert Vock <RobertVock@gmx.de>. 2976 29772007-03-10 Bruno Haible <bruno@clisp.org> 2978 2979 * msginit.c (get_user_fullname): Reduce scope of local variables. 2980 29812007-03-04 Bruno Haible <bruno@clisp.org> 2982 2983 Moved --enable-relocatable infrastructure to gnulib. 2984 * Makefile.am: Remove SET_RELOCATABLE invocation. 2985 29862007-02-25 Bruno Haible <bruno@clisp.org> 2987 2988 * color.c: Include filename.h instead of pathname.h. 2989 (style_file_prepare): Update. 2990 * msginit.c: Include filename.h instead of pathname.h. 2991 (project_id, project_id_version): Update. 2992 * open-catalog.c: Include filename.h instead of pathname.h. 2993 (try_open_catalog_file): Update. 2994 * read-csharp.c: Include filename.h instead of pathname.h. 2995 (msgdomain_read_csharp): Update. 2996 * read-resources.c: Include filename.h instead of pathname.h. 2997 (read_resources_file): Update. 2998 * read-tcl.c: Include filename.h instead of pathname.h. 2999 (msgdomain_read_tcl): Update. 3000 * write-csharp.c: Include filename.h instead of pathname.h. 3001 (msgdomain_write_csharp): Update. 3002 * write-java.c Include filename.h instead of pathname.h. 3003 (msgdomain_write_java): Update. 3004 * write-resources.c: Include filename.h instead of pathname.h. 3005 (msgdomain_write_csharp_resources): Update. 3006 * write-tcl.c: Include filename.h instead of pathname.h. 3007 (msgdomain_write_tcl): Update. 3008 * xgettext.c: Include filename.h instead of pathname.h. 3009 (main, xgettext_open): Update. 3010 30112007-02-19 Bruno Haible <bruno@clisp.org> 3012 3013 * file-list.c: Don't include exit.h. 3014 * hostname.c: Likewise. 3015 * msgattrib.c: Likewise. 3016 * msgcat.c: Likewise. 3017 * msgcmp.c: Likewise. 3018 * msgcomm.c: Likewise. 3019 * msgconv.c: Likewise. 3020 * msgen.c: Likewise. 3021 * msgexec.c: Likewise. 3022 * msgfilter.c: Likewise. 3023 * msgfmt.c: Likewise. 3024 * msggrep.c: Likewise. 3025 * msginit.c: Likewise. 3026 * msgl-cat.c: Include <stdlib.h> instead of exit.h. 3027 * msgl-charset.c: Likewise. 3028 * msgl-check.c: Don't include exit.h. 3029 * msgmerge.c: Likewise. 3030 * msgunfmt.c: Likewise. 3031 * msguniq.c: Likewise. 3032 * po-lex.c: Likewise. 3033 * po-xerror.c: Likewise. 3034 * read-csharp.c: Likewise. 3035 * read-java.c: Likewise. 3036 * read-mo.c: Likewise. 3037 * read-resources.c: Likewise. 3038 * read-tcl.c: Likewise. 3039 * recode-sr-latin.c: Likewise. 3040 * urlget.c: Likewise. 3041 * write-mo.c: Likewise. 3042 * write-qt.c: Likewise. 3043 * write-resources.c: Likewise. 3044 * write-tcl.c: Include <stdlib.h> instead of exit.h. 3045 * x-awk.c: Don't include exit.h. 3046 * x-c.c: Likewise. 3047 * x-csharp.c: Likewise. 3048 * x-elisp.c: Likewise. 3049 * x-glade.c: Likewise. 3050 * x-java.c: Likewise. 3051 * x-librep.c: Likewise. 3052 * x-lisp.c: Likewise. 3053 * x-perl.c: Likewise. 3054 * x-php.c: Likewise. 3055 * x-python.c: Likewise. 3056 * x-rst.c: Include <stdlib.h> instead of exit.h. 3057 * x-scheme.c: Don't include exit.h. 3058 * x-sh.c: Likewise. 3059 * x-smalltalk.c: Likewise. 3060 * x-tcl.c: Likewise. 3061 * x-ycp.c: Likewise. 3062 * xgettext.c: Likewise. 3063 30642007-01-28 Bruno Haible <bruno@clisp.org> 3065 3066 * x-java.c (string_buffer_append_lone_surrogate): New function. 3067 (string_buffer_flush_utf16_surr, string_buffer_append): Use it. 3068 30692007-01-28 Bruno Haible <bruno@clisp.org> 3070 3071 * x-java.c (string_buffer_flush_utf16_surr): Give a warning when 3072 converting a surrogate code point to U+FFFD. 3073 (string_buffer_append): Convert a lone high surrogate code point to 3074 U+FFFD, and give a warning. 3075 30762007-01-26 Bruno Haible <bruno@clisp.org> 3077 3078 * msgfilter.c: Include <sys/time.h> unconditionally. 3079 30802007-01-26 Bruno Haible <bruno@clisp.org> 3081 3082 * msginit.c: Don't include strpbrk.h, use <string.h> instead. 3083 30842007-01-26 Bruno Haible <bruno@clisp.org> 3085 3086 * msgmerge.c: Don't include stpncpy.h, use <string.h> instead. 3087 30882007-01-26 Bruno Haible <bruno@clisp.org> 3089 3090 * msgfmt.c: Don't include stpcpy.h, use <string.h> instead. 3091 * msgmerge.c: Likewise. 3092 30932007-01-21 Bruno Haible <bruno@clisp.org> 3094 3095 * msgl-iconv.c (convert_string, convert_msgstr, iconvable_string, 3096 iconvable_msgstr): Update for changed calling convention of 3097 xmem_cd_iconv. 3098 * recode-sr-latin.c (process): Likewise. 3099 31002007-01-07 Bruno Haible <bruno@clisp.org> 3101 3102 * msgmerge.c (message_merge): Copy the obsolete bit from the ref 3103 message. 3104 Reported by Leonardo Fontenelle <leo.fontenelle@gmail.com>. 3105 31062006-12-24 Bruno Haible <bruno@clisp.org> 3107 3108 * Makefile.am (AM_CXXFLAGS): New variable. 3109 31102006-12-23 Bruno Haible <bruno@clisp.org> 3111 3112 * color.c (print_color_test): Print labels before the hue/saturation 3113 rectangle. Show also a few lines that mix colors and attributes. 3114 31152006-12-03 Bruno Haible <bruno@clisp.org> 3116 3117 * msgcat.c: Include color.h. 3118 (long_options): Add --color, --style options. 3119 (main): Handle them. Invoke print_color_test when --color=test was 3120 given. 3121 (usage): Document --color, --style options. 3122 31232006-12-01 Bruno Haible <bruno@clisp.org> 3124 3125 Add styling support to the PO output routines. 3126 * color.h: New file. 3127 * color.c: New file. 3128 * write-catalog.h (struct catalog_output_format): Add field 3129 'supports_color'. 3130 * write-catalog.c: Include fcntl.h, unistd.h, styled-ostream.h, 3131 term-styled-ostream.h, html-styled-ostream.h, fd-ostream.h, color.h, 3132 po-charset.h, msgl-iconv.h. 3133 (STDOUT_FILENO): New macro. 3134 (ENABLE_COLOR): New macro. 3135 (msgdomain_list_print): Use a styled_ostream_t that uses the 3136 style_file_name. 3137 * write-po.c: Include format.h, styled-ostream.h. 3138 (is_stylable, begin_css_class, end_css_class): New functions or macros. 3139 (class_header, class_translated, class_untranslated, class_fuzzy, 3140 class_obsolete, class_comment, class_translator_comment, 3141 class_extracted_comment, class_reference_comment, class_reference, 3142 class_flag_comment, class_flag, class_fuzzy_flag, 3143 class_previous_comment, class_previous, class_msgid, class_msgstr, 3144 class_keyword, class_string, class_text, class_escape_sequence, 3145 class_format_directive, class_invalid_format_directive): New variables. 3146 (ATTR_ESCAPE_SEQUENCE, ATTR_FORMAT_DIRECTIVE, 3147 ATTR_INVALID_FORMAT_DIRECTIVE): New enum items. 3148 (message_print_comment, message_print_comment_dot, 3149 message_print_comment_filepos, message_print_comment_flags): Call 3150 begin/end_css_class. 3151 (memset_small): New function. 3152 (wrap): Add css_class argument. Determine the extent of format 3153 string directives. Call begin/end_css_class. 3154 (print_blank_line): Call begin/end_css_class. 3155 (message_print, message_print_obsolete): Likewise. Pass a css_class 3156 argument to 'wrap'. 3157 (msgdomain_list_print_po): Call begin/end_css_class. 3158 (output_format_po): Update. 3159 * write-properties.c (output_format_properties): Update. 3160 * write-stringtable.c (output_format_stringtable): Update. 3161 * Makefile.am (noinst_HEADERS): Add color.h. 3162 (libgettextsrc_la_SOURCES): Add color.c. 3163 31642006-11-26 Bruno Haible <bruno@clisp.org> 3165 3166 * write-po.c (make_format_description_string, 3167 make_c_width_description_string): Strip off the leading space. 3168 (message_print_comment_flags): Print the space here. 3169 * write-stringtable.c (write_message): Print the space here. 3170 31712006-11-26 Bruno Haible <bruno@clisp.org> 3172 3173 * write-po.c: Include write-catalog.h instead of write-properties.h, 3174 write-stringtable.h. 3175 31762006-11-26 Bruno Haible <bruno@clisp.org> 3177 3178 * format.h (FMTDIR_START, FMTDIR_END, FMTDIR_ERROR): New enum values. 3179 (FDI_SET): New macro. 3180 (struct formatstring_parser): Add fdi argument to 'parse' method. 3181 * format.c (check_msgid_msgstr_format): Update. 3182 * format-awk.c (format_parse): Add fdi argument. Invoke FDI_SET. 3183 * format-boost.c (format_parse): Likewise. 3184 * format-c.c (format_parse): Add fdi argument. Invoke FDI_SET. 3185 (format_c_parse, format_objc_parse): Add fdi argument. 3186 (get_sysdep_c_format_directives): Update. 3187 * format-csharp.c (format_parse): Add fdi argument. Invoke FDI_SET. 3188 * format-elisp.c (format_parse): Likewise. 3189 * format-gcc-internal.c (format_parse): Likewise. 3190 * format-java.c (message_format_parse): Add fdi argument. Invoke 3191 FDI_SET. 3192 (choice_format_parse): Update. 3193 (format_parse): Add fdi argument. 3194 * format-librep.c (format_parse): Add fdi argument. Invoke FDI_SET. 3195 * format-lisp.c (parse_upto): Add fdi argument. Invoke FDI_SET. 3196 (format_parse): Add fdi argument. 3197 * format-pascal.c (format_parse): Add fdi argument. Invoke FDI_SET. 3198 * format-perl.c (format_parse): Likewise. 3199 * format-perl-brace.c (format_parse): Likewise. 3200 * format-php.c (format_parse): Likewise. 3201 * format-python.c (format_parse): Add fdi argument. Invoke FDI_SET. 3202 (get_python_format_unnamed_arg_count): Update. 3203 * format-qt.c (format_parse): Add fdi argument. Invoke FDI_SET. 3204 * format-scheme.c (parse_upto): Add fdi argument. Invoke FDI_SET. 3205 (format_parse): Add fdi argument. 3206 * format-sh.c (format_parse): Add fdi argument. Invoke FDI_SET. 3207 * format-tcl.c (format_parse): Likewise. 3208 * format-ycp.c (format_parse): Likewise. 3209 * msgmerge.c (msgfmt_check_pair_fails): Update. 3210 * read-mo.c (read_mo_file): Update. 3211 * xgettext.c (set_format_flags_from_context, remember_a_message, 3212 remember_a_message_plural): Update. 3213 32142006-11-25 Bruno Haible <bruno@clisp.org> 3215 3216 * message.h (message_list_copy, msgdomain_list_copy): New declarations. 3217 * message.c (message_list_copy, msgdomain_list_copy): New functions. 3218 32192006-11-25 Bruno Haible <bruno@clisp.org> 3220 3221 * msgl-iconv.h (iconv_msgdomain_list): Add update_header argument. 3222 * msgl-iconv.c (iconv_message_list_internal): Renamed from 3223 iconv_msgdomain_list. Add update_header argument. 3224 (iconv_message_list): New function. 3225 (iconv_msgdomain_list): Add update_header argument. 3226 * msgcmp.c (compare): Update iconv_msgdomain_list call. 3227 * msgconv.c (main): Likewise. 3228 * msgfilter.c (main): Likewise. 3229 * msgmerge.c (merge): Likewise. 3230 * xgettext.c (main): Likewise. 3231 32322006-11-23 Bruno Haible <bruno@clisp.org> 3233 3234 * write-catalog.h: Include ostream.h. Don't include <stdio.h>. 3235 (struct catalog_output_format): Use ostream_t instead of 'FILE *'. 3236 * write-catalog.c: Include ostream.h, file-ostream.h. 3237 (msgdomain_list_print): Open a temporary file_ostream_t. 3238 * write-po.h: Include ostream.h. Don't include <stdio.h>. 3239 (message_print_comment, message_print_comment_dot, 3240 message_print_comment_filepos, message_print_comment_flags): Replace 3241 'FILE *' argument with an 'ostream_t' argument. 3242 * write-po.c: Include ostream.h. 3243 (message_print_comment, message_print_comment_dot, 3244 message_print_comment_filepos, message_print_comment_flags, wrap, 3245 print_blank_line, message_print, message_print_obsolete, 3246 msgdomain_list_print_po): Replace 'FILE *' argument with an 'ostream_t' 3247 argument. 3248 * write-properties.c: Include ostream.h. 3249 (write_escaped_string, write_message, write_properties, 3250 msgdomain_list_print_properties): Replace 'FILE *' argument with an 3251 'ostream_t' argument. 3252 * write-stringtable.c: Include ostream.h, xvasprintf.h. Don't include 3253 <stdio.h>. 3254 (write_escaped_string, write_message, write_stringtable, 3255 msgdomain_list_print_stringtable): Replace 'FILE *' argument with an 3256 'ostream_t' argument. 3257 32582006-11-12 Bruno Haible <bruno@clisp.org> 3259 3260 * write-po.c (wrap): Indent by use of spaces, not tabs. 3261 32622006-11-03 Bruno Haible <bruno@clisp.org> 3263 3264 Simplify xmalloc expressions. Add overflow check in xmalloc arguments. 3265 * filter-sr-latin.c (serbian_to_latin): Use XNMALLOC instead of xmalloc. 3266 * format-awk.c (format_parse): Use XMALLOC instead of xmalloc. 3267 * format-boost.c (format_parse): Likewise. 3268 * format-c.c (format_parse): Use XMALLOC, XNMALLOC instead of xmalloc. 3269 (get_sysdep_c_format_directives): Use XNMALLOC instead of xmalloc. 3270 * format-csharp.c (format_parse): Use XMALLOC instead of xmalloc. 3271 * format-elisp.c (format_parse): Likewise. 3272 * format-gcc-internal.c (format_parse): Likewise. 3273 * format-java.c (format_parse): Likewise. 3274 * format-librep.c (format_parse): Likewise. 3275 * format-lisp.c (copy_list): Use XMALLOC, XNMALLOC instead of xmalloc. 3276 (make_unconstrained_list): Likewise. 3277 (make_empty_list): Use XMALLOC instead of xmalloc. 3278 (rotate_loop): Use XNMALLOC instead of xmalloc. 3279 (make_intersected_list): Use XMALLOC instead of xmalloc. 3280 (make_union_list): Use XMALLOC, XNMALLOC instead of xmalloc. 3281 (make_repeated_list_of_lists): Likewise. 3282 (make_repeated_list): Likewise. 3283 (format_parse): Use XMALLOC instead of xmalloc. 3284 * format-pascal.c (format_parse): Likewise. 3285 * format-perl.c (format_parse): Likewise. 3286 * format-perl-brace.c (format_parse): Use XMALLOC, XNMALLOC instead of 3287 xmalloc. 3288 * format-php.c (format_parse): Use XMALLOC instead of xmalloc. 3289 * format-python.c (format_parse): Use XMALLOC, XNMALLOC instead of 3290 xmalloc. 3291 * format-qt.c (format_parse): Use XMALLOC instead of xmalloc. 3292 * format-scheme.c (copy_list): Use XMALLOC, XNMALLOC instead of xmalloc. 3293 (make_unconstrained_list): Likewise. 3294 (make_empty_list): Use XMALLOC instead of xmalloc. 3295 (rotate_loop): Use XNMALLOC instead of xmalloc. 3296 (make_intersected_list): Use XMALLOC instead of xmalloc. 3297 (make_union_list): Use XMALLOC, XNMALLOC instead of xmalloc. 3298 (make_repeated_list_of_lists): Likewise. 3299 (make_repeated_list): Likewise. 3300 (format_parse): Use XMALLOC instead of xmalloc. 3301 * format-sh.c (format_parse): Use XMALLOC, XNMALLOC instead of xmalloc. 3302 * format-tcl.c (format_parse): Use XMALLOC instead of xmalloc. 3303 * format-ycp.c (format_parse): Likewise. 3304 * message.c (message_alloc, message_list_list_alloc, msgdomain_alloc): 3305 Use XMALLOC instead of xmalloc. 3306 (msgdomain_list_alloc): Use XMALLOC, XNMALLOC instead of xmalloc. 3307 * msgexec.c (main): Use XNMALLOC instead of xmalloc. 3308 * msgfilter.c (main, generic_filter, process_message): Likewise. 3309 * msgfmt.c (add_mo_suffix): Likewise. 3310 (new_domain): Use XMALLOC instead of xmalloc. 3311 * msginit.c (catalogname_for_locale, language_of_locale, 3312 get_user_fullname, get_field, put_field, subst_string, 3313 update_msgstr_plurals): Use XNMALLOC instead of xmalloc. 3314 * msgl-cat.c (catenate_msgdomain_list): Likewise. 3315 * msgl-check.c (check_plural_eval): Use XCALLOC instead of xcalloc. 3316 * msgl-english.c (msgdomain_list_english): Use XNMALLOC instead of 3317 xmalloc. 3318 * msgl-fsearch.c (new_index): Likewise. 3319 (message_fuzzy_index_alloc): Use XMALLOC instead of xmalloc. 3320 (mult_index_list_accumulate): Use XNMALLOC instead of xmalloc. 3321 * msgl-iconv.c (iconv_message_list): Likewise. 3322 * msgmerge.c (message_merge, match_domain): Likewise. 3323 * po-gram-gen.y (plural_form_list): Likewise. 3324 * read-catalog-abstract.c (po_parse_comment_filepos, 3325 po_parse_comment_solaris_filepos): Likewise. 3326 * read-mo.c (get_sysdep_string): Likewise. 3327 * read-properties.c (conv_from_iso_8859_1, read_escaped_string): 3328 Likewise. 3329 * read-stringtable.c (conv_from_ucs4): Likewise. 3330 * str-list.c (string_list_alloc): Use XMALLOC instead of xmalloc. 3331 (string_list_concat, string_list_join): Use XNMALLOC instead of xmalloc. 3332 * write-csharp.c (construct_class_name, msgdomain_write_csharp): 3333 Likewise. 3334 * write-java.c (compute_hashsize, compute_table_items): Likewise. 3335 * write-mo.c: Include xsize.h. 3336 (write_table): Use XNMALLOC instead of xmalloc. Use xsum, xtimes in 3337 xmalloc argument. 3338 * write-po.c (wrap): Use XNMALLOC instead of xmalloc. 3339 * write-properties.c (conv_to_java): Likewise. 3340 * write-qt.c (conv_to_iso_8859_1, conv_to_utf16): Likewise. 3341 * x-elisp.c (init_token, string_of_object): Likewise. 3342 (read_object): Use XMALLOC instead of xmalloc. 3343 * x-librep.c (init_token, string_of_object): Use XNMALLOC instead of 3344 xmalloc. 3345 (read_object): Use XMALLOC instead of xmalloc. 3346 * x-lisp.c (x_lisp_keyword, init_token, string_of_object): Use XNMALLOC 3347 instead of xmalloc. 3348 (read_object): Use XMALLOC instead of xmalloc. 3349 * x-perl.c (get_here_document, extract_quotelike_pass1, 3350 extract_quotelike_pass3): Use XNMALLOC instead of xmalloc. 3351 (x_perl_lex): Use XMALLOC instead of xmalloc. 3352 * x-po.c (strextract_add_message, extract): Use XNMALLOC instead of 3353 xmalloc. 3354 * x-python.c (try_to_extract_coding): Use XNMALLOC instead of xmalloc. 3355 * x-scheme.c (init_token, string_of_object): Use XNMALLOC 3356 instead of xmalloc. 3357 (read_object): Use XMALLOC instead of xmalloc. 3358 * x-sh.c (init_token, string_of_token, string_of_word): Use XNMALLOC 3359 instead of xmalloc. 3360 (read_word): Use XMALLOC instead of xmalloc. 3361 * x-smalltalk.c (phase2_get): Use XNMALLOC instead of xmalloc. 3362 * x-tcl.c (init_token, string_of_word): Use XNMALLOC instead of xmalloc. 3363 (read_word): Use XMALLOC instead of xmalloc. 3364 * xgettext.c: Include xsize.h. 3365 (split_keywordspec): Use XNMALLOC instead of xmalloc. 3366 (insert_keyword_callshape): Use XMALLOC instead of xmalloc. Use xsum, 3367 xtimes to avoid overflow. 3368 (flag_context_list_table_insert): Use XMALLOC instead of xmalloc. 3369 (savable_comment_add): Likewise. 3370 (remember_a_message_plural): Use XNMALLOC instead of xmalloc. 3371 (arglist_parser_alloc, arglist_parser_clone): Use xsum, xtimes. 3372 (arglist_parser_done): Use XNMALLOC instead of xmalloc. 3373 (finalize_header): Likewise. 3374 33752006-10-30 Bruno Haible <bruno@clisp.org> 3376 3377 * plural-eval.h [C++]: Define functions without name mangling. 3378 33792006-10-29 Bruno Haible <bruno@clisp.org> 3380 3381 Clean up libgettextpo exports in C++ mode. 3382 * po-gram.h: Wrap declarations in extern "C". 3383 33842006-10-29 Bruno Haible <bruno@clisp.org> 3385 3386 Make it compile in C++ mode. 3387 * dir-list.c (dir_list_restore): Add cast. 3388 * format-c.c (format_arg_type_t): New type. Use it instead of 3389 'enum format_arg_type'. 3390 * format-gcc-internal.c (format_arg_type_t): New type. Use it instead of 3391 'enum format_arg_type'. 3392 * format-perl.c (format_arg_type_t): New type. Use it instead of 3393 'enum format_arg_type'. 3394 * format-lisp.c (struct segment): Move out of the scope of struct 3395 format_arg_list. 3396 * format-scheme.c (struct segment): Likewise. 3397 * message.h (struct altstr): Move out of the scope of struct message_ty. 3398 * msgl-equal.c (msgstr_equal_ignoring_potcdate): Cast memchr results. 3399 * po-lex.c (mb_copy): Rename arguments to new_mbc, old_mbc. 3400 * read-mo.c (enum mo_endianness): Move out of the scope of struct 3401 binary_mo_file. 3402 * read-po.c (this): New macro. 3403 * read-properties.c (this): New macro. 3404 * write-mo.c (write_table): Cast alloca result. 3405 * x-glade.c (load_libexpat): Cast dlsym results. 3406 * x-perl.c (get_here_document): Use xmalloc instead of 3407 xrealloc (NULL...). Cast its result. 3408 * x-po.c (extract_add_message): Limit the scope of variable 3409 'charsetstr'. 3410 * x-smalltalk.c (phase2_get): Cast xmalloc results. 3411 34122006-10-29 Bruno Haible <bruno@clisp.org> 3413 3414 * x-awk.h: Make includable without prerequisites. 3415 * x-c.h: Likewise. 3416 * x-csharp.h: Likewise. 3417 * x-elisp.h: Likewise. 3418 * x-glade.h: Likewise. 3419 * x-java.h: Likewise. 3420 * x-librep.h: Likewise. 3421 * x-lisp.h: Likewise. 3422 * x-perl.h: Likewise. 3423 * x-php.h: Likewise. 3424 * x-po.h: Likewise. 3425 * x-properties.h: Likewise. 3426 * x-python.h: Likewise. 3427 * x-rst.h: Likewise. 3428 * x-scheme.h: Likewise. 3429 * x-sh.h: Likewise. 3430 * x-smalltalk.h: Likewise. 3431 * x-stringtable.h: Likewise. 3432 * x-tcl.h: Likewise. 3433 * x-ycp.h: Likewise. 3434 * x-awk.c: Include x-awk.h. 3435 * x-c.c: Include x-c.h. 3436 * x-csharp.c: Include x-csharp.h. 3437 * x-elisp.c: Include x-elisp.h. 3438 * x-glade.c: Include x-glade.h. 3439 * x-java.c: Include x-java.h. 3440 * x-librep.c: Include x-librep.h. 3441 * x-lisp.c: Include x-lisp.h. 3442 * x-perl.c: Include x-perl.h. 3443 * x-php.c: Include x-php.h. 3444 * x-po.c: Include x-po.h, x-properties.h, x-stringtable.h. 3445 * x-python.c: Include x-python.h. 3446 * x-rst.c: Include x-rst.h. 3447 * x-scheme.c: Include x-scheme.h. 3448 * x-sh.c: Include x-sh.h. 3449 * x-smalltalk.c: Include x-smalltalk.h. 3450 * x-tcl.c: Include x-tcl.h. 3451 * x-ycp.c: Include x-ycp.h. 3452 * xgettext.c: Remove extern "C" around x-*.h includes. 3453 34542006-10-29 Bruno Haible <bruno@clisp.org> 3455 3456 * format-awk.c (format_parse): Fix bug with unnumbered argument in 3457 precision field. 3458 34592006-11-27 Bruno Haible <bruno@clisp.org> 3460 3461 * gettext-0.16.1 released. 3462 34632006-10-26 Bruno Haible <bruno@clisp.org> 3464 3465 * gettext-0.16 released. 3466 34672006-10-24 Bruno Haible <bruno@clisp.org> 3468 3469 * Makefile.am (AM_CPPFLAGS): Add also $(top_srcdir). Needed so that 3470 woe32dll/export.h is found while compiling gettextsrc-exports.c in a 3471 VPATH build. 3472 Reported by Charles Wilson <cygwin@cwilson.fastmail.fm>. 3473 34742006-10-24 Bruno Haible <bruno@clisp.org> 3475 3476 * msgmerge.c (struct definitions_ty): Remove semicolon after 3477 gl_lock_define invocation. 3478 34792006-10-21 Bruno Haible <bruno@clisp.org> 3480 3481 * po-error.h (po_error, po_error_at_line): Use format attribute only 3482 with gcc >= 3.1. 3483 34842006-10-21 Bruno Haible <bruno@clisp.org> 3485 3486 * msgmerge.c (struct definitions_ty): Use gl_lock_define to declare 3487 the findex_init_lock field. 3488 (definitions_init): Use gl_lock_init to initialize it, instead of 3489 memcpy hack. 3490 34912006-10-16 Bruno Haible <bruno@clisp.org> 3492 3493 Work around automake-1.10 problem described in 3494 http://lists.gnu.org/archive/html/bug-automake/2006-08/msg00025.html. 3495 * Makefile.am (CXXLINK): Remove variable. 3496 (msgmerge_CXXFLAGS): New variable. 3497 (libgettextsrc_la_LINK, msgattrib_LINK, msgcat_LINK, msgcomm_LINK, 3498 msgconv_LINK, msgen_LINK, msgfilter_LINK, msggrep_LINK, msgmerge_LINK, 3499 msguniq_LINK, xgettext_LINK): New variables. 3500 35012006-10-18 Bruno Haible <bruno@clisp.org> 3502 3503 * read-po.h (input_format_po): Mark as DLL_VARIABLE. 3504 * read-properties.h (input_format_properties): Likewise. 3505 * read-stringtable.h (input_format_stringtable): Likewise. 3506 * write-po.h (output_format_po): Likewise. 3507 * write-properties.h (output_format_properties): Likewise. 3508 * write-stringtable.h (output_format_stringtable): Likewise. 3509 35102006-10-16 Bruno Haible <bruno@clisp.org> 3511 3512 * gettext-po.h.in: Move to ../libgettextpo/. 3513 * gettext-po.c: Move to ../libgettextpo/. 3514 * Makefile.am (lib_LTLIBRARIES): Remove libgettextpo.la. 3515 (nodist_include_HEADERS): Remove variable. 3516 (libgettextpo_la_SOURCES, LTV_CURRENT, LTV_REVISION, LTV_AGE, 3517 libgettextpo_la_LDFLAGS, libgettextpo_la_DEPENDENCIES, 3518 libgettextpo_la_LDFLAGS): Remove variables. 3519 (EXTRA_DIST, BUILT_SOURCES, CLEANFILES): Remove gettext-po.h support. 3520 (gettext-po.h): Remove rule. 3521 35222006-10-18 Bruno Haible <bruno@clisp.org> 3523 3524 * po-error.h (__attribute__, __format__, __printf__): New macros. 3525 (po_error, po_error_at_line): Declare format string argument. 3526 * po-lex.h (__attribute__, __format__, __printf__): New macros. 3527 (po_gram_error, po_gram_error_at_line): Declare format string argument. 3528 3529 * msgl-cat.c (catenate_msgdomain_list): Avoid "gcc -Wshadow" warning. 3530 * msgl-check.c (formatstring_error_logger): Avoid "gcc 3531 -Wmissing-format-attribute" warning. 3532 (check_pair): Avoid "gcc -Wshadow" warning. 3533 3534 * read-stringtable.c (stringtable_parse): Pass a mutable string as 3535 msgstr to po_callback_message. 3536 * write-po.c (msgdomain_list_print_po): Avoid "gcc -Wwrite-strings" 3537 warning. 3538 * xgettext.c (remember_a_message_plural): Free a temporary string 3539 after use. 3540 35412006-10-17 Bruno Haible <bruno@clisp.org> 3542 3543 * lang-table.c (language_table): Add the most important languages that 3544 have an ISO 639-2 code. 3545 * msginit.c (catalogname_for_locale): Likewise. 3546 35472006-10-15 Bruno Haible <bruno@clisp.org> 3548 3549 * read-catalog-abstract.h (input_syntax_ty): Remove type. 3550 (catalog_input_format): New structure type. 3551 (catalog_input_format_ty): New type. 3552 (catalog_reader_parse): Change type of input_syntax argument. 3553 * read-catalog.h (input_syntax): Remove variable. 3554 (read_catalog_stream, read_catalog_file): Add input_syntax argument. 3555 * msgl-cat.h: Include read-catalog-abstract.h. 3556 (catenate_msgdomain_list): Add input_syntax argument. 3557 * read-po.h: New file. 3558 * read-po.c: New file, extracted from read-catalog-abstract.c. 3559 * msgattrib.c: Include read-po.h, read-properties.h, read-stringtable.h. 3560 (main): Change handling of --properties-input, --stringtable-input 3561 options. Update read_catalog_file calls. 3562 * msgcat.c: Include read-po.h, read-properties.h, read-stringtable.h. 3563 (main): Change handling of --properties-input, --stringtable-input 3564 options. Update catenate_msgdomain_list call. 3565 * msgcmp.c: Include read-po.h, read-properties.h, read-stringtable.h. 3566 (main): Change handling of --properties-input, --stringtable-input 3567 options. Update compare call. 3568 (compare): Add input_syntax argument. 3569 * msgcomm.c: Include read-po.h, read-properties.h, read-stringtable.h. 3570 (main): Change handling of --properties-input, --stringtable-input 3571 options. Update catenate_msgdomain_list call. 3572 * msgconv.c: Include read-po.h, read-properties.h, read-stringtable.h. 3573 (main): Change handling of --properties-input, --stringtable-input 3574 options. Update read_catalog_file call. 3575 * msgen.c: Include read-po.h, read-properties.h, read-stringtable.h. 3576 (main): Change handling of --properties-input, --stringtable-input 3577 options. Update read_catalog_file call. 3578 * msgexec.c: Include read-po.h, read-properties.h, read-stringtable.h. 3579 (main): Change handling of --properties-input, --stringtable-input 3580 options. Update read_catalog_file call. 3581 * msgfilter.c: Include read-po.h, read-properties.h, read-stringtable.h. 3582 (main): Change handling of --properties-input, --stringtable-input 3583 options. Update read_catalog_file call. 3584 * msgfmt.c: Include read-po.h, read-properties.h, read-stringtable.h. 3585 (main): Change handling of --properties-input, --stringtable-input 3586 options. Update read_catalog_file_msgfmt call. 3587 (read_catalog_file_msgfmt): Add input_syntax argument. 3588 * msggrep.c: Include read-po.h, read-properties.h, read-stringtable.h. 3589 (main): Change handling of --properties-input, --stringtable-input 3590 options. Update read_catalog_file call. 3591 * msginit.c: Include read-po.h, read-properties.h, read-stringtable.h. 3592 (main): Change handling of --properties-input, --stringtable-input 3593 options. Update read_catalog_file call. 3594 * msgl-cat.c (catenate_msgdomain_list): Add input_syntax argument. 3595 * msgmerge.c: Include read-po.h, read-properties.h, read-stringtable.h. 3596 (main): Change handling of --properties-input, --stringtable-input 3597 options. Update merge call. 3598 (compendium): Read it in PO syntax. 3599 (merge): Add input_syntax argument. 3600 * msguniq.c: Include read-po.h, read-properties.h, read-stringtable.h. 3601 (main): Change handling of --properties-input, --stringtable-input 3602 options. Update catenate_msgdomain_list call. 3603 * read-catalog-abstract.c: Don't include po-gram.h, read-properties.h, 3604 read-stringtable.h. 3605 (catalog_reader_parse): Change type of input_syntax argument. Invoke 3606 the parser indirectly. 3607 * read-catalog.c (input_syntax): Remove variable. 3608 (read_catalog_stream, read_catalog_file): Add input_syntax argument. 3609 * read-csharp.c: Include read-po.h. 3610 (execute_and_read_po_output): Update read_catalog_stream call. 3611 * read-java.c: Include read-po.h. 3612 (execute_and_read_po_output): Update read_catalog_stream call. 3613 * read-properties.c (properties_parse): Make static. 3614 (input_format_properties): New variable. 3615 * read-properties.h (properties_parse): Remove declaration. 3616 (input_format_properties): New declaration. 3617 * read-resources.c: Include read-po.h. 3618 (execute_and_read_po_output): Update read_catalog_stream call. 3619 * read-stringtable.c (stringtable_parse): Make static. 3620 (input_format_stringtable): New variable. 3621 * read-stringtable.h (stringtable_parse): Remove declaration. 3622 (input_format_stringtable): New declaration. 3623 * read-tcl.c: Include read-po.h. 3624 (msgdomain_read_tcl): Update read_catalog_stream call. 3625 * x-po.c: Include read-po.h, read-properties.h, read-stringtable.h. 3626 (extract): Change type of input_syntax argument. 3627 (extract_po, extract_properties, extract_stringtable): Update. 3628 * xgettext.c: Include read-po.h. 3629 (read_exclusion_file): Read it in PO syntax. 3630 * gettext-po.c: Include read-po.h. 3631 (po_file_read_v3, po_file_read_v2, po_file_read): Update 3632 read_catalog_stream call. 3633 * Makefile.am (noinst_HEADERS): Add read-po.h. 3634 (COMMON_SOURCE): Add read-po.c. 3635 36362006-10-15 Bruno Haible <bruno@clisp.org> 3637 3638 * read-catalog-abstract.h (abstract_catalog_reader_ty): Renamed from 3639 abstract_po_reader_ty. 3640 (abstract_catalog_reader_class_ty): Renamed from 3641 abstract_po_reader_class_ty. Update. 3642 (ABSTRACT_CATALOG_READER_TY): Renamed from ABSTRACT_PO_READER_TY. 3643 Update. 3644 (abstract_catalog_reader_ty): Renamed from abstract_po_reader_ty. 3645 Update. 3646 (catalog_reader_alloc): Renamed from po_reader_alloc. 3647 (catalog_reader_parse): Renamed from po_scan. 3648 (catalog_reader_free): Renamed from po_reader_free. 3649 * read-catalog.h: Update. 3650 (default_catalog_reader_class_ty): Renamed from 3651 default_po_reader_class_ty. 3652 (DEFAULT_CATALOG_READER_TY): Renamed from DEFAULT_PO_READER_TY. Update. 3653 (default_catalog_reader_ty): Renamed from default_po_reader_ty. Update. 3654 (default_constructor, default_destructor, default_parse_brief, 3655 default_parse_debrief, default_directive_domain, 3656 default_directive_message, default_comment, default_comment_dot, 3657 default_comment_filepos, default_comment_special, default_set_domain, 3658 default_add_message): Update. 3659 (default_catalog_reader_alloc): Renamed from default_po_reader_alloc. 3660 Update. 3661 (read_catalog_stream): Renamed from read_po. 3662 (read_catalog_file): Renamed from read_po_file. 3663 * open-catalog.h (open_catalog_file): Renamed from open_po_file. 3664 * msgattrib.c: Update. 3665 (main): Update. 3666 * msgcat.c: Update. 3667 * msgcmp.c: Update. 3668 (compare): Update. 3669 * msgcomm.c: Update. 3670 * msgconv.c: Update. 3671 (main): Update. 3672 * msgen.c: Update. 3673 (main): Update. 3674 * msgexec.c: Update. 3675 (main): Update. 3676 * msgfilter.c: Update. 3677 (main): Update. 3678 * msgfmt.c: Update. 3679 (read_catalog_file_msgfmt): Renamed from read_po_file_msgfmt. Update. 3680 (main): Update. 3681 (msgfmt_catalog_reader_ty): Renamed from msgfmt_po_reader_ty. Update. 3682 (msgfmt_constructor, msgfmt_parse_debrief, msgfmt_set_domain, 3683 msgfmt_add_message, msgfmt_frob_new_message, msgfmt_comment_special, 3684 msgfmt_methods): Update. 3685 (read_catalog_file_msgfmt): Renamed from read_po_file_msgfmt. Update. 3686 * msggrep.c: Update. 3687 (main): Update. 3688 * msginit.c: Update. 3689 (main): Update. 3690 * msgl-cat.c: Update. 3691 (catenate_msgdomain_list): Update. 3692 * msgmerge.c: Update. 3693 (compendium, merge): Update. 3694 * msguniq.c: Update. 3695 * open-catalog.c: Update. 3696 (try_open_catalog_file): Renamed from try_open_po_file. 3697 (open_catalog_file): Renamed from open_po_file. Update. 3698 * po-gram-gen.y: Update. 3699 * read-catalog-abstract.c: Update. 3700 (callback_arg): Update. 3701 (catalog_reader_alloc): Renamed from po_reader_alloc. 3702 (catalog_reader_free): Renamed from po_reader_free. 3703 (call_parse_brief, call_parse_debrief, call_directive_domain, 3704 call_directive_message, call_comment, call_comment_dot, 3705 call_comment_filepos, call_comment_special): Update. 3706 (parse_start): Renamed from po_scan_start. 3707 (parse_end): Renamed from po_scan_end. 3708 (catalog_reader_parse): Renamed from po_scan. 3709 * read-catalog.c: Update. 3710 (call_set_domain, call_add_message, call_frob_new_message): Update. 3711 (default_constructor, default_destructor, default_parse_brief, 3712 default_parse_debrief, default_copy_comment_state, 3713 default_reset_comment_state, default_directive_domain, 3714 default_directive_message, default_comment, default_comment_dot, 3715 default_comment_filepos, default_comment_special, default_set_domain, 3716 default_add_message, default_methods): Update. 3717 (default_catalog_reader_alloc): Renamed from default_po_reader_alloc. 3718 (read_catalog_stream): Renamed from read_po. Update. 3719 (read_catalog_file): Renamed from read_po_file. Update. 3720 * read-csharp.c: Update. 3721 (execute_and_read_po_output): Update. 3722 * read-java.c: Update. 3723 (execute_and_read_po_output): Update. 3724 * read-properties.c: Update. 3725 (properties_parse): Update. 3726 * read-properties.h: Update. 3727 (properties_parse): Update. 3728 * read-resources.c: Update. 3729 (execute_and_read_po_output): Update. 3730 * read-stringtable.c: Update. 3731 (stringtable_parse): Update. 3732 * read-stringtable.h: Update. 3733 (stringtable_parse): Update. 3734 * read-tcl.c: Update. 3735 (msgdomain_read_tcl): Update. 3736 * x-po.c: Update. 3737 (extract_add_message, extract_methods, extract): Update. 3738 * xgettext.c: Update. 3739 (exclude_directive_domain, exclude_directive_message, exclude_methods, 3740 read_exclusion_file): Update. 3741 * xgettext.h: Update. 3742 * gettext-po.c: Update. 3743 (po_file_read_v3, po_file_read_v2, po_file_read): Update. 3744 3745 * read-catalog-abstract.h: Renamed from read-po-abstract.h. 3746 * read-catalog-abstract.c: Renamed from read-po-abstract.c. 3747 * read-catalog.h: Renamed from read-po.h. 3748 * read-catalog.c: Renamed from read-po.c. 3749 * open-catalog.h: Renamed from open-po.h. 3750 * open-catalog.c: Renamed from open-po.c. 3751 * Makefile.am (noinst_HEADERS, COMMON_SOURCE, libgettextsrc_la_SOURCES): 3752 Update. 3753 37542006-10-15 Bruno Haible <bruno@clisp.org> 3755 3756 * write-catalog.h: New file. 3757 * write-catalog.c: New file, mostly extracted from write-po.c. 3758 * write-po.h (message_page_width_set): Move declaration to 3759 write-catalog.h. 3760 (message_print_syntax_properties, message_print_syntax_stringtable): 3761 Remove declarations. 3762 (msgdomain_list_print): Move out to write-catalog.h, adding a 3763 catalog_output_format_ty argument. 3764 (msgdomain_list_sort_by_msgid, msgdomain_list_sort_by_filepos): Move 3765 out to write-catalog.h. 3766 (output_format_po): New declaration. 3767 * write-po.c: Don't include fwriteerror.h, error-progname.h. 3768 (page_width, message_page_width_set): Move out to write-catalog.c. 3769 (use_syntax_properties): Remove variable. 3770 (message_print_syntax_properties): Remove function. 3771 (use_syntax_stringtable): Remove variable. 3772 (message_print_syntax_stringtable): Remove function. 3773 (wrap, message_print, message_print_obsolete, msgdomain_list_print_po): 3774 Add page_width argument. 3775 (msgdomain_list_print): Move out to write-catalog.c, adding a 3776 catalog_output_format_ty argument. 3777 (cmp_by_msgid, msgdomain_list_sort_by_msgid, 3778 cmp_filepos, msgdomain_list_sort_filepos, 3779 cmp_by_filepos, msgdomain_list_sort_by_filepos): Move out to 3780 write-catalog.c. 3781 (output_format_po): New variable. 3782 * write-properties.h (msgdomain_list_print_properties): Remove 3783 declaration. 3784 (output_format_properties): New declaration. 3785 * write-properties.c (msgdomain_list_print_properties): Make static. 3786 (output_format_properties): New variable. 3787 * write-stringtable.h (msgdomain_list_print_stringtable): Remove 3788 declaration. 3789 (output_format_stringtable): New declaration. 3790 * write-stringtable.c (msgdomain_list_print_stringtable): Make static. 3791 (output_format_stringtable): New variable. 3792 * msgattrib.c: Include write-catalog.h, write-properties.h, 3793 write-stringtable.h. 3794 (main): Change handling of --properties-output, --stringtable-output 3795 options. Pass the output_syntax to msgdomain_list_print. 3796 * msgcat.c: Include write-catalog.h, write-properties.h, 3797 write-stringtable.h. 3798 (main): Change handling of --properties-output, --stringtable-output 3799 options. Pass the output_syntax to msgdomain_list_print. 3800 * msgcomm.c: Include write-catalog.h, write-properties.h, 3801 write-stringtable.h. 3802 (main): Change handling of --properties-output, --stringtable-output 3803 options. Pass the output_syntax to msgdomain_list_print. 3804 * msgconv.c: Include write-catalog.h, write-properties.h, 3805 write-stringtable.h. 3806 (main): Change handling of --properties-output, --stringtable-output 3807 options. Pass the output_syntax to msgdomain_list_print. 3808 * msgen.c: Include write-catalog.h, write-properties.h, 3809 write-stringtable.h. 3810 (main): Change handling of --properties-output, --stringtable-output 3811 options. Pass the output_syntax to msgdomain_list_print. 3812 * msgfilter.c: Include write-catalog.h, write-properties.h, 3813 write-stringtable.h. 3814 (main): Change handling of --properties-output, --stringtable-output 3815 options. Pass the output_syntax to msgdomain_list_print. 3816 * msggrep.c: Include write-catalog.h, write-properties.h, 3817 write-stringtable.h. 3818 (main): Change handling of --properties-output, --stringtable-output 3819 options. Pass the output_syntax to msgdomain_list_print. 3820 * msginit.c: Include write-catalog.h, write-properties.h, 3821 write-stringtable.h. 3822 (main): Change handling of --properties-output, --stringtable-output 3823 options. Pass the output_syntax to msgdomain_list_print. 3824 * msgmerge.c: Include write-catalog.h, write-properties.h, 3825 write-stringtable.h. 3826 (main): Change handling of --properties-output, --stringtable-output 3827 options. Pass the output_syntax to msgdomain_list_print. 3828 * msgunfmt.c: Include write-catalog.h, write-properties.h, 3829 write-stringtable.h. 3830 (main): Change handling of --properties-output, --stringtable-output 3831 options. Pass the output_syntax to msgdomain_list_print. 3832 * msguniq.c: Include write-catalog.h, write-properties.h, 3833 write-stringtable.h. 3834 (main): Change handling of --properties-output, --stringtable-output 3835 options. Pass the output_syntax to msgdomain_list_print. 3836 * xgettext.c: Include write-catalog.h, write-properties.h, 3837 write-stringtable.h. 3838 (output_syntax): Change type to catalog_output_format_ty. 3839 (main): Update. Pass the output_syntax to msgdomain_list_print. 3840 (finalize_header): Update. 3841 * gettext-po.c: Include write-catalog.h. 3842 (po_file_write): Specify PO syntax. 3843 * Makefile.am (noinst_HEADERS): Add write-catalog.h. 3844 (libgettextsrc_la_SOURCES): Add write.catalog.c. 3845 38462006-10-05 Bruno Haible <bruno@clisp.org> 3847 3848 * lang-table.c (language_table): Add Adangme, Kashubian. Fix the 3849 names of Western Frisian, Marshallese, Sinhala. 3850 * msginit.c (catalogname_for_locale): Add entries for Kashubian, 3851 Western Frisian, South Ndebele. Change entry for Serbian from sr_CS to 3852 sr_RS. 3853 38542006-10-06 Bruno Haible <bruno@clisp.org> 3855 3856 * write-java.c (msgdomain_write_java): Use fopen_temp, fwriteerror_temp 3857 instead of fopen, fwriteerror. 3858 * write-csharp.c (msgdomain_write_csharp): Likewise. 3859 38602006-10-06 Bruno Haible <bruno@clisp.org> 3861 3862 * Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 3:0:3. 3863 38642006-10-03 Bruno Haible <bruno@clisp.org> 3865 3866 * message.h (struct message_ty): New fields prev_msgctxt, prev_msgid, 3867 prev_msgid_plural. 3868 * message.c (message_alloc): Initialize the prev_msg* fields. 3869 (message_free): Free the prev_msg* fields. 3870 (message_copy): Copy the prev_msg* fields. 3871 * msgl-ascii.c (is_ascii_message): Consider also the prev_msg* fields. 3872 * msgl-cat.c (catenate_msgdomain_list): Copy the prev_msg* fields if 3873 a message is copied, not merged. 3874 * msgl-equal.c (message_equal): Consider also the prev_msg* fields. 3875 * msgl-iconv.c (convert_prev_msgid): New function. 3876 (iconv_message_list): Call it. 3877 iconvable_prev_msgid): New function. 3878 (is_message_list_iconvable): Call it. 3879 3880 * po-lex.c (po_lex_previous): New variable. 3881 (lex_start, lex_end): Reset it. 3882 (keyword_p): Test it. New return values PREV_MSGID, PREV_MSGID_PLURAL, 3883 PREV_MSGCTXT. 3884 (po_gram_lex): Recognize #| and #~| syntax. New return value 3885 PREV_STRING. 3886 * po-gram-gen.y (do_callback_message): Add prev_msgctxt, prev_msgid, 3887 prev_msgid_plural arguments. 3888 (free_message_intro): New macro. 3889 (PREV_MSGCTXT, PREV_MSGID, PREV_MSGID_PLURAL, PREV_STRING): New tokens. 3890 (prev, message_intro): New structures. 3891 (po_file): Renamed from msgfmt. 3892 (message): Pass prev_* fields around. Call free_message_intro. 3893 (message_intro, prev): New rules. 3894 (msg_intro): Renamed from message_intro. 3895 (prev_msg_intro, prev_msgid_pluralform, prev_string_list): New rules. 3896 * read-po-abstract.h (struct abstract_po_reader_class_ty): Add 3897 prev_msgctxt, prev_msgid, prev_msgid_plural arguments to the 3898 'directive_message' method. 3899 (po_callback_message): Add prev_msgctxt, prev_msgid, 3900 prev_msgid_plural arguments. 3901 * read-po-abstract.c (call_directive_message, po_callback_message): Add 3902 prev_msgctxt, prev_msgid, prev_msgid_plural arguments. 3903 * read-po.h (struct default_po_reader_class_ty): Add prev_msgctxt, 3904 prev_msgid, prev_msgid_plural arguments to the 'add_message' method. 3905 (default_directive_message, default_add_message): Add prev_msgctxt, 3906 prev_msgid, prev_msgid_plural arguments. 3907 * read-po.c (call_add_message, default_directive_message, 3908 default_add_message): Add prev_msgctxt, prev_msgid, prev_msgid_plural 3909 arguments. 3910 * read-properties.c (properties_parse): Update. 3911 * read-stringtable.c (stringtable_parse): Update. 3912 * xgettext.c (exclude_directive_message): Add prev_msgctxt, prev_msgid, 3913 prev_msgid_plural arguments. 3914 * x-po.c (extract_add_message): Add prev_msgctxt, prev_msgid, 3915 prev_msgid_plural arguments. 3916 3917 * write-po.c (wrap): Add extra_indent argument. 3918 (message_print, message_print_obsolete): Print the prev_msgctxt, 3919 prev_msgid, prev_msgid_plural fields. Compute an extra_indent. 3920 3921 * msgmerge.c (keep_previous): New variable. 3922 (long_options): Add --previous option. 3923 (main): Handle it. 3924 (usage): Document --previous option. 3925 (message_merge): Add force_fuzzy argument. Set the new message's 3926 prev_msg* fields. 3927 (match_domain): Update. 3928 * msgattrib.c (REMOVE_PREV): New enum item. 3929 (long_options): Add --clear-previous option. 3930 (main): Handle it. 3931 (usage): Document --clear-previous option. 3932 (process_message_list): Handle REMOVE_PREV. 3933 * msgfmt.c (msgfmt_add_message): Add prev_msgctxt, prev_msgid, 3934 prev_msgid_plural arguments. 3935 * gettext-po.c (po_message_prev_msgctxt, po_message_set_prev_msgctxt, 3936 po_message_prev_msgid, po_message_set_prev_msgid, 3937 po_message_prev_msgid_plural, po_message_set_prev_msgid_plural): New 3938 functions. 3939 39402006-10-03 Bruno Haible <bruno@clisp.org> 3941 3942 * msgmerge.c (definitions_init): Fix initialization of fresh_lock. 3943 39442006-10-03 Bruno Haible <bruno@clisp.org> 3945 3946 * msgcmp.c (include_fuzzies, include_untranslated): New variables. 3947 (long_options): Add options --use-fuzzy, --use-untranslated. 3948 (main): Handle them. 3949 (usage): Document them. 3950 (match_domain): Consider include_fuzzies and include_untranslated. 3951 39522006-10-02 Bruno Haible <bruno@clisp.org> 3953 3954 * gettext-po.h.in (LIBGETTEXTPO_VERSION): Bump version number. 3955 * Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 2:1:2. 3956 39572006-10-01 Bruno Haible <bruno@clisp.org> 3958 3959 * x-perl.c (extract_balanced): Remove state argument. 3960 3961 * x-perl.c (extract_balanced): Remove unused variable prev_last_token. 3962 3963 Fix Perl parsing bug introduced between 0.14.6 and 0.15. 3964 * x-perl.c (extract_balanced): Add eat_delim and comma_delim arguments. 3965 Use recursion to handle the case of a keyword not followed by an 3966 opening parenthesis. When a keyword is seen, set next_argparser 3967 instead of modifying the argparser variable of the current recursion. 3968 When seeing an opening parenthesis, distinguish the case of function 3969 arguments and the case of a subexpression. Don't call collect_message 3970 for unused argument positions. 3971 Reported by Nicolas François <nicolas.francois@centraliens.net>. 3972 3973 * x-perl.c (extract_balanced): Remove unused variable. 3974 39752006-09-06 Bruno Haible <bruno@clisp.org> 3976 3977 * msgl-iconv.c: Include xstriconv.h instead of iconvstring.h. 3978 (convert_string, convert_msgstr, iconvable_string, iconvable_msgstr): 3979 Use xmem_cd_iconv instead of iconv_string. 3980 * recode-sr-latin.c: Include xstriconv.h instead of iconvstring.h. 3981 (process): Use xmem_cd_iconv instead of iconv_string. 3982 39832006-09-04 Bruno Haible <bruno@clisp.org> 3984 3985 * Makefile.am (msginit_SOURCES): Add ../../gettext-runtime/intl/lock.c. 3986 Reported by Aaron Williams <aaron_williams@net.com>. 3987 39882006-08-28 Bruno Haible <bruno@clisp.org> 3989 3990 * x-scheme.c (read_object): Don't call arglist_parser_remember if 3991 argparser is NULL. 3992 * x-elisp.c (read_object): Likewise. 3993 * x-librep.c (read_object): Likewise. 3994 * x-lisp.c (read_object): Likewise. 3995 Reported by Kevin Ryde <user42@zip.com.au>. 3996 39972006-08-16 Bruno Haible <bruno@clisp.org> 3998 3999 * plural-table.c (plural_table): Put Hungarian under nplurals=2. 4000 Reported by Arpad Biro <biro_arpad@yahoo.com> and 4001 Gabor Kelemen <kelemeng@gnome.hu>. 4002 40032006-08-16 Bruno Haible <bruno@clisp.org> 4004 4005 * read-mo.c: Include stdbool.h, stdlib.h, format.h. 4006 (read_mo_file): Mark messages with system-dependent segments as 4007 "#, c-format" or "#, objc-format", as appropriate. 4008 Reported by Egmont Koblinger <egmont@uhulinux.hu>. 4009 40102006-08-07 Bruno Haible <bruno@clisp.org> 4011 4012 * xgettext.c (remember_a_message): Use the position passed as argument 4013 instead of a dummypos. 4014 Reported by Paul Eggert <eggert@cs.ucla.edu>. 4015 40162006-08-01 Bruno Haible <bruno@clisp.org> 4017 4018 Fix behaviour of msgmerge when the PO file and the compendium are 4019 in different encodings. 4020 * msgl-iconv.h (is_message_list_iconvable): New declaration. 4021 * msgl-iconv.c (iconvable_string, iconvable_string_list, 4022 iconvable_msgid, iconvable_msgstr, is_message_list_iconvable): New 4023 functions. 4024 * msgmerge.c: Include xallocsa.h. 4025 (merge): In the case that the .pot file is ASCII, not UTF-8, convert 4026 the definitions and the compendia contents to a common encoding. 4027 Reported by Stanislav Brabec <sbrabec@suse.cz>. 4028 40292006-07-30 Bruno Haible <bruno@clisp.org> 4030 4031 * Makefile.am (AM_CPPFLAGS, LDADD, libgettextsrc_la_LDFLAGS, 4032 libgettextpo_la_LDFLAGS, recode_sr_latin_LDADD, RELOCATABLE_SRC_DIR, 4033 RELOCATABLE_BUILD_DIR): Replace ../lib with ../gnulib-lib. 4034 (JAVACOMP, CSHARPCOMP): Remove lib/ from pathname. 4035 40362006-07-30 Bruno Haible <bruno@clisp.org> 4037 4038 * msgl-cat.c: Include c-strstr.h instead of strstr.h. 4039 (catenate_msgdomain_list): Use c_strstr instead of strstr. 4040 * msgl-charset.c: Include c-strstr.h instead of strstr.h. 4041 (compare_po_locale_charsets): Use c_strstr instead of strstr. 4042 * msgl-check.c: Include c-strstr.h instead of strstr.h. 4043 (plural_help, check_plural, check_header_entry): Use c_strstr instead 4044 of strstr. 4045 * msgl-iconv.c: Include c-strstr.h instead of strstr.h. 4046 (iconv_message_list): Use c_strstr instead of strstr. 4047 * po-charset.c: Include c-strstr.h instead of strstr.h. 4048 (po_lex_charset_set): Use c_strstr instead of strstr. 4049 * write-po.c: Include c-strstr.h instead of strstr.h. 4050 (msgdomain_list_print_po): Use c_strstr instead of strstr. 4051 * write-stringtable.c: Include c-strstr.h instead of strstr.h. 4052 (write_message): Use c_strstr instead of strstr. 4053 * msgcmp.c: Include c-strstr.h instead of strstr.h. 4054 (compare): Use c_strstr instead of strstr. 4055 * msginit.c: Include c-strstr.h instead of strstr.h. 4056 (content_type): Use c_strstr instead of strstr. 4057 * msgmerge.c: Include c-strstr.h instead of strstr.h. 4058 (message_merge, merge): Use c_strstr instead of strstr. 4059 * x-python.c: Include c-strstr.h instead of strstr.h. 4060 (try_to_extract_coding): Use c_strstr instead of strstr. 4061 * xgettext.c: Include c-strstr.h instead of strstr.h. 4062 (remember_a_message, finalize_header): Use c_strstr instead of strstr. 4063 40642006-07-23 Bruno Haible <bruno@clisp.org> 4065 4066 Exploit CPUs with multiple execution units. 4067 * msgmerge.c: Include lock.h. 4068 (struct definitions_ty): Add 'findex_init_lock' field. 4069 (definitions_init): Initialize it. 4070 (definitions_init_findex): Ensure findex is initialized by the 4071 first thread who attempts so. 4072 (match_domain): Split the main loop into two. Parallelize the first 4073 loop using OpenMP pragmas. 4074 * Makefile.am (msgmerge_CFLAGS): New variable. 4075 (msgmerge_LDADD): Add OPENMP_CFLAGS. 4076 40772006-07-25 Bruno Haible <bruno@clisp.org> 4078 4079 * Makefile.msvc: Remove file. 4080 * Makefile.am (EXTRA_DIST): Remove Makefile.msvc. 4081 40822006-07-25 Bruno Haible <bruno@clisp.org> 4083 4084 * Makefile.vms: Remove file. 4085 * Makefile.am (EXTRA_DIST): Remove Makefile.vms. 4086 40872006-07-24 Bruno Haible <bruno@clisp.org> 4088 4089 * Makefile.am (include_HEADERS): Remove variable. 4090 (nodist_include_HEADERS): New variable. 4091 Suggested by Ralf Corsepius <rc040203@freenet.de>. 4092 40932006-07-21 Bruno Haible <bruno@clisp.org> 4094 4095 * gettext-0.15 released. 4096 40972006-07-20 Bruno Haible <bruno@clisp.org> 4098 4099 * gettext-po.h.in (LIBGETTEXTPO_VERSION): Bump version number. 4100 41012006-07-20 Bruno Haible <bruno@clisp.org> 4102 4103 * Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 2:0:2. 4104 41052006-07-14 Bruno Haible <bruno@clisp.org> 4106 4107 * Makefile.am (MOSTLYCLEANFILES): New variable. 4108 41092006-07-02 Bruno Haible <bruno@clisp.org> 4110 4111 * write-csharp.c (msgdomain_write_csharp): Update. 4112 * write-java.c (msgdomain_write_java): Update. 4113 41142006-06-29 Bruno Haible <bruno@clisp.org> 4115 4116 * write-csharp.c (msgdomain_write_csharp): Update. 4117 * write-java.c (msgdomain_write_java): Likewise. 4118 41192006-06-28 Bruno Haible <bruno@clisp.org> 4120 4121 Assume <dirent.h> on all Unix platforms. Assume closedir works. 4122 * msginit.c: Don't include <sys/ndir.h>, <sys/dir.h>, <ndir.h>. 4123 (find_pot): Use closedir directly. 4124 41252006-06-27 Bruno Haible <bruno@clisp.org> 4126 4127 Assume correct S_ISDIR macro. 4128 * write-csharp.c: Remove test of STAT_MACROS_BROKEN. 4129 * write-java.c: Likewise. 4130 41312006-04-14 Bruno Haible <bruno@clisp.org> 4132 4133 Assume autoconf >= 2.60. 4134 * Makefile.am (localedir): Remove variable. 4135 41362006-06-21 Bruno Haible <bruno@clisp.org> 4137 4138 * x-sh.c (read_word): Recognize the Bash process substitution syntax. 4139 41402006-06-21 Bruno Haible <bruno@clisp.org> 4141 4142 * x-sh.c (read_word): Recognize $(...) and $((...)) also inside 4143 double-quoted strings. 4144 Reported by Michelle Konzack <linux4michelle@freenet.de>. 4145 41462006-06-04 Bruno Haible <bruno@clisp.org> 4147 4148 * msgl-check.c (check_plural_eval): Declare 'distribution' as volatile, 4149 so that it is unaffected by longjmp. 4150 41512006-06-04 Bruno Haible <bruno@clisp.org> 4152 4153 * xgettext.c (arglist_parser_done): Cast length argument for format 4154 string. 4155 41562006-05-31 Bruno Haible <bruno@clisp.org> 4157 4158 * x-ycp.c (phase5_pushback, phase5_pushback_length): New variables. 4159 (phase5_get): Renamed from x_ycp_lex. 4160 (phase5_unget): New function. 4161 (phase8_get): New function. 4162 (extract_parenthesized): Inside i18n construct, use phase8_get 4163 instead of phase5_get. 4164 Reported by Karl Eichwalder <ke@suse.de>. 4165 41662006-05-22 Bruno Haible <bruno@clisp.org> 4167 4168 * msgfilter.c: Include <sys/select.h> also on Minix. 4169 Reported by Leonard den Ottolander <leonard@den.ottolander.nl>. 4170 41712006-05-17 Bruno Haible <bruno@clisp.org> 4172 4173 Cygwin portability. 4174 * hostname.c (WIN32_NATIVE): Renamed from WIN32. 4175 41762006-05-16 Bruno Haible <bruno@clisp.org> 4177 4178 * Makefile.am (CLEANFILES): Add gettext-po.h. 4179 41802006-05-16 Bruno Haible <bruno@clisp.org> 4181 4182 * xgettext.c (main): Use a size_t index variable for looping over the 4183 files. 4184 (arglist_parser_done): Fix a format string. 4185 41862006-05-16 Bruno Haible <bruno@clisp.org> 4187 4188 * msgfilter.c (main): Change type of i. 4189 41902006-05-15 Bruno Haible <bruno@clisp.org> 4191 4192 * Makefile.am: Test flag WOE32DLL instead of CYGWINDLL. 4193 41942006-05-14 Bruno Haible <bruno@clisp.org> 4195 4196 * x-php.c (x_php_lex): Fix handling of here documents. 4197 Reported by Gaëtan Frenoy <gaetan@frenoy.net>. 4198 41992006-05-12 Bruno Haible <bruno@clisp.org> 4200 4201 * write-csharp.c [MINGW]: Include <io.h>. 4202 (mkdir): Define using _mkdir. 4203 * write-java.c [MINGW]: Include <io.h>. 4204 (mkdir): Define using _mkdir. 4205 42062006-05-11 Bruno Haible <bruno@clisp.org> 4207 4208 * gettext-po.h.in: Renamed from gettext-po.h. 4209 * Makefile.am: Treat condition WOE32DLL like MINGW. Update file names. 4210 (libgettextsrc_la_SOURCES, libgettextsrc_la_LDFLAGS): Modify for 4211 Cygwin. 4212 libgettextpo_la_SOURCES, libgettextpo_la_LDFLAGS): Likewise. 4213 (BUILT_SOURCES): Add gettext-po.h. 4214 (EXTRA_DIST): Add gettext-po.h.in. 4215 (gettext-po.h): New rule. 4216 42172006-05-11 Bruno Haible <bruno@clisp.org> 4218 4219 * Makefile.am (format_CFLAGS): Remove variable. 4220 (format.lo): Remove variable. 4221 (FORMAT_SOURCE) [MINGW]: Use ../mingw/c++format.cc instead of format.c. 4222 42232006-05-09 Bruno Haible <bruno@clisp.org> 4224 4225 * plural-eval.h (USE_SIGINFO): Don't define on Cygwin. 4226 42272006-05-02 Charles Wilson <cygwin@cwilson.fastmail.fm> 4228 4229 * write-mo.h: Remove DLL_VARIABLE declarations, not needed since 4230 write-mo.c is not compiled into a shared library. 4231 * lang-table.h: Likewise. 4232 42332006-05-02 Charles Wilson <cygwin@cwilson.fastmail.fm> 4234 4235 * filters.h: Add C++ guards. 4236 42372006-05-07 Bruno Haible <bruno@clisp.org> 4238 4239 * x-perl.c (extract_variable): Fix syntax error introduced on 4240 2005-10-03. 4241 42422006-05-07 Bruno Haible <bruno@clisp.org> 4243 4244 * format-awk.c: Include xvasprintf.h instead of xerror.h. 4245 * format-elisp.c: Likewise. 4246 * format-librep.c: Likewise. 4247 * format-pascal.c: Likewise. 4248 * format-php.c: Likewise. 4249 * format-tcl.c: Likewise. 4250 42512006-04-30 Bruno Haible <bruno@clisp.org> 4252 4253 * write-java.c (msgdomain_write_java): Specify source-version 1.3 and 4254 require target-version 1.1. 4255 42562006-04-30 Bruno Haible <bruno@clisp.org> 4257 4258 * msginit.c (main): Simplify by use of xasprintf(). 4259 * write-java.c: Include xvasprintf.h. 4260 (msgdomain_write_java): Simplify by use of xasprintf(). 4261 * x-c.c: Include xvasprintf.h. 4262 (phase8a_get): Simplify by use of xasprintf(). 4263 * xgettext.c: Don't include stpcpy.h. 4264 (remember_a_message, remember_a_message_plural): Simplify by use of 4265 xasprintf(). 4266 42672006-04-30 Bruno Haible <bruno@clisp.org> 4268 4269 * msgfmt.c: Include xvasprintf.h. 4270 * msginit.c: Likewise. 4271 * msgl-cat.c: Likewise. 4272 * msgl-charset.c: Likewise. 4273 * po-xerror.c: Likewise. 4274 * x-csharp.c: Likewise. 4275 * x-glade.c: Likewise. 4276 * x-python.c: Likewise. 4277 * xgettext.c: Likewise. 4278 * format-boost.c: Include xvasprintf.h instead of xerror.h. 4279 * format-c.c: Likewise. 4280 * format-csharp.c: Likewise. 4281 * format-gcc-internal.c: Likewise. 4282 * format-java.c: Likewise. 4283 * format-lisp.c: Likewise. 4284 * format-perl.c: Likewise. 4285 * format-python.c: Likewise. 4286 * format-qt.c: Likewise. 4287 * format-scheme.c: Likewise. 4288 * format-ycp.c: Likewise. 4289 * msgexec.c: Likewise. 4290 * msgl-check.c: Likewise. 4291 * msgl-iconv.c: Likewise. 4292 * open-po.c: Likewise. 4293 * po-charset.c: Likewise. 4294 * po-lex.c: Likewise. 4295 * po-time.c: Likewise. 4296 * read-po-abstract.c: Likewise. 4297 * read-properties.c: Likewise. 4298 * read-stringtable.c: Likewise. 4299 * write-po.c: Likewise. 4300 43012006-04-30 Bruno Haible <bruno@clisp.org> 4302 4303 * msginit.c (project_id, project_id_version, get_user_email): Close 4304 the FILE in case of I/O error. 4305 43062006-04-30 Bruno Haible <bruno@clisp.org> 4307 4308 * write-java.c (msgdomain_write_java): Don't fclose the FILE after 4309 fwriteerror signalled a failure. 4310 * write-csharp.c (msgdomain_write_csharp): Likewise. 4311 43122006-04-23 Bruno Haible <bruno@clisp.org> 4313 4314 * msgexec.c: Include <unistd.h> unconditionally. 4315 * msgfilter.c: Likewise. 4316 * msggrep.c: Likewise. 4317 * msginit.c: Likewise. 4318 * hostname.c: Likewise. 4319 * urlget.c: Likewise. 4320 43212006-04-17 Bruno Haible <bruno@clisp.org> 4322 4323 * Makefile.am: Use $(mkdir_p) instead of $(mkinstalldirs). 4324 43252006-04-09 Bruno Haible <bruno@clisp.org> 4326 4327 * write-csharp.c: Include clean-temp.h. Don't include unistd.h, 4328 mkdtemp.h, tmpdir.h, pathmax.h, fatal-signal.h, xallocsa.h. 4329 (cleanup_list): Remove variable. 4330 (cleanup): Remove function. 4331 (msgdomain_write_csharp): Simplify handling of temporary directory. 4332 * write-java.c: Include clean-temp.h. Don't include unistd.h, 4333 mkdtemp.h, tmpdir.h, pathmax.h, fatal-signal.h. 4334 (cleanup_list): Remove variable. 4335 (cleanup): Remove function. 4336 (msgdomain_write_java): Simplify handling of temporary directory. 4337 43382006-04-03 Bruno Haible <bruno@clisp.org> 4339 4340 * x-glade.c (p_XML_GetCurrentLineNumber, p_XML_GetCurrentColumnNumber): 4341 Declare differently for expat >= 2.0.0. 4342 (load_libexpat): Search for a differently library name for expat >= 4343 2.0.0. 4344 (do_extract_glade): Update. 4345 Reported by Mike Frysinger <vapier@gentoo.org>. 4346 43472006-04-02 Bruno Haible <bruno@clisp.org> 4348 4349 * hostname.c: Include propername.h. 4350 (main): Call proper_name. 4351 * msgattrib.c: Include propername.h. 4352 (main): Call proper_name. 4353 * msgcat.c: Include propername.h. 4354 (main): Call proper_name. 4355 * msgcmp.c: Include propername.h. 4356 (main): Call proper_name. 4357 * msgcomm.c: Include propername.h. 4358 (main): Call proper_name. 4359 * msgconv.c: Include propername.h. 4360 (main): Call proper_name. 4361 * msgen.c: Include propername.h. 4362 (main): Call proper_name. 4363 * msgexec.c: Include propername.h. 4364 (main): Call proper_name. 4365 * msgfilter.c: Include propername.h. 4366 (main): Call proper_name. 4367 * msgfmt.c: Include propername.h. 4368 (main): Call proper_name. 4369 * msggrep.c: Include propername.h. 4370 (main): Call proper_name. 4371 * msginit.c: Include propername.h. 4372 (main): Call proper_name. 4373 * msgmerge.c: Include propername.h. 4374 (main): Call proper_name. 4375 * msgunfmt.c: Include propername.h. 4376 (main): Call proper_name. 4377 * msguniq.c: Include propername.h. 4378 (main): Call proper_name. 4379 * recode-sr-latin.c: Include propername.h. 4380 (main): Call proper_name and proper_name_utf8. 4381 * urlget.c: Include propername.h. 4382 (main): Call proper_name. 4383 * xgettext.c: Include propername.h. 4384 (main): Call proper_name. 4385 43862006-04-01 Bruno Haible <bruno@clisp.org> 4387 4388 * xgettext.c (main): Treat --keyword= like --keyword. 4389 43902006-03-28 Bruno Haible <bruno@clisp.org> 4391 4392 * filters.h: New file. 4393 * filter-sr-latin.c: New file, based on code from Danilo Šegan. 4394 * recode-sr-latin.c: New file. 4395 * msgfilter.c: Include filters.h, msgl-iconv.h, po-charset.h. 4396 (filter): New variable. 4397 (main): Recognize recode-sr-latin as built-in. 4398 (generic_filter): New function, extracted from process_string. 4399 (process_string): Call the filter. 4400 * Makefile.am (bin_PROGRAMS): Add recode-sr-latin. 4401 (noinst_HEADERS): Add filters.h. 4402 (msgfilter_SOURCES): Add filter-sr-latin.c. 4403 (recode_sr_latin_SOURCES, recode_sr_latin_LDADD, 4404 recode_sr_latin_CPPFLAGS, recode_sr_latin_LDFLAGS): New variables. 4405 * Makefile.msvc (PROGRAMS): Add recode-sr-latin.exe. 4406 (msgfilter_OBJECTS): Add filter-sr-latin.obj. 4407 (recode_sr_latin_OBJECTS): New variable. 4408 (filter-sr-latin.obj, recode-sr-latin.obj): New rules. 4409 (recode-sr-latin.exe): New rule. 4410 (install): Also install recode-sr-latin.exe. 4411 (uninstall): Also uninstall recode-sr-latin.exe. 4412 * Makefile.vms (PROGRAMS): Add recode-sr-latin.exe. 4413 (msgfilter_OBJECTS): Add filter-sr-latin.obj. 4414 (recode_sr_latin_OBJECTS): New variable. 4415 (filter-sr-latin.obj, recode-sr-latin.obj): New rules. 4416 (recode-sr-latin.exe): New rule. 4417 (install): Also install recode-sr-latin.exe. 4418 (uninstall): Also uninstall recode-sr-latin.exe. 4419 44202006-03-28 Bruno Haible <bruno@clisp.org> 4421 4422 * msgl-iconv.c: Include iconvstring.h. Don't include <errno.h>. 4423 (iconv_string): Remove function, moved to ../lib/. 4424 44252006-03-19 Bruno Haible <bruno@clisp.org> 4426 4427 * xgettext.h (struct callshape): New field 'xcomments'. 4428 (struct partial_call): New field 'xcomments'. 4429 * xgettext.c (split_keywordspec): Accept the ID:ARGNUM...,"XCOMMENT" 4430 syntax. 4431 (insert_keyword_callshape): Store the xcomments from the new shape. 4432 (arglist_parser_alloc, arglist_parser_clone): Update. 4433 (arglist_parser_done): After calling remember_a_message, attach the 4434 specified extracted comments. 4435 * x-perl.c (extract_variable): Update. 4436 Suggested by Behdad Esfahbod <behdad@cs.toronto.edu>. 4437 44382006-03-19 Bruno Haible <bruno@clisp.org> 4439 4440 * xgettext.c (arglist_parser_done): Use error_at_line instead of error. 4441 44422006-03-16 Bruno Haible <bruno@clisp.org> 4443 4444 * msggrep.c (grep_task): Increment size. 4445 (long_options): Add --extracted-comment option. 4446 (main): Handle --extracted-comment option. 4447 (no_pass, usage): Update. 4448 (is_message_selected_no_invert): Implement matching on extracted 4449 comments. 4450 Suggested by Behdad Esfahbod <behdad@cs.toronto.edu>. 4451 44522006-03-16 Bruno Haible <bruno@clisp.org> 4453 4454 Handle GNOME glib context syntax. 4455 * xgettext.h (struct callshape): Add fields argnum1_glib_context, 4456 argnum2_glib_context. 4457 (struct partial_call): Add fields argnum1_glib_context, 4458 argnum2_glib_context. 4459 * xgettext.c (split_keywordspec): Recognize suffix 'g' and set the 4460 argnum1_glib_context, argnum2_glib_context fields. 4461 (insert_keyword_callshape, arglist_parser_alloc, arglist_parser_clone): 4462 Update. 4463 (arglist_parser_done): When suffix 'g' was specified, split off the 4464 context from the msgid and/or msgid_plural. 4465 * x-perl.c (extract_variable): Update. 4466 Suggested by Danilo Šegan <danilo@gnome.org>. 4467 44682006-03-16 Bruno Haible <bruno@clisp.org> 4469 4470 * xgettext.c (set_format_flags_from_context): Break long line. 4471 44722006-03-11 Bruno Haible <bruno@clisp.org> 4473 4474 * message.c (fuzzy_search_goal_function): Use 'volatile double'. 4475 44762006-03-11 Bruno Haible <bruno@clisp.org> 4477 4478 Speed up msgmerge with large compendia. 4479 * message.h (message_list_free): Add keep_messages argument. 4480 (message_list_list_free): Add keep_level argument. 4481 (fuzzy_search_goal_function): New declaration. 4482 (FUZZY_THRESHOLD): New macro. 4483 * message.c (message_list_free): Add keep_messages argument. 4484 (fuzzy_search_goal_function): New function, extracted from 4485 message_list_search_fuzzy_inner. 4486 (message_list_search_fuzzy_inner): Use it. 4487 (message_list_search_fuzzy): Use symbolic value FUZZY_THRESHOLD. 4488 (message_list_list_free): Comment in. Add keep_level argument. 4489 (message_list_list_search_fuzzy): Comment out. Use symbolic value 4490 FUZZY_THRESHOLD. 4491 (msgdomain_free): Update. 4492 (msgdomain_list_search_fuzzy): Use symbolic value FUZZY_THRESHOLD. 4493 * po-charset.h: Include stddef.h. 4494 (character_iterator_t): New type. 4495 (po_charset_character_iterator): New declaration. 4496 * po-charset.c (char_iterator, euc_character_iterator, 4497 euc_jp_character_iterator, euc_tw_character_iterator, 4498 big5_character_iterator, big5hkscs_character_iterator, 4499 gbk_character_iterator, gb18030_character_iterator, 4500 shift_jis_character_iterator, johab_character_iterator, 4501 utf8_character_iterator, po_charset_character_iterator): New functions. 4502 * msgl-fsearch.h: New file. 4503 * msgl-fsearch.c: New file. 4504 * msgmerge.c: Include po-charset.h, msgl-fsearch.h. 4505 (compendium_filenames): New variable. 4506 (compendium): Also put the filename into compendium_filenames. 4507 (definitions_ty): New structure type. 4508 (definitions_init, definitions_init_findex, definitions_current_list, 4509 definitions_set_current_list, definitions_search, 4510 definitions_search_fuzzy, definitions_destroy): New functions. 4511 (match_domain): Change type of 'definitions' argument. 4512 (merge): Also convert the compendium to UTF-8. Use definitions_init, 4513 definitions_set_current_list, definitions_destroy. 4514 * msgfmt.c (main): Update. 4515 * Makefile.am (noinst_HEADERS): Add msgl-fsearch.h. 4516 (msgmerge_SOURCES): Add msgl-fsearch.c. 4517 (msgmerge_LDADD): Link with MSGMERGE_LIBM. 4518 * Makefile.msvc (msgmerge_OBJECTS): Add msgl-fsearch.obj. 4519 (msgl-fsearch.obj): New rule. 4520 * Makefile.vms (msgmerge_OBJECTS): Add msgl-fsearch.obj. 4521 (msgl-fsearch.obj): New rule. 4522 Reported by Clytie Siddall <clytie@riverland.net.au>. 4523 45242006-03-09 Bruno Haible <bruno@clisp.org> 4525 4526 * Makefile.am (CXXLINK) [!mingw]: Overwrite automake's value. Fixes 4527 unintended dependency on libstdc++ introduced on 2005-07-05. 4528 45292005-10-09 Bruno Haible <bruno@clisp.org> 4530 4531 * lang-table.h: New file. 4532 * lang-table.c: New file, extracted from msginit.c. 4533 * msginit.c: Include lang-table.h. 4534 (englishname_of_language): Use language_table. 4535 * Makefile.am (noinst_HEADERS): Add lang-table.h. 4536 (msginit_SOURCES): Add lang-table.c. 4537 * Makefile.msvc (MSGINIT_OBJECTS): Add lang-table.obj. 4538 (lang-table.obj): New rule. 4539 * Makefile.vms (MSGINIT_OBJECTS): Add lang-table.obj. 4540 (lang-table.obj): New rule. 4541 45422006-02-12 Bruno Haible <bruno@clisp.org> 4543 4544 * message.h (format_type): New enum value 'format_boost'. 4545 (NFORMATS): Increment. 4546 * message.c (format_language): Add format_boost entry. 4547 (format_language_pretty): Likewise. 4548 * format.h (formatstring_boost): New declaration. 4549 * format-boost.c: New file, based on format-c.c. 4550 * format.c (formatstring_parsers): Add formatstring_boost. 4551 * x-c.c (init_flag_table_c): Also register flags for boost-format. 4552 * xgettext.c (flag_table_cxx_qt, flag_table_cxx_boost): New variables. 4553 (recognize_format_boost): New variable. 4554 (main): Handle --boost option. 4555 (usage): Document --boost option. 4556 (xgettext_record_flag): Also fill flag_table_cxx_qt, 4557 flag_table_cxx_boost. 4558 (remember_a_message, remember_a_message_plural): In the heuristics, 4559 don't mark a string as c-format that is already known to be a qt-format 4560 or boost-format. 4561 (language_to_extractor): Use a flag_table_cxx_qt or 4562 flag_table_cxx_boost that is different from flag_table_c. 4563 * Makefile.am (FORMAT_SOURCE): Add format-boost.c. 4564 * Makefile.msvc (OBJECTS): Add format-boost.obj. 4565 (format-boost.obj): New rule. 4566 * Makefile.vms (OBJECTS): Add format-boost.obj. 4567 (format-boost.obj): New rule. 4568 * FILES: Update. 4569 45702006-02-12 Bruno Haible <bruno@clisp.org> 4571 4572 * xgettext.c (xgettext_record_flag): When asked to set "qt-format", 4573 really set "qt-format", not "c-format". Fixes bug introduced on 4574 2003-10-19. 4575 45762006-02-12 Bruno Haible <bruno@clisp.org> 4577 4578 Reduce the number of false positives produced by the c-format guessing 4579 heuristics. 4580 * format.h (struct formatstring_parser): Add 'is_unlikely_intentional' 4581 field. 4582 * format-awk.c (formatstring_awk): Update. 4583 * format-c.c (struct spec): Add 'unlikely_unintentional' field. 4584 (format_parse): Set unlikely_unintentional to true when encountering 4585 a "%...%" directive other than "%%". 4586 (format_is_unlikely_intentional): New function. 4587 (formatstring_c, formatstring_objc): Use it. 4588 * format-csharp.c (formatstring_csharp): Update. 4589 * format-elisp.c (formatstring_elisp): Update. 4590 * format-gcc-internal.c (formatstring_gcc_internal): Update. 4591 * format-java.c (formatstring_java): Update. 4592 * format-librep.c (formatstring_librep): Update. 4593 * format-lisp.c (formatstring_lisp): Update. 4594 * format-pascal.c (formatstring_pascal): Update. 4595 * format-perl.c (formatstring_perl): Update. 4596 * format-perl-brace.c (formatstring_perl_brace): Update. 4597 * format-php.c (format_php): Update. 4598 * format-python.c (formatstring_python): Update. 4599 * format-qt.c (formatstring_qt): Update. 4600 * format-scheme.c (formatstring_scheme): Update 4601 * format-sh.c (formatstring_sh): Update. 4602 * format-tcl.c (formatstring_tcl): Update. 4603 * format-ycp.c (formatstring_ycp, formatstring_smalltalk): Update. 4604 * xgettext.c (remember_a_message, remember_a_message_plural): Don't 4605 mark the message as c-format if the validity as c-format looks 4606 unintentional. 4607 46082006-02-12 Bruno Haible <bruno@clisp.org> 4609 4610 * msgattrib.c (main): Update year in --version output. 4611 * msgcat.c (main): Likewise. 4612 * msgcmp.c (main): Likewise. 4613 * msgcomm.c (main): Likewise. 4614 * msgconv.c (main): Likewise. 4615 * msgen.c (main): Likewise. 4616 * msgexec.c (main): Likewise. 4617 * msgfilter.c (main): Likewise. 4618 * msgfmt.c (main): Likewise. 4619 * msggrep.c (main): Likewise. 4620 * msginit.c (main): Likewise. 4621 * msgmerge.c (main): Likewise. 4622 * msgunfmt.c (main): Likewise. 4623 * msguniq.c (main): Likewise. 4624 * xgettext.c (main): Likewise. 4625 46262006-01-25 Bruno Haible <bruno@clisp.org> 4627 4628 * x-php.c (x_php_lex): Treat byte values >= 127 like alphabetic. 4629 Reported by Hagen Fritsch <itooktheredpill@gmx.de>. 4630 46312005-12-25 Bruno Haible <bruno@clisp.org> 4632 4633 Tell Python developers to use named arguments in format strings. 4634 * format.h (get_python_format_unnamed_arg_count): New declaration. 4635 * format-python.c (get_python_format_unnamed_arg_count): New function. 4636 * xgettext.c (warn_format_string): New function. 4637 (remember_a_message, remember_a_message_plural): Call it. 4638 Suggested by Martin von Löwis. 4639 46402005-12-07 Bruno Haible <bruno@clisp.org> 4641 4642 * msgl-iconv.c (iconv_message_list): Fix syntax error. 4643 Reported by Dave Patton <dpatton@confluence.org>. 4644 46452005-12-04 Bruno Haible <bruno@clisp.org> 4646 4647 * Makefile.am (CSHARPCOMPFLAGS): Use value set by csharpcomp.m4. 4648 46492005-11-29 Colin Watson <cjwatson@ubuntu.com> 4650 4651 * msggrep.c (invert_match): New variable. 4652 (long_options): Add --invert-match option. 4653 (main): Handle --invert-match option. 4654 (usage): Document --invert-match option. 4655 (is_message_selected_no_invert): New function, extracted from 4656 is_message_selected. 4657 (is_message_selected): Call it. Handle match inversion. 4658 46592005-11-01 Bruno Haible <bruno@clisp.org> 4660 4661 * write-csharp.c (write_csharp_code): Add culture_name argument. 4662 Emit an AssemblyCulture note for it. 4663 (msgdomain_write_csharp): Update. 4664 Suggested by Pepa <cerna.zelva@seznam.cz>. 4665 46662005-10-09 Bruno Haible <bruno@clisp.org> 4667 4668 * plural-eval.h: New file. 4669 * plural-eval.c: Include plural-eval.h. 4670 (sigfpe_exit, sigfpe_code, sigfpe_handler, install_sigfpe_handler, 4671 uninstall_sigfpe_handler): New definitions, moved here from 4672 msgl-check.c. 4673 * msgl-check.c: Include plural.eval.h. 4674 (sigjmp_buf, sigsetjmp, siglongjmp, USE_SIGINFO): Move to plural-eval.h. 4675 (sigfpe_exit, sigfpe_code, sigfpe_handler, install_sigfpe_handler, 4676 uninstall_sigfpe_handler): Move to plural-eval.c. 4677 * Makefile.am (noinst_HEADERS): Add plural-eval.h. 4678 46792005-10-09 Bruno Haible <bruno@clisp.org> 4680 4681 * msgl-check.c: Include c-ctype.h instead of ctype.h. 4682 (check_plural): Use c_isspace instead of isspace. 4683 * x-librep.c: Include c-ctype.h instead of ctype.h. 4684 (read_token): Use c_isxdigit instead of isxdigit. 4685 * x-rst.c: Include c-ctype.h instead of ctype.h. 4686 (extract_rst): Use c_isdigit instead of isdigit. 4687 * x-ycp.c: Don't include ctype.h. 4688 46892005-10-09 Bruno Haible <bruno@clisp.org> 4690 4691 * plural-exp.c: Renamed from plural.c. 4692 * Makefile.am (libgettextsrc_la_SOURCES): Update. 4693 46942005-10-18 Bruno Haible <bruno@clisp.org> 4695 4696 Disambiguate overloaded function calls according to argument count. 4697 * xgettext.h (struct callshape): Add field 'argtotal'. 4698 (struct partial_call): Likewise. 4699 (arglist_parser_done): Add argnum argument. 4700 * xgettext.c (split_keywordspec): Recognize NNt syntax and fill 4701 argtotal. 4702 (insert_keyword_callshape, arglist_parser_alloc, arglist_parser_clone): 4703 Update. 4704 (arglist_parser_decidedp): Compare also the argtotal if given. 4705 (arglist_parser_done): Add argnum argument. 4706 * x-awk.c (extract_parenthesized): Pass arg count to 4707 arglist_parser_done. 4708 * x-c.c (extract_parenthesized): Likewise. 4709 * x-csharp.c (extract_parenthesized): Likewise. 4710 * x-elisp.c (read_object): Likewise. 4711 * x-java.c (extract_parenthesized): Likewise. 4712 * x-librep.c (read_object): Likewise. 4713 * x-lisp.c (read_object): Likewise. 4714 * x-perl.c (extract_variable): Update. 4715 (extract_balanced): Pass arg count to arglist_parser_done. 4716 * x-php.c (extract_parenthesized): Likewise. 4717 * x-python.c (extract_parenthesized): Likewise. 4718 * x-scheme.c (read_object): Likewise. 4719 * x-sh.c (read_command): Likewise. 4720 * x-tcl.c (read_command): Likewise. 4721 Stimulated by a patch from 4722 Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>. 4723 47242005-10-09 Bruno Haible <bruno@clisp.org> 4725 4726 * msginit.c (catalogname_for_locale, language_of_locale): Drop support 4727 of CEN locale name syntax. 4728 47292005-10-05 Bruno Haible <bruno@clisp.org> 4730 4731 * format.h (check_msgid_msgstr_format): Add plural_distribution 4732 argument. 4733 * format.c (check_msgid_msgstr_format): Add plural_distribution 4734 argument. Use it for index dependent strictness. 4735 * msgl-check.h (check_message): Add plural_distribution argument. 4736 * msgl-check.c: Include xalloc.h. 4737 (check_plural_eval): Create a plural_distribution array as additional 4738 output parameter. 4739 (check_plural): Return plural_distribution array as additional output 4740 parameter. 4741 (check_pair, check_message): Add plural_distribution argument. 4742 (check_message_list): Pass the plural_distribution from check_plural 4743 to check_message. 4744 * gettext-po.c (po_message_check_format): Update. 4745 47462005-10-04 Bruno Haible <bruno@clisp.org> 4747 4748 Combine all msgfmt checks in a single place. 4749 * format.h (check_msgid_msgstr_format): Change return type to int. 4750 * format.c (check_msgid_msgstr_format): Return the number of errors. 4751 * msgl-check.h (check_plural): Remove declaration. 4752 * msgl-check.c (check_plural): Make static. Return the number of 4753 errors. 4754 (check_pair): Return the number of errors. 4755 (check_message_list): Likewise. 4756 * msgfmt.c (main): Perform the message checks here, after all files 4757 were read. Call check_message_list instead of check_plural and 4758 check_message. Emit statistics of fatal errors. 4759 (msgfmt_frob_new_message): Don't call check_message here. 4760 47612005-10-04 Bruno Haible <bruno@clisp.org> 4762 4763 * msgl-check.h (check_message_list): New declaration. 4764 * msgl-check.c (check_message_list): New function. 4765 * gettext-po.c (po_file_check_all, po_message_check_all): Call 4766 check_message_list instead of check_message and check_plural. 4767 47682005-10-04 Bruno Haible <bruno@clisp.org> 4769 4770 Fix handling of obsolete messages. 4771 * msgl-check.c (check_plural): Ignore obsolete messages. 4772 * gettext-po.c (po_file_check_all, po_message_check_all, 4773 po_message_check_format): Likewise. 4774 47752005-10-04 Bruno Haible <bruno@clisp.org> 4776 4777 * msgl-check.h (check_message): Remove msgstr_pos argument. 4778 * msgl-check.c (check_pair, check_message): Remove msgstr_pos argument. 4779 * msgfmt.c (msgfmt_frob_new_message): Update. 4780 * gettext-po.c (po_file_check_all, po_message_check_all, 4781 po_message_check_format): Update. 4782 47832005-10-03 Bruno Haible <bruno@clisp.org> 4784 4785 Add support for contexts in xgettext. 4786 * xgettext.h: Include stdbool.h. 4787 (struct callshape): New structure type. 4788 (split_keywordspec): Return a struct callshape, not two integers, 4789 by reference. 4790 (struct callshapes): New structure type. 4791 (insert_keyword_callshape): New declaration. 4792 (remember_a_message): Add msgctxt argument. 4793 (struct partial_call): New structure type. 4794 (struct arglist_parser): New structure type. 4795 (arglist_parser_alloc, arglist_parser_clone, arglist_parser_remember, 4796 arglist_parser_decidedp, arglist_parser_done): New declarations. 4797 * xgettext.c (split_keywordspec): Return a struct callshape, not two 4798 integers, by reference. Handle the notation Nc for a context argument. 4799 (insert_keyword_callshape): New function. 4800 (remember_a_message): Add msgctxt argument. Free both strings when 4801 the message is excluded. 4802 (arglist_parser_alloc, arglist_parser_clone, arglist_parser_remember, 4803 arglist_parser_decidedp, arglist_parser_done): New functions. 4804 * x-awk.c (x_awk_keyword): Use callshape API: split_keywordspec, 4805 insert_keyword_callshape. 4806 (extract_parenthesized): Replace commas_to_skip, plural_commas 4807 arguments with a single argparser argument. Use arglist_parser_* API. 4808 (extract_awk): Update. 4809 * x-c.c (add_keyword): Use callshape API: split_keywordspec, 4810 insert_keyword_callshape. 4811 (init_keywords): Register the new functions [d[c]][n]pgettext. 4812 (init_flag_table_c, init_flag_table_objc): Likewise. 4813 (struct xgettext_token_ty): Replace argnum1, argnum2 with a callshapes 4814 pointer. 4815 (x_c_lex): Update. 4816 (extract_parenthesized): Replace commas_to_skip, plural_commas 4817 arguments with a single argparser argument. Use arglist_parser_* API. 4818 (extract_whole_file): Update. 4819 * x-csharp.c (x_csharp_keyword): Use callshape API: split_keywordspec, 4820 insert_keyword_callshape. 4821 (extract_parenthesized): Replace commas_to_skip, plural_commas 4822 arguments with a single argparser argument. Use arglist_parser_* API. 4823 (extract_csharp): Update. 4824 * x-elisp.c (x_elisp_keyword): Use callshape API: split_keywordspec, 4825 insert_keyword_callshape. 4826 (read_object): Use arglist_parser_* API. 4827 * x-glade.c (start_element_handler, end_element_handler): Update. 4828 * x-java.c (x_java_keyword): Use callshape API: split_keywordspec, 4829 insert_keyword_callshape. 4830 (extract_parenthesized): Replace commas_to_skip, plural_commas 4831 arguments with a single argparser argument. Use arglist_parser_* API. 4832 (extract_java): Update. 4833 * x-librep.c (x_librep_keyword): Use callshape API: split_keywordspec, 4834 insert_keyword_callshape. 4835 (read_object): Use arglist_parser_* API. 4836 * x-lisp.c (x_lisp_keyword): Use callshape API: split_keywordspec, 4837 insert_keyword_callshape. 4838 (read_object): Use arglist_parser_* API. 4839 * x-perl.c (x_perl_keyword): Use callshape API: split_keywordspec, 4840 insert_keyword_callshape. 4841 (extract_balanced): Replace arg_sg, arg_pl arguments with arg, 4842 argparser arguments. Use arglist_parser_* API. 4843 (extract_variable, interpolate_keywords, extract_perl): Update. 4844 * x-php.c (x_php_keyword): Use callshape API: split_keywordspec, 4845 insert_keyword_callshape. 4846 (extract_parenthesized): Replace commas_to_skip, plural_commas 4847 arguments with a single argparser argument. Use arglist_parser_* API. 4848 (extract_php): Update. 4849 * x-python.c (x_python_keyword): Use callshape API: split_keywordspec, 4850 insert_keyword_callshape. 4851 (extract_parenthesized): Replace commas_to_skip, plural_commas 4852 arguments with a single argparser argument. Use arglist_parser_* API. 4853 (extract_python): Update. 4854 * x-rst.c (extract_rst): Update. 4855 * x-scheme.c (x_scheme_keyword): Use callshape API: split_keywordspec, 4856 insert_keyword_callshape. 4857 (read_object): Use arglist_parser_* API. 4858 * x-sh.c (x_sh_keyword): Use callshape API: split_keywordspec, 4859 insert_keyword_callshape. 4860 (read_word): Update. 4861 (read_command): Use arglist_parser_* API. 4862 * x-smalltalk.c (extract_smalltalk): Update. 4863 * x-tcl.c (x_tcl_keyword): Use callshape API: split_keywordspec, 4864 insert_keyword_callshape. 4865 (read_command): Use arglist_parser_* API. 4866 * x-ycp.c (extract_parenthesized): Update. 4867 48682005-10-03 Bruno Haible <bruno@clisp.org> 4869 4870 * xgettext.h (savable_comment_to_xgettext_comment): Remove 4871 declaration. 4872 (remember_a_message, remember_a_message_plural): Add a comment 4873 argument. 4874 * xgettext.c (savable_comment_to_xgettext_comment): Make static. 4875 (remember_a_message): Add comment argument. Call 4876 savable_comment_to_xgettext_comment and savable_comment_reset at the 4877 end. 4878 (remember_a_message_plural): Add comment argument. Call 4879 savable_comment_to_xgettext_comment and xgettext_comment_reset, 4880 savable_comment_reset at the end. 4881 * x-awk.c (extract_parenthesized): Pass comment to remember_a_message. 4882 * x-c.c (extract_parenthesized): Likewise. 4883 * x-csharp.c (extract_parenthesized): Likewise. 4884 * x-elisp.c (read_object): Likewise. 4885 * x-glade.c (start_element_handler, end_element_handler): Likewise. 4886 * x-java.c (extract_parenthesized): Likewise. 4887 * x-librep.c (read_object): Likewise. 4888 * x-lisp.c (read_object): Likewise. 4889 * x-perl.c (extract_variable, interpolate_keywords, extract_balanced): 4890 Likewise. 4891 * x-php.c (extract_parenthesized): Likewise. 4892 * x-python.c (extract_parenthesized): Likewise. 4893 * x-scheme.c (read_object): Likewise. 4894 * x-sh.c (read_word, read_command): Likewise. 4895 * x-smalltalk.c (extract_smalltalk): Likewise. 4896 * x-tcl.c (read_command): Likewise. 4897 * x-ycp.c (extract_parenthesized): Likewise. 4898 * x-rst.c (extract_rst): Update. 4899 49002005-10-03 Bruno Haible <bruno@clisp.org> 4901 4902 * xgettext.h (xgettext_comment_add, xgettext_comment, 4903 xgettext_comment_reset): Remove declarations. 4904 * xgettext.c (xgettext_comment_add, xgettext_comment, 4905 xgettext_comment_reset): Make static. 4906 49072005-10-03 Bruno Haible <bruno@clisp.org> 4908 4909 Use savable_comment_* API instead of xgettext_comment_* API. 4910 * x-awk.c (phase2_getc): Call savable_comment_add instead of 4911 xgettext_comment_add. 4912 (x_awk_lex): Call savable_comment_reset instead of 4913 xgettext_comment_reset. 4914 (extract_parenthesized): Call savable_comment_to_xgettext_comment and 4915 savable_comment_reset around remember_a_message. 4916 * x-elisp.c (comment_line_end): Call savable_comment_add instead of 4917 xgettext_comment_add. 4918 (read_object): Call savable_comment_reset instead of 4919 xgettext_comment_reset. Call savable_comment_to_xgettext_comment and 4920 savable_comment_reset around remember_a_message. 4921 * x-glade.c (start_element_handler, end_element_handler): Call 4922 savable_comment_to_xgettext_comment and savable_comment_reset around 4923 remember_a_message. Call savable_comment_reset instead of 4924 xgettext_comment_reset. 4925 (comment_handler): Call savable_comment_add instead of 4926 xgettext_comment_add. 4927 * x-librep.c (comment_line_end): Call savable_comment_add instead of 4928 xgettext_comment_add. 4929 (read_object): Call savable_comment_reset instead of 4930 xgettext_comment_reset. Call savable_comment_to_xgettext_comment and 4931 savable_comment_reset around remember_a_message. 4932 * x-lisp.c (comment_line_end): Call savable_comment_add instead of 4933 xgettext_comment_add. 4934 (read_object): Call savable_comment_reset instead of 4935 xgettext_comment_reset. Call savable_comment_to_xgettext_comment and 4936 savable_comment_reset around remember_a_message. 4937 * x-perl.c (phase2_getc): Call savable_comment_add instead of 4938 xgettext_comment_add. 4939 (extract_variable, interpolate_keywords): Call 4940 savable_comment_to_xgettext_comment and savable_comment_reset around 4941 remember_a_message. 4942 (x_perl_prelex): Call savable_comment_reset instead of 4943 xgettext_comment_reset. 4944 (extract_balanced): Call savable_comment_to_xgettext_comment and 4945 savable_comment_reset around remember_a_message. 4946 * x-php.c (comment_line_end): Call savable_comment_add instead of 4947 xgettext_comment_add. 4948 (x_php_lex): Call savable_comment_reset instead of 4949 xgettext_comment_reset. 4950 (extract_parenthesized): Call savable_comment_to_xgettext_comment and 4951 savable_comment_reset around remember_a_message. 4952 * x-scheme.c (comment_line_end): Call savable_comment_add instead of 4953 xgettext_comment_add. 4954 (read_object): Call savable_comment_reset instead of 4955 xgettext_comment_reset. Call savable_comment_to_xgettext_comment and 4956 savable_comment_reset around remember_a_message. 4957 * x-sh.c (comment_line_end): Call savable_comment_add instead of 4958 xgettext_comment_add. 4959 (read_word): Call savable_comment_reset instead of 4960 xgettext_comment_reset. Call savable_comment_to_xgettext_comment and 4961 savable_comment_reset around remember_a_message. 4962 (read_command): Call savable_comment_to_xgettext_comment and 4963 savable_comment_reset around remember_a_message. 4964 * x-smalltalk.c (comment_line_end): Call savable_comment_add instead of 4965 xgettext_comment_add. 4966 (phase2_get): Call savable_comment_reset instead of 4967 xgettext_comment_reset. 4968 (extract_smalltalk): Call savable_comment_to_xgettext_comment and 4969 savable_comment_reset around remember_a_message. 4970 * x-tcl.c (comment_line_end): Call savable_comment_add instead of 4971 xgettext_comment_add. 4972 (read_word): Call savable_comment_reset instead of 4973 xgettext_comment_reset. 4974 (read_command): Call savable_comment_to_xgettext_comment and 4975 savable_comment_reset around remember_a_message. 4976 * x-ycp.c (phase2_getc): Call savable_comment_add instead of 4977 xgettext_comment_add. 4978 (x_ycp_lex): Call savable_comment_reset instead of 4979 xgettext_comment_reset. 4980 (extract_parenthesized): Call savable_comment_to_xgettext_comment and 4981 savable_comment_reset around remember_a_message. 4982 49832005-10-03 Bruno Haible <bruno@clisp.org> 4984 4985 * message.c (message_list_hash_insert_entry): Update. 4986 49872005-10-03 Bruno Haible <bruno@clisp.org> 4988 4989 * message.c (message_list_alloc, message_list_free, 4990 message_list_hash_insert_entry, message_list_remove_if_not, 4991 message_list_msgids_changed, message_list_search): Update. 4992 * write-qt.c (write_qm): Update. 4993 * xgettext.c (flag_context_list_table_lookup, 4994 flag_context_list_table_insert): Update. 4995 * x-awk.c (x_awk_keyword, extract_parenthesized): Update. 4996 * x-c.c (add_keyword, x_c_lex): Update. 4997 * x-csharp.c (x_csharp_keyword, extract_parenthesized: Update. 4998 * x-elisp.c (x_elisp_keyword, read_object): Update. 4999 * x-glade.c (x_glade_keyword, start_element_handler): Update. 5000 * x-java.c (x_java_keyword, extract_parenthesized): Update. 5001 * x-librep.c (x_librep_keyword, read_object): Update. 5002 * x-lisp.c (x_lisp_keyword, read_object): Update. 5003 * x-perl.c (x_perl_keyword, extract_variable, interpolate_keywords, 5004 extract_balanced): Update. 5005 * x-php.c (x_php_keyword, extract_parenthesized): Update. 5006 * x-python.c (x_python_keyword, extract_parenthesized): Update. 5007 * x-scheme.c (x_scheme_keyword, read_object): Update. 5008 * x-sh.c (x_sh_keyword, read_command): Update. 5009 * x-tcl.c (x_tcl_keyword, read_command): Update. 5010 50112005-10-01 Bruno Haible <bruno@clisp.org> 5012 5013 Support for context dependent translations in PO files. 5014 * message.h (MSGCTXT_SEPARATOR): New macro. 5015 (struct message_ty): Add 'msgctxt' field. 5016 (message_alloc): Add msgctxt argument. 5017 (is_header): New macro. 5018 (message_list_search, message_list_search_fuzzy, 5019 message_list_list_search, message_list_list_search_fuzzy, 5020 msgdomain_list_search, msgdomain_list_search_fuzzy): Add msgctxt 5021 argument. 5022 * message.c: Include xallocsa.h. 5023 (message_alloc): Add msgctxt argument. 5024 (message_copy): Update. 5025 (message_list_hash_insert_entry): New function. 5026 (message_list_append, message_list_prepend, message_list_insert_at, 5027 message_list_msgids_changed): Use it. 5028 (message_list_search): Add msgctxt argument. 5029 (message_list_search_fuzzy_inner): Likewise. 5030 (message_list_search_fuzzy): Likewise. 5031 (message_list_list_search): Likewise. 5032 (message_list_list_search_fuzzy): Likewise. 5033 * msgl-ascii.c (is_ascii_message): Also test the msgctxt. 5034 * write-po.c (message_print): Warn if some msgctxt has non-ASCII 5035 characters. Write out the msgctxt. 5036 (message_print_obsolete): Likewise. 5037 (msgdomain_list_print_po): Use is_header macro. 5038 (msgdomain_list_print): Likewise. Bail out if contexts are present and 5039 cannot be stored in the given output format. 5040 * write-properties.c (write_message): Use is_header macro. 5041 * po-lex.c: Include message.h. 5042 (keyword_p): Also recognize 'msgctxt'. 5043 (po_gram_lex): Bail out if a string contains the EOT character. 5044 * read-po-abstract.h (struct abstract_po_reader_class_ty): Add msgctxt 5045 argument to directive_message function pointer. 5046 (po_callback_message): Add msgctxt argument. 5047 * read-po-abstract.c (call_directive_message, po_callback_message): Add 5048 msgctxt argument. 5049 * po-gram-gen.y (do_callback_message): Add msgctxt argument. Use 5050 is_header macro. 5051 (MSGCTXT): New token type. 5052 (message_intro, MSGCTXT): Declare return types. 5053 (message): Use message_intro instead of just MSGID. 5054 (message_intro): New nonterminal reduction rules. 5055 * read-properties.c (properties_parse): Update. 5056 * read-stringtable.c (stringtable_parse): Update. 5057 * read-po.h (struct default_po_reader_class_ty): Add msgctxt argument 5058 to add_message field. 5059 (default_directive_message, default_add_message): Likewise. 5060 * read-po.c (call_add_message, default_directive_message, 5061 default_add_message): Add msgctxt argument. 5062 * msgl-iconv.c (convert_msgid): Also convert the msgctxt. 5063 (iconv_message_list): Use is_header macro. Test also the msgctxt for 5064 non-ASCII-ness. 5065 * msgl-cat.c (is_message_selected, is_message_needed): Use is_header 5066 macro. 5067 (catenate_msgdomain_list): Likewise. Update. 5068 * msgl-equal.c (message_equal): Likewise. Also compare the msgctxt. 5069 * msgcmp.c (is_message_selected): Use is_header macro. 5070 (match_domain): Update. 5071 (compare): Use is_header macro. 5072 * msgmerge.c (message_merge, match_domain): Use is_header macro. 5073 Update. 5074 (merge): Update. 5075 * msgattrib.c (is_message_selected): Use is_header macro. 5076 (process_message_list): Likewise. Update. 5077 * msgl-charset.c (compare_po_locale_charsets): Use is_header macro. 5078 * msgexec.c (process_string): Also set or unset MSGEXEC_MSGCTXT 5079 variable. 5080 * msgfilter.c (process_message): Use is_header macro. 5081 * msggrep.c (grep_task): Increase size from 3 to 4. 5082 (long_options): Add --msgctxt option. 5083 (main): Accept -J/--msgctxt option. Update grep_pass numbers. 5084 (no_pass): Update. 5085 (usage): Mention -J option. 5086 (is_message_selected): Use is_header macro. Perform a new grep pass on 5087 the msgctxt. 5088 * msginit.c (fill_header): Use is_header macro. Update. 5089 (update_msgstr_plurals): Update. 5090 * read-mo.c (read_mo_file): Split msgid into msgctxt and msgid. Update. 5091 * read-tcl.c (msgdomain_read_tcl): Use is_header macro. 5092 * msgl-check.c (check_plural): Update. 5093 (check_message): Use is_header macro. 5094 * write-mo.c (write_table): Write msgid with msgctxt, instead of just 5095 the msgid. 5096 * write-java.c: Include xerror.h. 5097 (write_java_code): Update. 5098 (msgdomain_write_java): Give error if some entries have a context. 5099 * write-csharp.c: Include xerror.h. 5100 (write_csharp_code): Update. 5101 (msgdomain_write_csharp): Give error if some entries have a context. 5102 * write-resources.c (msgdomain_write_csharp_resources): Bail out if 5103 contexts are present and cannot be stored in the given output format. 5104 * write-tcl.c (write_msg): Use is_header macro. 5105 (msgdomain_write_tcl): Bail out if contexts are present and cannot be 5106 stored in the given output format. 5107 * write-qt.c: Include hash.h. 5108 (write_qm): Use is_header macro. Write out msgctxt if present. Write 5109 a contexts section if appropriate. 5110 * msgfmt.c (msgfmt_add_message): Add msgctxt argument. 5111 (msgfmt_frob_new_message): Use is_header macro. 5112 * xgettext.c (exclude_directive_message): Add msgctxt argument. 5113 (remember_a_message, construct_header, finalize_header): Update. 5114 * x-po.c (extract_add_message): Add msgctxt argument. Update. 5115 (extract): Update. 5116 * gettext-po.h (po_message_msgctxt, po_message_set_msgctxt): New 5117 declarations. 5118 * gettext-po.c (po_file_domain_header): Use is_header macro. 5119 (po_message_create): Update. 5120 (po_message_msgctxt, po_message_set_msgctxt): New functions. 5121 (po_message_check_all): Use is_header macro. 5122 51232005-10-01 Bruno Haible <bruno@clisp.org> 5124 5125 Avoid a crash when msgcat or msgconv is asked to convert a non-ASCII 5126 msgid. 5127 * msgl-iconv.h (iconv_message_list): Change return type to boolean. 5128 * msgl-iconv.c (iconv_message_list): Likewise. Return true if some 5129 msgids change. 5130 * msgl-cat.c (catenate_msgdomain_list): Exit with an error message if 5131 the msgids change through charset conversion. 5132 51332005-10-04 Bruno Haible <bruno@clisp.org> 5134 5135 * format.c: Include stdbool.h. 5136 (check_msgid_msgstr_format): Enable strict checking also when 5137 msgid_plural is present but nplurals = 1. 5138 Reported by Farzaneh Sarafraz <farzaneh@farsiweb.info>. 5139 51402005-10-01 Bruno Haible <bruno@clisp.org> 5141 5142 Change msgattrib to no longer remove extracted comments and file 5143 positions when marking messages obsolete. 5144 * msgmerge.c (merge): When marking a message obsolete, remove the 5145 extracted comments and file positions. 5146 * write-po.c (message_print_obsolete): Also print the extracted 5147 comments and file positions. 5148 51492005-09-25 Bruno Haible <bruno@clisp.org> 5150 5151 Support for Python source encodings (PEP 0263). 5152 * x-python.c: Include progname.h, basename.h, xerror.h, strstr.h, 5153 c-ctype.h, utf8-ucs4.h. 5154 (phase1_pushback): Reduce size. 5155 (UEOF): New macro. 5156 (phase2_pushback, phase2_pushback_length): New variables. 5157 (phase2_getc, phase2_ungetc): New functions. 5158 (struct unicode_string_buffer): New structure type. 5159 (init_unicode_string_buffer, unicode_string_buffer_append_unicode_grow, 5160 unicode_string_buffer_append_unicode, unicode_string_buffer_result, 5161 free_unicode_string_buffer): New functions. 5162 (comment_buffer): New variable. 5163 (buffer, bufmax, buflen): Remove variables. 5164 (comment_start, comment_add, comment_line_end): Rewritten. 5165 (comment_at_start): New function. 5166 (xgettext_current_file_source_encoding): New variable. 5167 (xgettext_current_file_source_iconv): New variable. 5168 (set_current_file_source_encoding, try_to_extract_coding): New 5169 functions. 5170 (continuation_or_nonblank_line): New variable. 5171 (phase3_getc): Renamed from phase2_getc. Use phase2_getc instead of 5172 phase1_getc. Return a Unicode character. Call try_to_extract_coding 5173 when seeing a comment among the first two lines. 5174 (phase3_ungetc): Renamed from phase2_ungetc. Use phase2_ungetc instead 5175 of phase1_ungetc. 5176 (UNICODE, IS_UNICODE, UNICODE_VALUE): New macros. 5177 (struct mixed_string_buffer): New structure type. 5178 (init_mixed_string_buffer, mixed_string_buffer_append_byte, 5179 mixed_string_buffer_append_unicode_grow, 5180 mixed_string_buffer_append_unicode, 5181 mixed_string_buffer_flush_utf16_surr, 5182 mixed_string_buffer_flush_curr_buffer, mixed_string_buffer_append, 5183 mixed_string_buffer_result, free_mixed_string_buffer): New functions. 5184 (phase7_getuc): Use phase2_getc instead of phase1_getc. Return a 5185 Unicode character except for \ooo and \xnn. 5186 (phase5_get): Operate on the level of Unicode characters instead of 5187 at the level of bytes. Use a mixed_string_buffer to accumulate a 5188 string literal. 5189 (extract_parenthesized): Set xgettext_current_source_encoding to UTF-8 5190 while passing UTF-8 strings to the xgettext main code. 5191 (extract_python): Initialize xgettext_current_file_source_encoding and 5192 xgettext_current_source_encoding. 5193 51942005-09-25 Bruno Haible <bruno@clisp.org> 5195 5196 * x-csharp.c (phase2_getc): Fix mis-use of iconv() when the source 5197 encoding is neither ASCII nor UTF-8. 5198 51992005-09-20 Bruno Haible <bruno@clisp.org> 5200 5201 * msgattrib.c (main): Invoke bindtextdomain for bison-runtime. 5202 * msgcat.c (main): Likewise. 5203 * msgcmp.c (main): Likewise. 5204 * msgcomm.c (main): Likewise. 5205 * msgconv.c (main): Likewise. 5206 * msgen.c (main): Likewise. 5207 * msgexec.c (main): Likewise. 5208 * msgfilter.c (main): Likewise. 5209 * msggrep.c (main): Likewise. 5210 * msginit.c (main): Likewise. 5211 * msgmerge.c (main): Likewise. 5212 * msgunfmt.c (main): Likewise. 5213 * msguniq.c (main): Likewise. 5214 * xgettext.c (main): Likewise. 5215 * Makefile.am (DEFS): Also define BISON_LOCALEDIR. 5216 52172005-09-17 Bruno Haible <bruno@clisp.org> 5218 5219 * msgl-check.h: New file. 5220 * msgl-check.c: New file, mostly extracted from msgfmt.c. 5221 * Makefile.am (noinst_HEADERS): Add msgl-check.h. 5222 (libgettextsrc_la_SOURCES): Add msgl-check.c, plural-eval.c. 5223 (msgfmt_SOURCES): Remove plural-eval.c. 5224 * format.c (check_msgid_msgstr_format): Add const to argument type. 5225 * format.h (check_msgid_msgstr_format): Add const to argument type. 5226 * gettext-po.c: Include msgl-check.h. 5227 (po_file_check_all, po_message_check_all): New functions. 5228 (po_xerror_logger): Remove function. 5229 (po_message_check_format): Use new check_message function. 5230 * gettext-po.h (po_file_check_all, po_message_check_all): New 5231 declarations. 5232 * msgfmt.c: Include msgl-check.h instead of setjmp.h, signal.h, 5233 stdarg.h, po-xerror.h, format.h, plural-exp.h, plural-table.h, 5234 strstr.h. 5235 (SIZEOF, sigjmp_buf, sigsetjmp, siglongjmp, USE_SIGINFO, 5236 sigfpe_exit, sigfpe_code, sigfpe_handler, install_sigfpe_handler, 5237 uninstall_sigfpe_handler, check_plural_eval, plural_help, check_plural, 5238 curr_mp, curr_msgid_pos, formatstring_error_logger, check_pair, 5239 check_header_entry): Move definitions to msgl-check.c. 5240 (main): Update. 5241 (msgfmt_frob_new_message): Call check_message instead of 5242 check_header_entry and check_pair. 5243 52442005-09-17 Bruno Haible <bruno@clisp.org> 5245 5246 Use new error handlers in libgettextpo. 5247 * gettext-po.h (PO_SEVERITY_WARNING, PO_SEVERITY_ERROR, 5248 PO_SEVERITY_FATAL_ERROR): New macros. 5249 (po_xerror_handler): New structure type. 5250 (po_xerror_handler_t): New type. 5251 (po_file_read): Change signature; version 3. 5252 (po_file_write): Change signature; version 2. 5253 (po_message_check_format): Change signature; version 2. 5254 * gettext-po.c: Include po-xerror.h. 5255 (po_file_read): New implementation. Renamed old implementation to 5256 po_file_read_v2. 5257 (po_file_write): New implementation. Keep old implementation. 5258 (po_xerror_logger): New function. 5259 (po_message_check_format): New implementation. Keep old implementation. 5260 52612005-09-17 Bruno Haible <bruno@clisp.org> 5262 5263 * msgfmt.c (check_plural): Fix broken determination of max_nplurals. 5264 52652005-09-17 Bruno Haible <bruno@clisp.org> 5266 5267 New, higher-level error message output primitives. 5268 * po-xerror.h: New file. 5269 * po-xerror.c: New file. 5270 * open-po.c: Include xerror.h, po-xerror.h, not error.h. 5271 (open_po_file): Use po_xerror instead of error. 5272 * po-charset.c: Include po-xerror.h, not po-error.h. 5273 (po_lex_charset_set): Use po_xerror instead of po_multiline_warning. 5274 * po-lex.c: Include xerror.h, po-error.h, po-xerror.h. 5275 (po_gram_error, po_gram_error_at_line): Use po_xerror instead of 5276 po_error or po_error_at_line. Don't decrement error_message_count; 5277 let the caller do this instead. 5278 (mbfile_getc, lex_getc): Use po_xerror instead of po_error. 5279 * po-lex.h: Don't include po-error.h. 5280 (po_gram_error, po_gram_error_at_line): Remove optimized macros. 5281 * read-po-abstract.c: Include xerror.h, po-xerror.h. 5282 (po_scan): Use po_xerror instead of po_error. 5283 * read-po.c: Include po-xerror.h. 5284 (default_add_message): Use po_xerror2 instead of po_gram_error_at_line 5285 pair. 5286 * read-properties.c: Include xerror.h, po-xerror.h, not exit.h. 5287 (phase1_getc, phase4_getuc): Use po_xerror instead of error. 5288 * read-stringtable.c: Include xerror.h, po-xerror.h, not exit.h. 5289 (phase1_getc, read_string, stringtable_parse): Use po_xerror instead of 5290 error. 5291 * write-po.c: Include po-xerror.h, not exit.h, po-error.h. 5292 (wrap): Pass the entire message as argument. Use po_xerror instead of 5293 po_error. 5294 (message_print, message_print_obsolete): Update. Use po_xerror instead 5295 of po_multiline_warning. 5296 (msgdomain_list_print): Use po_xerror instead of po_error or 5297 po_error_at_line. 5298 * msgl-iconv.h (struct conversion_context): Add 'message' field. 5299 * msgl-iconv.c: Include xerror.h, po-xerror.h, not error.h, exit.h. 5300 (conversion_error): Use po_xerror instead of error. 5301 (iconv_message_list): Likewise. Set the entire message in the 5302 conversion context before calling convert_*. 5303 (iconv_msgdomain_list): Use po_xerror instead of error. 5304 * xgettext.c (from_current_source_encoding): Set context.message. 5305 * msgfmt.c: Include po-xerror.h. 5306 (check_plural_eval): Pass the entire header as argument. Use po_xerror 5307 instead of error_at_line. 5308 (plural_help): New function, extracted from check_plural. 5309 (check_plural): Change type of local variables has_plural, min_pos, 5310 max_pos. Use po_xerror2 instead of error_at_line pairs. Use po_xerror 5311 instead of error_at_line. 5312 (curr_mp): New variable. 5313 (formatstring_error_logger): Use po_xerror instead of vfprintf. 5314 (check_pair): Take the entire message as argument. Use po_xerror 5315 instead of error_at_line. Set curr_mp before calling 5316 check_msgid_msgstr_format. 5317 (check_header_entry): Take the entire header message as argument. Use 5318 po_xerror instead of multiline_error. 5319 (msgfmt_frob_new_message): Update. 5320 * msgcmp.c (match_domain): Decrement error_message_count between two 5321 error messages that belong together. 5322 * msgmerge.c (match_domain): Decrement error_message_count between two 5323 error messages that belong together. 5324 * Makefile.am (noinst_HEADERS): Add po-xerror.h. 5325 (COMMON_SOURCE): Add po-xerror.c. 5326 53272005-09-16 Bruno Haible <bruno@clisp.org> 5328 5329 * gettext-po.c (po_file_read): Set gram_max_allowed_errors to a large 5330 integer, so that po_gram_error doesn't cause the program to exit(). 5331 53322005-09-14 Bruno Haible <bruno@clisp.org> 5333 5334 * x-csharp.c: Include xerror.h. 5335 53362005-09-11 Bruno Haible <bruno@clisp.org> 5337 5338 * user-email.sh.in: Add support for Mozilla Thunderbird and GNOME 5339 Evolution 2. Improve mutt support. 5340 53412005-08-26 Bruno Haible <bruno@clisp.org> 5342 5343 * plural-table.c (plural_table): Add an entry about Romanian. 5344 Explanations by Eddy Petrişor <eddy.petrisor@gmail.com>. 5345 53462005-08-23 Bruno Haible <bruno@clisp.org> 5347 5348 * write-mo.h (byteswap): New variable. 5349 * write-mo.c: Include byteswap.h. 5350 (byteswap): New variable. 5351 (BSWAP32): New macro. 5352 (write_table): If requested, byteswap all 32-bit values before writing 5353 them out. 5354 * msgfmt.c (long_options): Add --endianness. 5355 (main): Accept --endianness argument and set byteswap. 5356 53572005-08-08 Bruno Haible <bruno@clisp.org> 5358 5359 * msginit.c (catalogname_for_locale): Add support for Old English, 5360 Hyam, Jju, Tyap, Maithili, Nahuatl, Low Saxon, Northern Sotho, Páez, 5361 Tetum, Zapotec. 5362 (englishname_of_language): Add support for Old English, Hyam, Jju, 5363 Tyap, Kagoma, Maithili, Mayan, Nahuatl, Low Saxon, Northern Sotho, 5364 Páez, Tetum, Zapotec. 5365 53662005-05-21 Bruno Haible <bruno@clisp.org> 5367 5368 New undocumented option, used by glocale PO files. 5369 * msgfmt.c (include_fuzzies): Renamed from include_all. 5370 (include_untranslated): New variable. 5371 (long_options): Add --use-untranslated. 5372 (main): Handle --use-untranslated. 5373 (msgfmt_frob_new_message): Test include_untranslated. 5374 (msgfmt_comment_special): Update. 5375 53762005-07-26 Bruno Haible <bruno@clisp.org> 5377 5378 * user-email.sh.in (datarootdir): New variable. 5379 53802005-07-26 Bruno Haible <bruno@clisp.org> 5381 5382 Fix compilation error on systems without iconv(). 5383 * xgettext.c (convert_string): Remove fallback macro definition. 5384 (from_current_source_encoding) [!HAVE_ICONV]: Just abort here. 5385 53862005-07-17 Bruno Haible <bruno@clisp.org> 5387 5388 * po-lex.c (mb_width): Remove gcc warnings on platform with unsigned 5389 'char' type (e.g. Linux/PowerPC). 5390 Reported by Jeff Rizzo <riz@netbsd.org>. 5391 53922005-07-05 Bruno Haible <bruno@clisp.org> 5393 5394 * Makefile.am (msgmerge_SOURCES, xgettext_SOURCES, msgattrib_SOURCES, 5395 msgcat_SOURCES, msgcomm_SOURCES, msgconv_SOURCES, msgen_SOURCES, 5396 msgfilter_SOURCES, msggrep_SOURCES, msguniq_SOURCES): On mingw, use 5397 C++ source code. 5398 (libgettextsrc_la_LDFLAGS, libgettextpo_la_LDFLAGS): Use LTNOUNDEF. 5399 (format_CFLAGS): New variable. 5400 (format.lo): New rule. 5401 (msg*_CFLAGS, xgettext_CFLAGS): Remove variables. 5402 (msg*_CPPFLAGS, xgettext_CPPFLAGS): New variables. 5403 54042005-05-27 Bruno Haible <bruno@clisp.org> 5405 5406 * write-po.c (wrap): Output \a and \v as an escape sequence, like 5407 \b, \f, \r. 5408 Suggested by Asgeir Frimannsson <asgeirf@redhat.com>. 5409 54102005-05-05 Bruno Haible <bruno@clisp.org> 5411 5412 * Makefile.am (msgfmt_SOURCES): Add hash-string.c. 5413 * Makefile.msvc (msgfmt_OBJECTS): Add hash-string.obj. 5414 (hash-string.obj): New rule. 5415 * Makefile.vms (msgfmt_OBJECTS): Add hash-string.obj. 5416 (hash-string.obj): New rule. 5417 54182005-05-01 Bruno Haible <bruno@clisp.org> 5419 5420 * x-sh.c (open_singlequote_terminator): New variable. 5421 (saw_opening_singlequote): Set it. 5422 (phase2_getc): Handle the case of open_singlequote_terminator == '"'. 5423 (read_word): Likewise. Treat i18n quotes like single quotes with 5424 terminator '"'. 5425 Reported by Jakub Bogusz <qboosh@pld-linux.org>. 5426 54272005-05-01 Bruno Haible <bruno@clisp.org> 5428 5429 Improved error message. 5430 * msgl-iconv.h (struct conversion_context): New type. 5431 (convert_string): Add context argument. 5432 * msgl-iconv.c (conversion_error): New function. 5433 (convert_string, convert_string_list, convert_msgid, convert_msgstr): 5434 Add context argument. 5435 (iconv_message_list): Construct context for them. 5436 * xgettext.c (convert_string): Add context argument. 5437 (from_current_source_encoding): Construct context for convert_string. 5438 Reported by Hans Ulrich Niedermann <debian@n-dimensional.de>. 5439 54402005-04-18 Bruno Haible <bruno@clisp.org> 5441 5442 * po-lex.h (po_gram_error, po_gram_error_at_line): Test for 5443 __APPLE_CC__ > 1. Needed because gcc-4.0 defines __APPLE_CC__ and 5444 implements __VA_ARGS__ correctly. 5445 * po-lex.c (po_gram_error, po_gram_error_at_line): Likewise. 5446 * read-stringtable.c (phase2_getc): Optimize UTF-8 code. Avoids 5447 gcc-4.0 warnings. 5448 54492006-06-21 Bruno Haible <bruno@clisp.org> 5450 5451 * gettext-0.14.6 released. 5452 54532006-06-21 Bruno Haible <bruno@clisp.org> 5454 5455 * Makefile.am (CLEANFILES): Add msgfmt.net.exe.mdb, 5456 msgunfmt.net.exe.mdb. 5457 54582006-06-21 Bruno Haible <bruno@clisp.org> 5459 5460 * gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number. 5461 54622006-06-20 Bruno Haible <bruno@clisp.org> 5463 5464 * format-gcc-internal.c (struct unnumbered_arg): Remove type. 5465 (struct numbered_arg): New type. 5466 (struct spec): Use it. 5467 (isdigit): New macro. 5468 (numbered_arg_compare): New function. 5469 (format_parse, format_free, format_check, format_print): Update to 5470 GCC 4.1 internal format strings. 5471 Reported by Göran Uddeborg <goeran@uddeborg.se>. 5472 54732005-05-23 Bruno Haible <bruno@clisp.org> 5474 5475 * gettext-0.14.5 released. 5476 54772005-05-23 Bruno Haible <bruno@clisp.org> 5478 5479 * gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number. 5480 54812005-05-21 Bruno Haible <bruno@clisp.org> 5482 5483 * format-gcc-internal.c: Update for GCC 4.0. 5484 (FAT_POINTER, FAT_SIZE_LONGLONG, FAT_SIZE_WIDE, FAT_SIZE_MASK): New 5485 enum items. 5486 (FAT_*): Update. 5487 (struct spec): Add uses_err_no field. 5488 (format_parse): Initialize uses_err_no field. Handle %q flag. Handle 5489 'll', 'w' size specifiers. Handle %<, %>, %', %m, %p, %J directives. 5490 (format_check): Also check that the use of err_no is the same. 5491 Based on a patch by Jakub Jelinek <jakub@redhat.com>. 5492 54932005-04-11 Bruno Haible <bruno@clisp.org> 5494 5495 * gettext-0.14.4 released. 5496 54972005-04-11 Bruno Haible <bruno@clisp.org> 5498 5499 * gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number. 5500 55012005-03-14 Bruno Haible <bruno@clisp.org> 5502 5503 * gettext-0.14.3 released. 5504 55052005-03-08 Bruno Haible <bruno@clisp.org> 5506 5507 * gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number. 5508 55092005-02-26 Bruno Haible <bruno@clisp.org> 5510 5511 * format-scheme.c (format_arg_type): Add FAT_COMPLEX. Remove 5512 FAT_FUNCTION. 5513 (make_intersected_element): Simplify also the intersection with 5514 FAT_COMPLEX. 5515 (make_union_element): Simplify also the union with FAT_COMPLEX. 5516 (IIC): New array. 5517 (nocheck_params): Remove function. 5518 (parse_upto): Remove handling of ~W, ~<, ~>. 5519 Implement non-CL handling of ~C, ~I, ~_, ~/, ~T. 5520 Implement handling of ~Y, ~!, ~Q, ~K. 5521 55222005-02-26 Bruno Haible <bruno@clisp.org> 5523 5524 * format-scheme.c (parse_upto): Remove support for ~!. 5525 Reported by Kevin Ryde <user42@zip.com.au>. 5526 55272005-02-24 Bruno Haible <bruno@clisp.org> 5528 5529 * gettext-0.14.2 released. 5530 55312005-02-12 Bruno Haible <bruno@clisp.org> 5532 5533 * Makefile.msvc (gettextpo.lib): Link with intl.lib as well. 5534 55352005-02-12 Bruno Haible <bruno@clisp.org> 5536 5537 * Makefile.msvc (msginit_OBJECTS): Add plural-count.obj. 5538 * Makefile.vms (msginit_OBJECTS): Add plural-count.obj. 5539 55402005-02-10 Bruno Haible <bruno@clisp.org> 5541 5542 * gettext-po.h (po_header_set_field): New declaration. 5543 * gettext-po.c (po_header_set_field): New function. 5544 Suggested by Ross Golder <ross@golder.org>. 5545 55462005-02-10 Bruno Haible <bruno@clisp.org> 5547 5548 * gettext-po.h (LIBGETTEXTPO_VERSION): New macro. 5549 (libgettextpo_version): New declaration. 5550 * gettext-po.c (libgettextpo_version): New variable. 5551 55522005-02-10 Bruno Haible <bruno@clisp.org> 5553 5554 * gettext-po.h (po_message_remove_filepos, po_message_add_filepos): New 5555 declarations. 5556 * gettext-po.c (po_message_remove_filepos, po_message_add_filepos): New 5557 functions. 5558 Suggested by Asgeir Frimannsson <asgeirf@redhat.com>. 5559 55602005-02-10 Bruno Haible <bruno@clisp.org> 5561 5562 * gettext-po.h (po_message_set_extracted_comments): New declaration. 5563 * gettext-po.c (po_message_set_extracted_comments): New function. 5564 Suggested by Asgeir Frimannsson <asgeirf@redhat.com>. 5565 55662005-02-08 Bruno Haible <bruno@clisp.org> 5567 5568 * msginit.c (get_user_email): Cast _() to 'char *', to avoid compiler 5569 warning. 5570 55712005-02-07 Bruno Haible <bruno@clisp.org> 5572 5573 Make the tools work in the tr_TR locale. 5574 * po-charset.c: Include c-strcase.h instead of strcase.h. 5575 (po_charset_canonicalize): Use c_strcasecmp. 5576 * msgcmp.c: Include c-strcase.h instead of strcase.h. 5577 (compare): Use c_strncasecmp. 5578 * msginit.c: Include c-strcase.h instead of strcase.h. 5579 (content_type): Use c_strcasecmp. 5580 * msgmerge.c: Include c-strcase.h instead of strcase.h. 5581 (message_merge, merge): Use c_strncasecmp. 5582 * xgettext.c: Include c-strcase.h instead of strcase.h. 5583 (language_to_extractor): Use c_strcasecmp. 5584 Reported by Recai Oktaş <roktas@omu.edu.tr>. 5585 55862005-02-07 Bruno Haible <bruno@clisp.org> 5587 5588 * project-id: Use LC_ALL=C to protect range expression against 5589 Estonian locale. 5590 55912005-02-06 Bruno Haible <bruno@clisp.org> 5592 5593 Leave #: lines with unknown syntax alone instead of turning them into 5594 plain comments. 5595 * po-hash.h: Remove file. 5596 * po-hash-gen.y: Remove file. 5597 * read-po-abstract.c: Don't include po-hash.h. 5598 (po_parse_comment_filepos, po_parse_comment_solaris_filepos): New 5599 functions. 5600 (po_callback_comment_dispatcher): Call them instead of the old 5601 po_parse_comment_filepos. 5602 * read-stringtable.c: Don't include po-hash.h. 5603 * Makefile.am (noinst_HEADERS): Remove po-hash.h, po-hash-gen.h. 5604 (COMMON_SOURCE): Remove po-hash-gen.y. 5605 (BUILT_SOURCES): Remove po-hash-gen.c, po-hash-gen.h. 5606 * Makefile.msvc (OBJECTS): Remove po-hash-gen.obj. 5607 (po-hash-gen.obj): Remove rule. 5608 * Makefile.vms (OBJECTS): Remove po-hash-gen.obj. 5609 (po-hash-gen.obj): Remove rule. 5610 * FILES: Update. 5611 Reported by David Fraser <davidf@sjsoft.com>. 5612 56132005-02-04 Bruno Haible <bruno@clisp.org> 5614 5615 * plural-table.c (plural_table): Add an entry about Vietnamese. 5616 Explanations by Clytie Siddall <clytie@riverland.net.au>. 5617 56182005-01-29 Bruno Haible <bruno@clisp.org> 5619 5620 * Makefile.am (msgcmp_LDADD, msgfmt_LDADD, msgmerge_LDADD, 5621 msgunfmt_LDADD, xgettext_LDADD, msgattrib_LDADD, msgcat_LDADD, 5622 msgcomm_LDADD, msgconv_LDADD, msgen_LDADD, msgexec_LDADD, 5623 msgfilter_LDADD, msggrep_LDADD, msguniq_LDADD): Add INTL_MACOSX_LIBS. 5624 56252005-01-27 Bruno Haible <bruno@clisp.org> 5626 5627 * msgfmt.c (formatstring_error_logger): Cast the fprrintf argument, 5628 to make it work on big-endian 64-bit machines. 5629 56302005-01-16 Bruno Haible <bruno@clisp.org> 5631 5632 Support for Scheme. 5633 * message.h (format_type): New enum value 'format_scheme'. 5634 (NFORMATS): Increment. 5635 * message.c (format_language): Add format_scheme entry. 5636 (format_language_pretty): Likewise. 5637 * format.h (formatstring_scheme): New declaration. 5638 * format-scheme.c: New file, based on format-lisp.c. 5639 * format.c (formatstring_parsers): Add formatstring_scheme. 5640 * x-scheme.h: New file. 5641 * x-scheme.c: New file. 5642 * xgettext.c: Include x-scheme.h. 5643 (flag_table_scheme): New variable. 5644 (main): Invoke init_flag_table_scheme, x_scheme_extract_all, 5645 x_scheme_keyword. 5646 (usage): Mention Scheme source language. 5647 (xgettext_record_flag): Handle format_scheme. 5648 (language_to_extractor): Add Scheme rule. 5649 (extension_to_language): Add Scheme rule. 5650 * Makefile.am (noinst_HEADERS): Add x-scheme.h. 5651 (FORMAT_SOURCE): Add format-scheme.c. 5652 (xgettext_SOURCES): Add x-scheme.c. 5653 * Makefile.msvc (OBJECTS): Add format-scheme.obj. 5654 (xgettext_OBJECTS): Add x-scheme.obj. 5655 (format-scheme.obj, x-scheme.obj): New rules. 5656 * Makefile.vms (OBJECTS): Add format-scheme.obj. 5657 (xgettext_OBJECTS): Add x-scheme.obj. 5658 (format-scheme.obj, x-scheme.obj): New rules. 5659 * FILES: Update. 5660 56612005-01-08 Bruno Haible <bruno@clisp.org> 5662 5663 * msggrep.c (grep_args, grep_path, grep_argv): Remove variables. 5664 (struct grep_task): New type. 5665 (grep_task): New variable. 5666 (main): Initialize grep_task instead of grep_args. Change processing 5667 of options 'E', 'F' to set a matcher, of 'e', 'f' to append to the 5668 pattern string, and of 'i' to set a boolean. Compile the patterns. 5669 (is_string_selected): Execute a compiled pattern instead of calling 5670 the grep program. 5671 (is_message_selected): Update. 5672 * Makefile.am (AM_CPPFLAGS): Add -I option for libgrep. 5673 (LIBGREP): New variable. 5674 (msggrep_LDADD): Add $(LIBGREP). 5675 * Makefile.msvc (INCLUDES): Add libgrep directory. 5676 (msggrep.exe): Link with libgrep. 5677 * Makefile.vms (INCLUDES): Add libgrep directory. 5678 (msggrep.exe): Link with libgrep. 5679 56802005-01-09 Bruno Haible <bruno@clisp.org> 5681 5682 * msgl-ascii.h (is_ascii_msgdomain_list): New declaration. 5683 * msgl-ascii.c (is_ascii_msgdomain_list): New function. 5684 * x-po.c (header_charset): New variable. 5685 (extract_add_message): When seeing the header entry, store the charset 5686 in header_charset. 5687 (extract): Store the value of header_charset in the new constructed 5688 header entry. 5689 * xgettext.c (main): Convert the existing PO file to UTF-8 if it was 5690 not entirely ASCII. 5691 Reported by Jörg Schilling <schilling@fokus.fraunhofer.de>. 5692 56932005-01-08 Bruno Haible <bruno@clisp.org> 5694 5695 * msggrep.c (usage): Explain COMMENT-PATTERN syntax as well. 5696 56972005-01-06 Bruno Haible <bruno@clisp.org> 5698 5699 * x-tcl.c (read_word): Ignore non-space whitespace at the beginning. 5700 Reported by William J Poser <wjposer@ldc.upenn.edu>. 5701 57022005-01-06 Bruno Haible <bruno@clisp.org> 5703 5704 * write-csharp.c (msgdomain_write_csharp): Don't call fclose after 5705 fwriteerror. 5706 * write-java.c (msgdomain_write_java): Likewise. 5707 * write-mo.c (msgdomain_write_mo): Likewise. 5708 * write-po.c (msgdomain_list_print): Likewise. 5709 * write-qt.c (msgdomain_write_qt): Likewise. 5710 * write-resources.c (execute_writing_input): Likewise. 5711 * write-tcl.c (msgdomain_write_tcl): Likewise. 5712 57132005-01-05 Bruno Haible <bruno@clisp.org> 5714 5715 * msgattrib.c (main): Update year in --version output. 5716 * msgcat.c (main): Likewise. 5717 * msgcmp.c (main): Likewise. 5718 * msgcomm.c (main): Likewise. 5719 * msgconv.c (main): Likewise. 5720 * msgen.c (main): Likewise. 5721 * msgexec.c (main): Likewise. 5722 * msgfilter.c (main): Likewise. 5723 * msgfmt.c (main): Likewise. 5724 * msggrep.c (main): Likewise. 5725 * msginit.c (main): Likewise. 5726 * msgmerge.c (main): Likewise. 5727 * msgunfmt.c (main): Likewise. 5728 * msguniq.c (main): Likewise. 5729 * xgettext.c (main): Likewise. 5730 57312005-01-07 Bruno Haible <bruno@clisp.org> 5732 5733 * gettext-po.c (po_file_read): Interpret "-" and "/dev/stdin" as 5734 denoting stdin. 5735 Suggested by Asgeir Frimannsson <asgeirf@redhat.com>. 5736 57372004-11-29 Bruno Haible <bruno@clisp.org> 5738 5739 * Makefile.am (libgettextpo_la_LDFLAGS): Add @LTLIBINTL@ @LTLIBICONV@. 5740 Reported by Sam Steingold <sds@gnu.org>. 5741 57422004-10-01 Guido Flohr <guido@imperia.net> 5743 5744 * x-perl.c (x_perl_prelex): Recognize function names starting with '-'. 5745 Reported by Ryan Anderson <ryan@autoweb.net>. 5746 57472004-09-16 Bruno Haible <bruno@clisp.org> 5748 5749 * format.h (formatstring_error_logger_t): Modify decl for GCC <= 3.0. 5750 Reported by Jens A. Tkotz <jens@peino.de>. 5751 57522004-09-11 Bruno Haible <bruno@clisp.org> 5753 5754 * Makefile.am (msginit_SOURCES): Add plural-count.c. 5755 * msginit.c (update_msgstr_plurals): New function. 5756 (main): Call it. 5757 * msgmerge.c (match_domain): Provide the appropriate number of plural 5758 forms for messages that don't occur in the Def.po file. 5759 Reported by Jens A. Tkotz <jens@peino.de>. 5760 57612004-09-06 Bruno Haible <bruno@clisp.org> 5762 5763 * format.h (formatstring_error_logger_t): New type. 5764 (struct formatstring_parser): Change calling convention of 'check' 5765 method. 5766 (check_msgid_msgstr_format): New declaration. 5767 * format-awk.c (format_check): Use error_logger argument instead of 5768 noisy and error_at_line. 5769 * format-c.c (format_check): Likewise. 5770 * format-csharp.c (format_check): Likewise. 5771 * format-elisp.c (format_check): Likewise. 5772 * format-gcc-internal.c (format_check): Likewise. 5773 * format-java.c (format_check): Likewise. 5774 * format-librep.c (format_check): Likewise. 5775 * format-lisp.c (format_check): Likewise. 5776 * format-pascal.c (format_check): Likewise. 5777 * format-perl.c (format_check): Likewise. 5778 * format-perl-brace.c (format_check): Likewise. 5779 * format-php.c (format_check): Likewise. 5780 * format-python.c (format_check): Likewise. 5781 * format-qt.c (format_check): Likewise. 5782 * format-sh.c (format_check): Likewise. 5783 * format-tcl.c (format_check): Likewise. 5784 * format-ycp.c (format_check): Likewise. 5785 * format.c (check_msgid_msgstr_format): New function, extracted from 5786 msgfmt.c. 5787 * msgfmt.c (curr_msgid_pos): New variable. 5788 (formatstring_error_logger): New function. 5789 (check_pair): Use check_msgid_msgstr_format, formatstring_error_logger. 5790 * msgmerge.c (msgfmt_check_pair_fails): Update. 5791 * gettext-po.h (po_message_check_format): New declaration. 5792 * gettext-po.c (po_error_logger, po_message_check_format): New 5793 functions. 5794 57952004-09-05 Bruno Haible <bruno@clisp.org> 5796 5797 * po-error.h: New file. 5798 * po-error.c: New file. 5799 * po-charset.c: Include po-error.h. 5800 (po_lex_charset_set): Use po_multiline_warning instead of 5801 multiline_warning. 5802 * po-lex.h: Include po-error.h. 5803 (po_gram_error): Use po_error instead of error. 5804 (po_gram_error_at_line): Use po_error_at_line instead of error_at_line. 5805 * po-lex.c (po_gram_error): Use po_error instead of error. 5806 (po_gram_error_at_line): Use po_error_at_line instead of error_at_line. 5807 (mbfile_getc, lex_getc): Use po_error instead of error. 5808 * read-po-abstract.c (po_scan): Likewise. 5809 * write-po.c: Include po-error.h instead of error.h. 5810 (wrap): Use po_error instead of error. 5811 (message_print, message_print_obsolete): Use po_multiline_warning 5812 instead of multiline_warning. 5813 (msgdomain_list_print): Use po_error instead of error, po_error_at_line 5814 instead of error_at_line. 5815 * str-list.h (string_list_join): New declaration. 5816 * str-list.c (string_list_join): New function. 5817 * message.h (message_list_insert_at): New declaration. 5818 * message.c (message_list_insert_at): New function. 5819 * gettext-po.h (po_filepos_t): New type. 5820 (struct po_error_handler, po_error_handler_t): New types. 5821 (po_file_create): New declaration. 5822 (po_file_read): Add handler argument. 5823 (po_file_write, po_message_insert, po_message_create, 5824 po_message_set_msgid, po_message_set_msgid_plural, 5825 po_message_set_msgstr, po_message_set_msgstr_plural, 5826 po_message_comments, po_message_set_comments, 5827 po_message_extracted_comments, po_message_filepos, 5828 po_message_set_obsolete, po_message_set_fuzzy, po_message_set_format, 5829 po_filepos_file, po_filepos_start_line): New declarations. 5830 * gettext-po.c (po_file_create): New function. 5831 (po_file_read): Add handler argument. Keep an old version for backward 5832 compatibility. 5833 (po_file_write): New function. 5834 (po_message_iterator): Store more information, to make 5835 po_message_insert possible. 5836 (po_message_iterator_free): Update. 5837 (po_next_message): Don't crash if iterator->mlp is NULL. 5838 (po_message_insert): New function. 5839 (po_message_create): New function. 5840 (po_message_set_msgid, po_message_set_msgid_plural, 5841 po_message_set_msgstr, po_message_set_msgstr_plural, 5842 po_message_comments, po_message_set_comments, 5843 po_message_extracted_comments, po_message_filepos, 5844 po_message_set_obsolete, po_message_set_fuzzy, po_message_set_format, 5845 po_filepos_file, po_filepos_start_line): New functions. 5846 * Makefile.am (noinst_HEADERS): Add po-error.h. 5847 (COMMON_SOURCE): Add po-error.c. 5848 * Makefile.msvc (OBJECTS): Add po-error.obj. 5849 (po-error.obj): New rule. 5850 * Makefile.vms (OBJECTS): Add po-error.obj. 5851 (po-error.obj): New rule. 5852 * FILES: Update. 5853 58542004-09-03 Bruno Haible <bruno@clisp.org> 5855 5856 * Makefile.am (msginit_LDADD): Use the INTL_MACOSX_LDFLAGS. 5857 58582004-08-30 Bruno Haible <bruno@clisp.org> 5859 5860 * plural-table.c (plural_table): Czech is now like Slovak. 5861 Reported by Stepan Kasal <kasal@ucw.cz>. 5862 58632004-06-23 Bruno Haible <bruno@clisp.org> 5864 5865 * x-c.c (phase1_getc): Fix phase0_getc invocation. 5866 Reported by Matt Dreezer <matthew.dreezer@edl.uk.eds.com>. 5867 58682004-05-14 Bruno Haible <bruno@clisp.org> 5869 5870 * format-java.c (message_format_parse): Fix argument of freesa() calls. 5871 58722004-03-19 Bruno Haible <bruno@clisp.org> 5873 5874 * Makefile.am (install-exec-clean): Don't remove libgettextsrc.a on 5875 AIX. 5876 Reported by Kouichi Hashikawa <z01a7ksy@cs.ecip.tohoku.ac.jp>. 5877 58782004-03-14 Bruno Haible <bruno@clisp.org> 5879 5880 * format-lisp.c (parse_upto): Add integer restriction for the dispatch 5881 argument in ~[...~]. 5882 58832004-03-02 Bruno Haible <bruno@clisp.org> 5884 5885 * read-csharp.c (msgdomain_read_csharp): Extend the lang -> frobbedlang 5886 mapping so as to support Serbian and Uzbek locales. 5887 * write-csharp.c (msgdomain_write_csharp): Likewise. 5888 Reported by Jorn Baayen <jbaayen@dds.nl>. 5889 58902004-02-27 Bruno Haible <bruno@clisp.org> 5891 5892 * plural-table.c (plural_table): Add an entry about Serbian. 5893 Reported by Danilo Segan <danilo@gnome.org>. 5894 58952004-01-29 Bruno Haible <bruno@clisp.org> 5896 5897 * gettext-0.14.1 released. 5898 58992004-01-28 Bruno Haible <bruno@clisp.org> 5900 5901 * gettext-0.14 released. 5902 59032004-01-18 Bruno Haible <bruno@clisp.org> 5904 5905 * msginit.c (catalogname_for_locale): Add entries for Akan, Avaric, 5906 Bambara, Cree, Divehi (Maldivian), Éwé, Igbo, Kongo, Kanuri, Ganda, 5907 Luba-Katanga, Ojibwa, Venda. 5908 (englishname_of_language): Likewise, and also for Fulah (Fulfulde). 5909 59102004-01-09 Bruno Haible <bruno@clisp.org> 5911 5912 * format.h (struct formatstring_parser): Add 'translated' argument to 5913 parse function. 5914 (get_sysdep_c_format_directives): Renamed from 5915 get_c99_format_directives. Add 'translated' argument. Change meaning 5916 of endpos in returned array. 5917 * format-c.c (struct spec): Rename field c99_directives to 5918 sysdep_directives, and c99_directives_count to sysdep_directives_count. 5919 (format_parse): Add 'translated' argument. Handle 'I' flag. Store the 5920 pointer past the '>' character instead of the pointer to the '>'. 5921 (format_c_parse, format_objc_parse): Add 'translated' argument. 5922 (get_sysdep_c_format_directives): Renamed from 5923 get_c99_format_directives. Add 'translated' argument. 5924 * format-awk.c (format_parse): Add 'translated' argument. 5925 * format-csharp.c (format_parse): Likewise. 5926 * format-elisp.c (format_parse): Likewise. 5927 * format-gcc-internal.c (format_parse): Likewise. 5928 * format-java.c (format_parse): Likewise. 5929 * format-librep.c (format_parse): Likewise. 5930 * format-lisp.c (format_parse): Likewise. 5931 * format-pascal.c (format_parse): Likewise. 5932 * format-perl-brace.c (format_parse): Likewise. 5933 * format-perl.c (format_parse): Likewise. 5934 * format-php.c (format_parse): Likewise. 5935 * format-python.c (format_parse): Likewise. 5936 * format-qt.c (format_parse): Likewise. 5937 * format-sh.c (format_parse): Likewise. 5938 * format-tcl.c (format_parse): Likewise. 5939 * format-ycp.c (format_parse): Likewise. 5940 * msgfmt.c (check_pair): Update. 5941 * msgmerge.c (msgfmt_check_pair_fails): Likewise. 5942 * read-mo.c (get_sysdep_string): Don't add '<'...'>' around segments 5943 of length 1. 5944 (read_mo_file): Treat major revision 1 like major revision 0. 5945 * write-mo.c (write_table): Update. Use major revision 1 if "I" occurs 5946 among the sysdep segments. 5947 * xgettext.c (set_format_flags_from_context, remember_a_message, 5948 remember_a_message_plural): Update. 5949 59502004-01-14 Bruno Haible <bruno@clisp.org> 5951 5952 * msginit.c (fill_header): Avoid a NULL pointer access when the header 5953 has no comment attached to it. 5954 Reported by Josep Puigdemont <baldrick@terra.es>. 5955 59562004-01-09 Bruno Haible <bruno@clisp.org> 5957 5958 * msgattrib.c (main): Update year in --version output. 5959 * msgcat.c (main): Likewise. 5960 * msgcmp.c (main): Likewise. 5961 * msgcomm.c (main): Likewise. 5962 * msgconv.c (main): Likewise. 5963 * msgen.c (main): Likewise. 5964 * msgexec.c (main): Likewise. 5965 * msgfilter.c (main): Likewise. 5966 * msgfmt.c (main): Likewise. 5967 * msggrep.c (main): Likewise. 5968 * msginit.c (main): Likewise. 5969 * msgmerge.c (main): Likewise. 5970 * msgunfmt.c (main): Likewise. 5971 * msguniq.c (main): Likewise. 5972 * xgettext.c (main): Likewise. 5973 59742003-12-29 Bruno Haible <bruno@clisp.org> 5975 5976 * xgettext.h: Include stdlib.h, str-list.h. 5977 (struct refcounted_string_list_ty): New type. 5978 (add_reference, drop_reference): New functions. 5979 (savable_comment, savable_comment_add, savable_comment_reset, 5980 savable_comment_to_xgettext_comment): New declarations. 5981 * xgettext.c (savable_comment): New variable. 5982 (savable_comment_add, savable_comment_reset, 5983 savable_comment_to_xgettext_comment): New functions. 5984 * x-java.c (struct refcounted_string_list_ty, comment, add_reference, 5985 drop_reference, x_java_comment_add, x_java_comment_reset, 5986 x_java_comment_to_xgettext_comment): Remove. Use replacement from 5987 xgettext.{h,c} instead. 5988 * x-csharp.c (struct refcounted_string_list_ty, comment, add_reference, 5989 drop_reference, x_csharp_comment_add, x_csharp_comment_reset, 5990 x_csharp_comment_to_xgettext_comment): Remove. Use replacement from 5991 xgettext.{h,c} instead. 5992 * x-c.c (comment_line_end): Call savable_comment_add instead of 5993 xgettext_comment_add. 5994 (struct token_ty): Add 'comment' field. 5995 (free_token): Free it. 5996 (phase5_get): Initialize token's 'comment' field. 5997 (phase6_get): Call savable_comment_reset instead of 5998 xgettext_comment_reset. 5999 (phase8a_get): Initialize token's 'comment' field. 6000 (phase8b_get): Call savable_comment_reset instead of 6001 xgettext_comment_reset. 6002 (phase8c_get): In @"...", use the comment of the first token, not of 6003 the second. 6004 (struct xgettext_token_ty): Add 'comment' field. 6005 (x_c_lex): Deal with the token's comment. 6006 (extract_parenthesized): Call savable_comment_to_xgettext_comment and 6007 savable_comment_reset. Free the token's comment field. 6008 * x-python.c (comment_line_end): Call savable_comment_add instead of 6009 xgettext_comment_add. 6010 (struct token_ty): Add 'comment' field. 6011 (phase5_get): Call savable_comment_reset instead of 6012 xgettext_comment_reset. Initialize token's 'comment' field. 6013 (extract_parenthesized): Call savable_comment_to_xgettext_comment and 6014 savable_comment_reset. Free the token's comment field. 6015 60162003-12-28 Bruno Haible <bruno@clisp.org> 6017 6018 * read-mo.h (read_mo_file): Change 'fn' into 'filename'. 6019 * read-mo.c (read_mo_file): Likewise. 6020 60212003-12-28 Bruno Haible <bruno@clisp.org> 6022 6023 * write-resources.h: New file. 6024 * write-resources.c: New file. 6025 * msgfmt.cs: New file. 6026 * msgfmt.c: Include write-resources.h. 6027 (csharp_resources_mode): New variable. 6028 (long_options): Add --csharp-resources. 6029 (main): Handle --csharp-resources. More generic code for detection of 6030 contradicting modes. Invoke msgdomain_write_csharp_resources. 6031 (usage): Document --csharp-resources option. 6032 (msgfmt_set_domain): Update. 6033 * read-resources.h: New file. 6034 * read-resources.c: New file. 6035 * msgunfmt.cs (DumpResource): Add a constructor that dumps a .resources 6036 file. 6037 (Main): Invoke it when only one argument is given. 6038 * msgunfmt.c: Include read-resources.h. 6039 (csharp_resources_mode): New variable. 6040 (long_options): Add --csharp-resources. 6041 (main): Handle --csharp-resources. More generic code for detection of 6042 contradicting modes. Invoke read_one_file instead of read_mo_file. 6043 (usage): Document --csharp-resources option. 6044 (read_one_file): New function. 6045 * Makefile.am (noinst_HEADERS): Add read-resources.h and 6046 write-resources.h. 6047 (msgfmt_SOURCES): Add write-resources.c. 6048 (msgunfmt_SOURCES): Add read-resources.c. 6049 (EXTRA_DIST): Add msgfmt.cs. 6050 (CLEANFILES): Add msgfmt.net.exe. 6051 (msgfmt.net.exe): New rule. 6052 (all-csharp-yes): Depend on it. 6053 (install-exec-csharp-yes): Also install msgfmt.net.exe. 6054 (uninstall-csharp-yes): Also uninstall msgfmt.net.exe. 6055 * Makefile.msvc (msgfmt_OBJECTS): Add write-resources.obj. 6056 (msgunfmt_OBJECTS): Add read-resources.obj. 6057 (write-resources.obj, read-resources.obj): New rules. 6058 * Makefile.vms (msgfmt_OBJECTS): Add write-resources.obj. 6059 (msgunfmt_OBJECTS): Add read-resources.obj. 6060 (write-resources.obj, read-resources.obj): New rules. 6061 * FILES: Update. 6062 60632003-12-26 Bruno Haible <bruno@clisp.org> 6064 6065 Support for C#. 6066 * write-csharp.h: New file. 6067 * write-csharp.c: New file. 6068 * msgfmt.c: Include write-csharp.h. 6069 (csharp_mode, csharp_resource_name, csharp_locale_name, 6070 csharp_base_directory): New variables. 6071 (long_options): Add option --csharp. 6072 (main): Handle option --csharp. Initialize csharp_resource_name, 6073 csharp_locale_name, csharp_base_directory. Perform checks for C# mode. 6074 Invoke msgdomain_write_csharp. 6075 (usage): Document --csharp option and C# mode. 6076 (msgfmt_set_domain): Ignore in C# mode. 6077 * read-csharp.h: New file. 6078 * read-csharp.c: New file. 6079 * msgunfmt.cs: New file. 6080 * msgunfmt.c: Include read-csharp.h. 6081 (csharp_mode, csharp_resource_name, csharp_locale_name, 6082 csharp_base_directory): New variables. 6083 (long_options): Add option --csharp. 6084 (main): Handle option --csharp. Initialize csharp_resource_name, 6085 csharp_locale_name, csharp_base_directory. Perform checks for C# mode. 6086 Invoke msgdomain_read_csharp. 6087 (usage): Document --csharp option and C# mode. 6088 * Makefile.am (noinst_HEADERS): Add read-csharp.h, write-csharp.h. 6089 (CSHARPCOMP, CSHARPCOMPFLAGS): New variables. 6090 (msgfmt_SOURCES): Add write-csharp.c. 6091 (msgunfmt_SOURCES): Add read-csharp.c. 6092 (EXTRA_DIST): Add msgunfmt.cs. 6093 (CLEANFILES): Add msgunfmt.net.exe. 6094 (all-csharp-yes, all-csharp-no): New rules. 6095 (all-local): Depend on them. 6096 (msgunfmt.net.exe): New rule. 6097 (install-exec-csharp-yes, install-exec-csharp-no): New rules. 6098 (install-exec-local): Depend on them. 6099 (installdirs-csharp): New rule. 6100 (installdirs-local): Depend on it. 6101 (uninstall-csharp-yes, uninstall-csharp-no): New rules. 6102 (uninstall-local): Depend on it. 6103 * Makefile.msvc (msgfmt_OBJECTS): Add write-csharp.obj. 6104 (msgunfmt_OBJECTS): Add read-csharp.obj. 6105 (write-csharp.obj, read-csharp.obj): New rules. 6106 * Makefile.vms (msgfmt_OBJECTS): Add write-csharp.obj. 6107 (msgunfmt_OBJECTS): Add read-csharp.obj. 6108 (write-csharp.obj, read-csharp.obj): New rules. 6109 * FILES: Update. 6110 61112003-12-26 Bruno Haible <bruno@clisp.org> 6112 6113 * read-java.c (msgdomain_read_java): Relocate also the GETTEXTJAR 6114 value. 6115 * urlget.c (fetch): Likewise. 6116 61172003-12-26 Bruno Haible <bruno@clisp.org> 6118 6119 * write-java.c (write_java_code): Emit a static method 6120 'get_msgid_plural_table' instead of a static field 'plural'. 6121 * gnu/gettext/DumpResource.java (DumpResource.dump): Exploit a 6122 'get_msgid_plural_table' method if it exists. 6123 61242003-12-14 Bruno Haible <bruno@clisp.org> 6125 6126 * message.h (format_type): New enum value 'format_csharp'. 6127 (NFORMATS): Increment. 6128 * message.c (format_language): Add format_csharp entry. 6129 (format_language_pretty): Likewise. 6130 * format.h (formatstring_csharp): New declaration. 6131 * format-csharp.c: New file. 6132 * format.c (formatstring_parsers): Add formatstring_csharp. 6133 * x-csharp.h: New file. 6134 * x-csharp.c: New file. 6135 * xgettext.c: Include x-csharp.h. 6136 (flag_table_csharp): New variable. 6137 (main): Invoke init_flag_table_csharp, x_csharp_extract_all, 6138 x_csharp_keyword. 6139 (usage): Mention C# source language. 6140 (xgettext_record_flag): Handle format_csharp. 6141 (language_to_extractor): Add C# rule. 6142 (extension_to_language): Add C# rule. 6143 * Makefile.am (noinst_HEADERS): Add x-csharp.h. 6144 (FORMAT_SOURCE): Add format-csharp.c. 6145 (xgettext_SOURCES): Add x-csharp.c. 6146 * Makefile.msvc (OBJECTS): Add format-csharp.obj. 6147 (xgettext_OBJECTS): Add x-csharp.obj. 6148 (format-csharp.obj, x-csharp.obj): New rules. 6149 * Makefile.vms (OBJECTS): Add format-csharp.obj. 6150 (xgettext_OBJECTS): Add x-csharp.obj. 6151 (format-csharp.obj, x-csharp.obj): New rules. 6152 * FILES: Update. 6153 61542003-12-28 Bruno Haible <bruno@clisp.org> 6155 6156 * msgexec.c (process_string): Pass ignore_sigpipe = false. 6157 * msgfilter.c (process_string): Likewise. 6158 * msggrep.c (is_string_selected): Likewise. 6159 * msginit.c (project_id, project_id_version, get_user_email, 6160 language_team_address): Likewise. 6161 * read-java.c (execute_and_read_po_output): Likewise. 6162 * read-tcl.c (msgdomain_read_tcl): Likewise. 6163 * urlget.c (execute_it): Pass ignore_sigpipe = true. 6164 (fetch): Pass ignore_sigpipe = true when fetching the file, = false 6165 otherwise. 6166 61672003-12-14 Bruno Haible <bruno@clisp.org> 6168 6169 * x-c.c (SIZEOF): New macro. 6170 (phase1_ungetc): Verify that the pushback buffer's size is sufficient. 6171 (phase2_ungetc): Likewise. 6172 (phase3_ungetc): Likewise. 6173 (phase5_unget): Likewise. 6174 (phase6_unget): Likewise. 6175 * x-java.c (SIZEOF): New macro. 6176 (phase1_ungetc): Verify that the pushback buffer's size is sufficient. 6177 (phase2_ungetc): Likewise. 6178 (phase3_ungetc): Likewise. 6179 (phase5_unget): Likewise. 6180 (phase6_unget): Likewise. 6181 * x-php.c (SIZEOF): New macro. 6182 (phase1_ungetc): Verify that the pushback buffer's size is sufficient. 6183 (phase2_ungetc): Likewise. 6184 (phase3_ungetc): Likewise. 6185 * x-python.c (SIZEOF): New macro. 6186 (phase1_ungetc): Verify that the pushback buffer's size is sufficient. 6187 (phase5_unget): Likewise. 6188 * x-sh.c (SIZEOF): New macro. 6189 (phase1_ungetc): Verify that the pushback buffer's size is sufficient. 6190 (phase2_ungetc): Likewise. 6191 * x-smalltalk.c (SIZEOF): New macro. 6192 (phase2_unget): Verify that the pushback buffer's size is sufficient. 6193 * x-tcl.c (SIZEOF): New macro. 6194 (phase1_ungetc): Verify that the pushback buffer's size is sufficient. 6195 (phase2_ungetc): Likewise. 6196 * x-ycp.c (SIZEOF): New macro. 6197 (phase2_unget): Verify that the pushback buffer's size is sufficient. 6198 61992003-12-14 Bruno Haible <bruno@clisp.org> 6200 6201 * x-c.c (phase1_pushback): Reduce size to 2. 6202 (phase2_pushback): Reduce size to 1. 6203 (phase3_pushback): Reduce size to 2. 6204 (phase5_pushback): Reduce size to 1. 6205 (phase6_pushback): Reduce size to 2. 6206 * x-java.c (phase2_pushback): Reduce size to 1. 6207 (phase3_pushback): Reduce size to 2. 6208 (phase5_pushback): Reduce size to 3. 6209 (phase6_pushback): Reduce size to 2. 6210 * x-php.c (phase1_pushback): Reduce size to 2. 6211 * x-python.c (max): New macro. 6212 (phase1_pushback): Reduce size to UNINAME_MAX + 3. 6213 (phase5_pushback): Reduce size to 1. 6214 * x-sh.c (phase1_pushback): Reduce size to 1. 6215 (phase2_pushback): Reduce size to 2. 6216 * x-smalltalk.c (phase2_pushback): Reduce size to 1. 6217 * x-tcl.c (phase1_pushback): Reduce size to 1. 6218 (phase2_pushback): Reduce size to 2. 6219 62202003-12-12 Bruno Haible <bruno@clisp.org> 6221 6222 Assume automake-1.8. 6223 * Makefile.am (install-exec-local): Renamed from install-exec-am. 6224 62252003-11-30 Bruno Haible <bruno@clisp.org> 6226 6227 * format-java.c: Include xallocsa.h. 6228 (message_format_parse): Use xallocsa instead of alloca. 6229 (choice_format_parse): Likewise. 6230 * msgl-cat.c: Include xallocsa.h. 6231 (catenate_msgdomain_list): Use xallocsa instead of alloca. 6232 * msgl-charset.c: Include xallocsa.h. 6233 (compare_po_locale_charsets): Use xallocsa instead of alloca. 6234 * msgl-iconv.c: Include xallocsa.h. 6235 (iconv_message_list): Use xallocsa instead of alloca. 6236 * po-charset.c: Include xallocsa.h. 6237 (po_lex_charset_set): Use xallocsa instead of alloca. 6238 * read-tcl.c: Include xallocsa.h. 6239 (msgdomain_read_tcl): Use xallocsa instead of alloca. 6240 * write-java.c: Include xallocsa.h. 6241 (compute_hashsize, msgdomain_write_java): Use xallocsa instead of 6242 alloca. 6243 * write-mo.c: Include xallocsa.h. 6244 (write_table): Use xallocsa instead of alloca. 6245 * write-po.c: Include xallocsa.h. 6246 (msgdomain_list_print_po): Use xallocsa instead of alloca. 6247 * write-tcl.c: Include xallocsa.h. 6248 (msgdomain_write_tcl): Use xallocsa instead of alloca. 6249 * msggrep.c: Include xallocsa.h. 6250 (is_message_selected): Use xallocsa instead of alloca. 6251 * msginit.c: Include xallocsa.h. 6252 (subst_string): Use xallocsa instead of alloca. 6253 * msgmerge.c: Include obstack.h. 6254 (obstack_chunk_alloc, obstack_chunk_free): New macros. 6255 (message_merge): Use obstack_alloc instead of alloca. 6256 * xgettext.c: Include xallocsa.h. 6257 (flag_context_list_table_insert): Use xallocsa instead of alloca. 6258 62592003-12-17 Bruno Haible <bruno@clisp.org> 6260 6261 * gettext-0.13.1 released. 6262 62632003-12-14 Bruno Haible <bruno@clisp.org> 6264 6265 * x-sh.c (phase2_getc): Call phase1_ungetc instead of phase2_ungetc: 6266 The next phase2_getc invocation must return QUOTED('"'), not '"'. 6267 62682003-12-14 Bruno Haible <bruno@clisp.org> 6269 6270 * x-c.c (phase7_getc): Remove dead code. 6271 * x-java.c (accumulate_escaped): More precise error message. 6272 62732003-12-02 Bruno Haible <bruno@clisp.org> 6274 6275 * msginit.c (catalogname_for_locale): Treat sr_CS like sr_YU. 6276 62772003-11-30 Bruno Haible <bruno@clisp.org> 6278 6279 * gettext-0.13 released. 6280 62812003-11-28 Bruno Haible <bruno@clisp.org> 6282 6283 * xgettext.c (set_format_flags_from_context): Add casts, to make it 6284 compile in C++ mode. 6285 62862003-11-22 Bruno Haible <bruno@clisp.org> 6287 6288 * x-c.c (phase4_getc): Skip leading whitespace in C++ style comments 6289 as well. 6290 * x-sh.c (read_word): Skip leading whitespace in comments. 6291 * x-lisp.c (read_object): Skip leading whitespace in single-line 6292 comments as well. 6293 * x-elisp.c (read_object): Skip leading whitespace in comments. 6294 * x-librep.c (read_object): Skip leading whitespace in single-line 6295 comments as well. 6296 * x-java.c (phase4_getc): Skip leading whitespace in C++ style comments 6297 as well. 6298 * x-awk.c (phase2_getc): Skip leading whitespace in comments. 6299 * x-ycp.c (phase2_getc): Skip leading whitespace in single-line 6300 comments as well. 6301 * x-tcl.c (read_command): Skip leading whitespace in comments. 6302 63032003-11-24 Bruno Haible <bruno@clisp.org> 6304 6305 * format-lisp.c (check_params): Use ngettext for one of the messages. 6306 Reported by Rafał Maszkowski <rzm@icm.edu.pl>. 6307 63082003-11-15 Bruno Haible <bruno@clisp.org> 6309 6310 * Makefile.am (AM_CPPFLAGS): Renamed from INCLUDES. 6311 63122003-11-09 Bruno Haible <bruno@clisp.org> 6313 6314 * msginit.c (main): Drop the blank line in --no-translator mode. 6315 63162003-11-07 Bruno Haible <bruno@clisp.org> 6317 6318 * xgettext.c (remember_a_message): Omit the programmer comments of a 6319 duplicated msgid only if they are redundant. 6320 Reported by Christian Neumair <chris@gnome-de.org>. 6321 63222003-11-05 Bruno Haible <bruno@clisp.org> 6323 6324 * user-email.sh.in: Renamed from user-email.in. Internationalize, use 6325 localedir and gettext. 6326 * FILES: Update. 6327 63282003-10-23 Bruno Haible <bruno@clisp.org> 6329 6330 * read-stringtable.c (read_string, stringtable_parse): Cast 6331 gram_pos.line_number to 'unsigned long'. 6332 * x-sh.c (read_word): Case line_number to 'unsigned long'. 6333 63342003-10-21 Bruno Haible <bruno@clisp.org> 6335 6336 * message.h (message_list_msgids_changed): New declaration. 6337 * message.c (message_list_msgids_changed): New function. 6338 * msgl-iconv.c (iconv_message_list): Update the message list's hash 6339 table if it happens to contain non-ASCII msgids. 6340 63412003-10-19 Bruno Haible <bruno@clisp.org> 6342 6343 * message.h (format_type): New enum value 'format_qt'. 6344 (NFORMATS): Increment. 6345 * message.c (format_language): Add format_qt entry. 6346 (format_language_pretty): Likewise. 6347 * format.h (formatstring_qt): New declaration. 6348 * format-qt.c: New file. 6349 * format.c (formatstring_parsers): Add formatstring_qt. 6350 * xgettext.c (recognize_format_qt): New variable. 6351 (long_options): Add option "--qt". 6352 (main): Handle --qt option. Determine the extractor only after option 6353 processing is complete. 6354 (usage): Document --qt option. 6355 (xgettext_record_flag): Handle format_qt. 6356 (language_to_extractor): For C++, return a different extractor when 6357 --qt was specified. 6358 * write-qt.h: New file. 6359 * write-qt.c: New file. 6360 * msgfmt.c: Include write-qt.h. 6361 (qt_mode): New variable. 6362 (long_options): Add option "--qt". 6363 (main): Handle --qt option. More checks for contradicting options. 6364 Call msgdomain_write_qt. 6365 (usage): Mention Qt mode. 6366 (format_directive_domain): Ignore domain directive if in Qt mode. 6367 * Makefile.am (noinst_HEADERS): Add write-qt.h. 6368 (FORMAT_SOURCE): Add format-qt.c. 6369 (msgfmt_SOURCES): Add write-qt.c. 6370 * Makefile.msvc (OBJECTS): Add format-qt.obj. 6371 (msgfmt_OBJECTS): Add write-qt.obj. 6372 (format-qt.obj, write-qt.obj): New rules. 6373 * Makefile.vms (OBJECTS): Add format-qt.obj. 6374 (msgfmt_OBJECTS): Add write-qt.obj. 6375 (format-qt.obj, write-qt.obj): New rules. 6376 * FILES: Update. 6377 63782003-10-14 Bruno Haible <bruno@clisp.org> 6379 6380 Fix compilation errors in C++ mode. 6381 * msgfilter.c (process_string): Cast the xrealloc expression. 6382 * xgettext.c (language_to_extractor, extension_to_language): Move the 6383 typedef after the struct definition. 6384 63852003-10-13 Bruno Haible <bruno@clisp.org> 6386 6387 Support CR/LF line terminators in C sources even on Unix. 6388 * x-c.c (phase0_getc, phase0_ungetc): New functions. 6389 (phase1_getc): Use them instead of calling getc/ungetc directly. 6390 Reported by Christoph Thielecke <u15119@hs-harz.de>. 6391 63922003-10-13 Bruno Haible <bruno@clisp.org> 6393 6394 Support and recognize Objective C specific format strings. 6395 * message.h (enum format_type): New item format_objc. 6396 (NFORMATS): Increment. 6397 * message.c (format_language): Add an entry for format_objc. 6398 (format_language_pretty): Likewise. 6399 * format.h (formatstring_objc): New declaration. 6400 * format-c.c (enum format_arg_type): New item FAT_OBJC_OBJECT. 6401 (format_parse): Add objc_extensions argument. Handle %@ in ObjC mode. 6402 (format_c_parse, format_objc_parse): New functions. 6403 (formatstring_c): Use format_c_parse instead of format_parse. 6404 (formatstring_objc): New variable. 6405 (get_c99_format_directives): Update. 6406 * format.c (formatstring_parsers): Add an entry for format_objc. 6407 * write-mo.c (write_table): Look for system dependent strings also in 6408 ObjectiveC format strings. 6409 * x-c.h (SCANNERS_C): Use separate flag_table for ObjectiveC. 6410 (x_objc_keyword, init_flag_table_objc): New declarations. 6411 (x_c_any_keywords): Remove declaration. 6412 * x-c.c (c_keywords): Renamed from keywords. 6413 (objc_keywords): New variable. 6414 (add_keyword): Renamed from x_c_keyword. Add keywords table argument. 6415 (x_c_keyword, x_objc_keyword): New functions. 6416 (x_c_any_keywords): Remove function. 6417 (init_keywords): Also initialize ObjectiveC keyword table. 6418 (init_flag_table_objc): New function. 6419 (enum token_type_ty): New item token_type_colon. 6420 (phase5_get): Recognize colon. 6421 (enum xgettext_token_type_ty): New item xgettext_token_type_colon. 6422 (x_c_lex): Use keywords table depending on objc_extensions. Handle 6423 colon. 6424 (extract_parenthesized): Change the context_iter and inner_context 6425 after a keyword/symbol followed by a colon was seen. 6426 * xgettext.c (flag_table_objc): New variable. 6427 (main): Invoke init_flag_table_objc, x_objc_keyword. Watch out for 6428 keywords arguments, instead of calling x_c_any_keywords(). 6429 (flag_context_list_table_insert): New function, extracted from 6430 xgettext_record_flag. 6431 (xgettext_record_flag): Call it. For format_c, insert the flags also 6432 in the flag_table_objc. Handle format_objc. 6433 (remember_a_message): Don't add a heuristic c-format flag to an entry 6434 that already carries objc-format. 6435 (remember_a_message_plural): Likewise. 6436 64372003-10-18 Bruno Haible <bruno@clisp.org> 6438 6439 Support for GNUstep .strings format. 6440 * read-stringtable.h: New file. 6441 * read-stringtable.c: New file. 6442 * read-po-abstract.h (enum input_syntax_ty): New item 6443 syntax_stringtable. 6444 (po_callback_comment_dispatcher): Renamed from po_callback_comment. 6445 (po_callback_comment, po_callback_comment_special): New declarations. 6446 * read-po-abstract.c: Include read-stringtable.h. 6447 (po_scan): Add support for syntax_stringtable. 6448 (po_callback_comment_dispatcher): Renamed from po_callback_comment. 6449 (po_callback_comment, po_callback_comment_dot): New functions. 6450 (po_callback_comment_special): New function. 6451 * read-po.c (read_po): Set mdlp->encoding for syntax_stringtable too. 6452 * po-gram-gen.y: Update po_callback_comment_dispatcher call. 6453 * read-properties.c (properties_parse): Likewise. 6454 * write-stringtable.h: New file. 6455 * write-stringtable.c: New file. 6456 * write-po.h (make_format_description_string, significant_format_p): 6457 New declarations. 6458 (message_print_syntax_stringtable): New declaration. 6459 * write-po.c: Include write-stringtable.h. 6460 (make_format_description_string, significant_format_p): Make 6461 non-static. 6462 (use_syntax_stringtable): New variable. 6463 (message_print_syntax_stringtable): New function. 6464 (msgdomain_list_print): Add check for plural forms for 6465 syntax_stringtable too. Add support for writing the .strings format. 6466 * msgattrib.c (long_options): Add --stringtable-input/output. 6467 (main): Handle them. 6468 (usage): Document options --stringtable-input/output. 6469 * msgcat.c (long_options): Add --stringtable-input/output. 6470 (main): Handle them. If option --stringtable-output is used, convert to 6471 UTF-8 and ignore the to_code. 6472 (usage): Document options --stringtable-input/output. 6473 * msgcmp.c (long_options): Add --stringtable-input. 6474 (main): Handle it. 6475 (usage): Document option --stringtable-input. 6476 * msgcomm.c (long_options): Add --stringtable-input/output. 6477 (main): Handle them. 6478 (usage): Document options --stringtable-input/output. 6479 * msgconv.c (long_options): Add --stringtable-input/output. 6480 (main): Handle them. If option --stringtable-output is used, ignore the 6481 to_code. 6482 (usage): Document options --stringtable-input/output. 6483 * msgen.c (long_options): Add --stringtable-input/output. 6484 (main): Handle them. 6485 (usage): Document options --stringtable-input/output. 6486 * msgexec.c: Include limits.h. 6487 (long_options): Add --stringtable-input. 6488 (main): Handle it. 6489 (usage): Document option --stringtable-input. 6490 * msgfilter.c (long_options): Add --stringtable-input/output. 6491 (main): Handle them. 6492 (usage): Document options --stringtable-input/output. 6493 * msgfmt.c (long_options): Add --stringtable-input. 6494 (main): Handle it. 6495 (usage): Document option --stringtable-input. 6496 * msggrep.c (long_options): Add --stringtable-input/output. 6497 (main): Handle them. 6498 (usage): Document options --stringtable-input/output. 6499 * msginit.c (long_options): Add --stringtable-input/output. 6500 (main): Handle them. 6501 (usage): Document options --stringtable-input/output. 6502 * msgmerge.c (long_options): Add --stringtable-input/output. 6503 (main): Handle them. In update mode, --stringtable-input implies 6504 --stringtable-output. 6505 (usage): Document options --stringtable-input/output. 6506 * msgunfmt.c (long_options): Add --stringtable-output. 6507 (main): Handle it. 6508 (usage): Document option --stringtable-output. 6509 * msguniq.c (long_options): Add --stringtable-input/output. 6510 (main): Handle them. 6511 (usage): Document options --stringtable-input/output. 6512 * x-stringtable.h: New file. 6513 * x-po.c: Include x-stringtable.h. 6514 (extract_stringtable): New function. 6515 * xgettext.c: Include x-stringtable.h. 6516 (long_options): Add --stringtable-output. 6517 (main): Handle it. 6518 (usage): Document options -L NXStringTable and --stringtable-output. 6519 (finalize_header): If --stringtable-output was given, set the charset. 6520 (language_to_extractor): Add support for .strings format. 6521 (extension_to_language): Likewise. 6522 * Makefile.am (noinst_HEADERS): Add read-stringtable.h, 6523 write-stringtable.h, x-stringtable.h. 6524 (COMMON_SOURCE): Add read-stringtable.c. 6525 (libgettextsrc_la_SOURCES): Add write-stringtable.c. 6526 * Makefile.msvc (OBJECTS): Add read-stringtable.obj, 6527 write-stringtable.obj. 6528 (read-stringtable.obj, write-stringtable.obj): New rules. 6529 * Makefile.vms (OBJECTS): Add read-stringtable.obj, 6530 write-stringtable.obj. 6531 (read-stringtable.obj, write-stringtable.obj): New rules. 6532 * FILES: Update. 6533 65342003-10-21 Bruno Haible <bruno@clisp.org> 6535 6536 * hostname.c (xgethostname): Add support for native Woe32 API. 6537 65382003-10-21 Bruno Haible <bruno@clisp.org> 6539 6540 * message.c (message_list_search): Avoid casting a pointer to a local 6541 variable; it violated strict aliasing. 6542 65432003-10-21 Bruno Haible <bruno@clisp.org> 6544 6545 * write-java.c (mkdir): Redefine on mingw. 6546 65472003-10-12 Bruno Haible <bruno@clisp.org> 6548 6549 Improved ObjectiveC support. 6550 * x-c.h (extract_objc): New declaration. 6551 (SCANNERS_C): For ObjectiveC, use extract_objc. 6552 * x-c.c (objc_extensions): New variable. 6553 (enum token_type_ty): New item token_type_objc_special. 6554 (phase5_get): Recognize '@' for ObjectiveC. 6555 (phase8b_get, phase8b_unget): New functions. Handle 6556 token_type_white_space and token_type_eoln here instead of in x_c_lex. 6557 (phase8c_get, phase8c_unget): New functions. 6558 (phase8_get): Rely on phase8c, not phase8a. No more need to care about 6559 token_type_white_space and token_type_eoln. 6560 (x_c_lex): Drop handling of token_type_white_space and token_type_eoln. 6561 (extract_whole_file): Renamed from extract_c. 6562 (extract_c, extract_objc): New functions. 6563 65642003-10-20 Bruno Haible <bruno@clisp.org> 6565 6566 * x-java.c (phase3_getc): Fix typo: Use phase2_ungetc, not phase2_getc. 6567 65682003-10-20 Bruno Haible <bruno@clisp.org> 6569 6570 Portability to AIX with cc. 6571 * xgettext.h (struct flag_context_ty): Define the bitfields of type 6572 'unsigned int'. 6573 65742003-10-20 Bruno Haible <bruno@clisp.org> 6575 6576 Portability to Solaris with cc. 6577 * x-java.c (string_buffer_append): Avoid aggregate initializer 6578 containing non-constant expressions. 6579 * xgettext.c (flag_context_list_iterator): Likewise. 6580 (language_to_extractor): Likewise. 6581 65822003-10-11 Bruno Haible <bruno@clisp.org> 6583 6584 * xgettext.c (main): Drop suffix ".in" from input file name, if 6585 present, before looking at the file extension. 6586 65872003-10-09 Bruno Haible <bruno@clisp.org> 6588 6589 * format-awk.c: Include xalloc.h instead of xmalloc.h. 6590 * format-c.c: Likewise. 6591 * format-elisp.c: Likewise. 6592 * format-gcc-internal.c: Likewise. 6593 * format-java.c: Likewise. 6594 * format-librep.c: Likewise. 6595 * format-lisp.c: Likewise. 6596 * format-pascal.c: Likewise. 6597 * format-perl.c: Likewise. 6598 * format-perl-brace.c: Likewise. 6599 * format-php.c: Likewise. 6600 * format-python.c: Likewise. 6601 * format-sh.c: Likewise. 6602 * format-tcl.c: Likewise. 6603 * format-ycp.c: Likewise. 6604 * gettext-po.c: Likewise. 6605 * hostname.c: Likewise. 6606 * message.c: Likewise. 6607 * msgexec.c: Likewise. 6608 * msgfilter.c: Likewise. 6609 * msgfmt.c: Likewise. 6610 * msggrep.c: Likewise. 6611 * msginit.c: Likewise. 6612 * msgl-cat.c: Likewise. 6613 * msgl-english.c: Likewise. 6614 * msgl-iconv.c: Likewise. 6615 * msgmerge.c: Likewise. 6616 * open-po.c: Likewise. 6617 * po-gram-gen.y: Likewise. 6618 * po-hash-gen.y: Likewise. 6619 * po-lex.c: Likewise. 6620 * read-mo.c: Likewise. 6621 * read-po-abstract.c: Likewise. 6622 * read-po.c: Likewise. 6623 * read-properties.c: Likewise. 6624 * str-list.c: Likewise. 6625 * write-java.c: Likewise. 6626 * write-mo.c: Likewise. 6627 * write-po.c: Likewise. 6628 * write-properties.c: Likewise. 6629 * write-tcl.c: Likewise. 6630 * x-awk.c: Likewise. 6631 * x-c.c: Likewise. 6632 * x-elisp.c: Likewise. 6633 * x-glade.c: Likewise. 6634 * x-java.c: Likewise. 6635 * x-librep.c: Likewise. 6636 * x-lisp.c: Likewise. 6637 * x-perl.c: Likewise. 6638 * x-php.c: Likewise. 6639 * x-po.c: Likewise. 6640 * x-python.c: Likewise. 6641 * x-rst.c: Likewise. 6642 * x-sh.c: Likewise. 6643 * x-smalltalk.c: Likewise. 6644 * x-tcl.c: Likewise. 6645 * x-ycp.c: Likewise. 6646 * xgettext.c: Likewise. 6647 66482003-10-07 Bruno Haible <bruno@clisp.org> 6649 6650 More reliable subprocess cleanup. 6651 * msgexec.c (process_string): Pass slave_process = true to 6652 create_pipe_out() and wait_subprocess(). 6653 * msgfilter.c (process_string): Pass slave_process = true to 6654 create_pipe_bidi() and wait_subprocess(). 6655 * msggrep.c (is_string_selected): Pass slave_process = true to 6656 create_pipe_out() and wait_subprocess(). 6657 * msginit.c (project_id, project_id_version, get_user_email, 6658 language_team_address): Pass slave_process = true to create_pipe_in() 6659 and wait_subprocess(). 6660 * read-java.c (execute_and_read_po_output): Likewise. 6661 * read-tcl.c (msgdomain_read_tcl): Likewise. 6662 * urlget.c (execute_it, fetch): Pass slave_process = true to execute(). 6663 66642003-10-05 Bruno Haible <bruno@clisp.org> 6665 6666 * write-java.c: Include fatal-signal.h, not signal.h. 6667 (uninstall_handlers): Remove function. 6668 (cleanup): Remove signal argument. Don't execute the signal's default 6669 action; leave that to the caller. 6670 (install_handlers, init_signal_set, block, unblock): Remove functions. 6671 (msgdomain_write_java): Invoke at_fatal_signal instead of 6672 install_handlers/uninstall_handlers. Invoke [un]block_fatal_signals 6673 instead of [un]block. 6674 66752003-10-05 Bruno Haible <bruno@clisp.org> 6676 6677 * xgettext.c (substring_match): Remove variable. 6678 (long_options): Remove --keyword-substring option. 6679 (main): Remove handling of --keyword-substring option. 6680 66812003-10-05 Bruno Haible <bruno@clisp.org> 6682 6683 * message.h (enum is_format): New item yes_according_to_context. 6684 * message.c (possible_format_p): Handle also yes_according_to_context. 6685 * write-po.c (make_format_description_string): Likewise. 6686 6687 * xgettext.h (struct flag_context_ty): New type. 6688 (null_context, passthrough_context): New declarations. 6689 (inherited_context): New declaration. 6690 (struct flag_context_list_ty): New type. 6691 (struct flag_context_list_iterator_ty): New type. 6692 (null_context_list_iterator, passthrough_context_list_iterator): New 6693 declarations. 6694 (flag_context_list_iterator): New declaration. 6695 (flag_context_list_iterator_advance): New declaration. 6696 (flag_context_list_table_ty): New type. 6697 (flag_context_list_table_lookup): New declaration. 6698 (xgettext_record_flag): New declaration. 6699 (remember_a_message, remember_a_message_plural): Add context argument. 6700 * xgettext.c: Include alloca.h. 6701 (flag_table_c, flag_table_gcc_internal, flag_table_sh, 6702 flag_table_python, flag_table_lisp, flag_table_elisp, 6703 flag_table_librep, flag_table_java, flag_table_awk, flag_table_ycp, 6704 flag_table_tcl, flag_table_perl, flag_table_php): New variables. 6705 (long_options): Add option --flag. 6706 (extractor_func): Add argument flag_table. 6707 (struct extractor_ty): New type. 6708 (main): Use type 'extractor_ty' instead of 'extractor_func'. 6709 Invoke init_flag_table_c(), init_flag_table_gcc_internal(), 6710 init_flag_table_sh(), init_flag_table_python(), init_flag_table_lisp(), 6711 init_flag_table_elisp(), init_flag_table_librep(), 6712 init_flag_table_java(), init_flag_table_awk(), init_flag_table_ycp(), 6713 init_flag_table_tcl(), init_flag_table_perl(), init_flag_table_php(). 6714 Implement option --flag. 6715 (usage): Rename a section to "Language specific options". Document 6716 the languages to which --extract-all, --keyword, --trigraphs are 6717 applicable. Document option --flag. 6718 (null_context): New variable. 6719 (passthrough_context): New variable. 6720 (inherited_context): New function. 6721 (null_context_list_iterator): New variable. 6722 (passthrough_context_circular_list, passthrough_context_list_iterator): 6723 New variables. 6724 (flag_context_list_iterator): New function. 6725 (flag_context_list_iterator_advance): New function. 6726 (flag_context_list_table_lookup): New function. 6727 (xgettext_record_flag): New function. 6728 (extract_from_file): Change argument type to 'extractor_ty' instead of 6729 'extractor_func'. Set current_formatstring_parser{1,2} before invoking 6730 the extractor. 6731 (set_format_flags_from_context): New function. 6732 (remember_a_message): Add context argument. Set some *-format flag if 6733 the context specifies it. 6734 (remember_a_message_plural): Likewise. 6735 (language_to_extractor): Change return type to 'extractor_ty' instead 6736 of 'extractor_func'. 6737 6738 * x-awk.h (SCANNERS_AWK): Refer to flag_table_awk. 6739 (extract_awk): Add argument flag_table. 6740 (init_flag_table_awk): New declaration. 6741 * x-awk.c (init_flag_table_awk): New function. 6742 (enum token_type_ty): New enum item token_type_semicolon. 6743 (x_awk_lex): Recognize semicolon. 6744 (flag_context_list_table): New variable. 6745 (extract_parenthesized): Add arguments outer_context, context_iter. 6746 Implement context handling depending on symbol before '('. Also 6747 recognize argument lists that start without '(', but only up to the 6748 next semicolon. 6749 (extract_awk): Add argument flag_table. Initialize 6750 flag_context_list_table. 6751 6752 * x-c.h (SCANNERS_C): Refer to flag_table_c, flag_table_gcc_internal. 6753 (extract_c): Add argument flag_table. 6754 (init_flag_table_c): New declaration. 6755 (init_flag_table_gcc_internal): New declaration. 6756 * x-c.c (init_flag_table_c): New function. 6757 (init_flag_table_gcc_internal): New function. 6758 (enum xgettext_token_type_ty): New item xgettext_token_type_other. 6759 (x_c_lex): For token_type_name, put the string into the resulting 6760 token instead of freeing it. Return token type 6761 xgettext_token_type_other instead of xgettext_token_type_symbol in 6762 some cases. 6763 (flag_context_list_table): New variable. 6764 (extract_parenthesized): Add arguments outer_context, context_iter. 6765 Implement context handling depending on symbol before '('. 6766 (extract_c): Add argument flag_table. Initialize 6767 flag_context_list_table. 6768 6769 * x-elisp.h (SCANNERS_ELISP): Refer to flag_table_elisp. 6770 (extract_elisp): Add argument flag_table. 6771 (init_flag_table_elisp): New declaration. 6772 * x-elisp.c (init_flag_table_elisp): New function. 6773 (flag_context_list_table): New variable. 6774 (read_object): Add argument outer_context. Implement context handling 6775 depending on first symbol after '('. 6776 (extract_elisp): Add argument flag_table. Initialize 6777 flag_context_list_table. 6778 6779 * x-glade.h (SCANNERS_GLADE): Update. 6780 (extract_glade): Add argument flag_table. 6781 * x-glade.c (start_element_handler, end_element_handler): Pass null 6782 context to remember_a_message. 6783 (extract_glade): Add argument flag_table. 6784 6785 * x-java.h (SCANNERS_JAVA): Refer to flag_table_java. 6786 (extract_java): Add argument flag_table. 6787 (init_flag_table_java): New declaration. 6788 * x-java.c (init_flag_table_java): New function. 6789 (flag_context_list_table): New variable. 6790 (extract_parenthesized): Add arguments outer_context, context_iter. 6791 Implement context handling depending on symbol before '('. 6792 (extract_java): Add argument flag_table. Initialize 6793 flag_context_list_table. 6794 6795 * x-librep.h (SCANNERS_ELISP): Refer to flag_table_librep. 6796 (extract_librep): Add argument flag_table. 6797 (init_flag_table_librep): New declaration. 6798 * x-librep.c (init_flag_table_librep): New function. 6799 (flag_context_list_table): New variable. 6800 (read_object): Add argument outer_context. Implement context handling 6801 depending on first symbol after '('. 6802 (extract_librep): Add argument flag_table. Initialize 6803 flag_context_list_table. 6804 6805 * x-lisp.h (SCANNERS_LISP): Refer to flag_table_lisp. 6806 (extract_lisp): Add argument flag_table. 6807 (init_flag_table_lisp): New declaration. 6808 * x-lisp.c (init_flag_table_lisp): New function. 6809 (flag_context_list_table): New variable. 6810 (read_object): Add argument outer_context. Implement context handling 6811 depending on first symbol after '('. 6812 (extract_lisp): Add argument flag_table. Initialize 6813 flag_context_list_table. 6814 6815 * x-perl.h (SCANNERS_PERL): Refer to flag_table_perl. 6816 (extract_perl): Add argument flag_table. 6817 (init_flag_table_perl): New declaration. 6818 * x-perl.c (init_flag_table_java): New function. 6819 (flag_context_list_table): New variable. 6820 (extract_variable): Update. Implement context handling depending on 6821 symbol before '{'...'}'. 6822 (interpolate_keywords): Implement context handling depending on symbol 6823 before '->' or '{'...'}'. 6824 (extract_balanced): Add arguments outer_context, context_iter. 6825 Implement context handling depending on symbol before '('. Also 6826 recognize argument lists that start without '('. 6827 (extract_perl): Add argument flag_table. Initialize 6828 flag_context_list_table. 6829 6830 * x-php.h (SCANNERS_PHP): Refer to flag_table_php. 6831 (extract_php): Add argument flag_table. 6832 (init_flag_table_php): New declaration. 6833 * x-php.c (init_flag_table_php): New function. 6834 (flag_context_list_table): New variable. 6835 (extract_parenthesized): Add arguments outer_context, context_iter. 6836 Implement context handling depending on symbol before '('. 6837 (extract_php): Add argument flag_table. Initialize 6838 flag_context_list_table. 6839 6840 * x-po.h (SCANNERS_PO): Update. 6841 (extract_po): Add argument flag_table. 6842 * x-properties.h (SCANNERS_PROPERTIES): Update. 6843 (extract_properties): Add argument flag_table. 6844 * x-po.c (extract_po): Add argument flag_table. 6845 (extract_properties): Add argument flag_table. 6846 6847 * x-python.h (SCANNERS_PYTHON): Refer to flag_table_python. 6848 (extract_python): Add argument flag_table. 6849 (init_flag_table_python): New declaration. 6850 * x-python.c (init_flag_table_python): New function. 6851 (flag_context_list_table): New variable. 6852 (extract_parenthesized): Add arguments outer_context, context_iter. 6853 Implement context handling depending on symbol before '('. 6854 (extract_python): Add argument flag_table. Initialize 6855 flag_context_list_table. 6856 6857 * x-rst.h (SCANNERS_RST): Update. 6858 (extract_rst): Add argument flag_table. 6859 * x-rst.c (extract_rst): Add argument flag_table. 6860 6861 * x-sh.h (SCANNERS_SH): Refer to flag_table_sh. 6862 (extract_sh): Add argument flag_table. 6863 (init_flag_table_sh): New declaration. 6864 * x-sh.c (init_flag_table_sh): New function. 6865 (flag_context_list_table): New variable. 6866 (read_word): Add context argument. 6867 (read_command): Add outer_context argument. Implement context handling 6868 depending on first symbol of command. 6869 (read_command_list): Add outer_context argument. 6870 (extract_sh): Add argument flag_table. Initialize 6871 flag_context_list_table. 6872 6873 * x-smalltalk.h (SCANNERS_SMALLTALK): Update. 6874 (extract_smalltalk): Add argument flag_table. 6875 * x-smalltalk.c (extract_smalltalk): Add argument flag_table. 6876 6877 * x-tcl.h (SCANNERS_TCL): Refer to flag_table_tcl. 6878 (extract_tcl): Add argument flag_table. 6879 (init_flag_table_tcl): New declaration. 6880 * x-tcl.c (init_flag_table_tcl): New function. 6881 (flag_context_list_table): New variable. 6882 (accumulate_word): Add context argument. 6883 (read_word): Add context argument. 6884 (read_command): Add outer_context argument. Implement context handling 6885 depending on first symbol of command. 6886 (read_command_list): Add outer_context argument. 6887 (extract_tcl): Add argument flag_table. Initialize 6888 flag_context_list_table. 6889 6890 * x-ycp.h (SCANNERS_YCP): Refer to flag_table_ycp. 6891 (extract_ycp): Add argument flag_table. 6892 (init_flag_table_ycp): New declaration. 6893 * x-ycp.c (init_flag_table_ycp): New function. 6894 (flag_context_list_table): New variable. 6895 (extract_parenthesized): New function, split off from extract_ycp. 6896 Implement context handling depending on symbol before '('. 6897 (extract_ycp): Add argument flag_table. Initialize 6898 flag_context_list_table. Call extract_parenthesized to do the work. 6899 6900 * po-lex.c (mbfile_getc, control_sequence): Remove explicit marking of 6901 strings as c-format, now done by xgettext. 6902 69032003-09-23 Bruno Haible <bruno@clisp.org> 6904 6905 * x-awk.c (extract_parenthesized): Remove optimization of the 6906 extract_all case. 6907 * x-c.c (extract_parenthesized): Likewise. 6908 * x-elisp.c (read_object): Likewise. 6909 * x-librep.c (read_object): Likewise. 6910 * x-lisp.c (read_object): Likewise. 6911 * x-perl.c (x_perl_prelex, extract_balanced): Likewise. 6912 * x-php.c (extract_parenthesized): Likewise. 6913 * x-python.c (extract_parenthesized): Likewise. 6914 * x-sh.c (read_command): Likewise. 6915 69162003-10-08 Bruno Haible <bruno@clisp.org> 6917 6918 * msgmerge.c (main): Make option -N work. 6919 Reported by Liu Garfield <jackliu9999@hotmail.com>. 6920 69212003-10-04 Bruno Haible <bruno@clisp.org> 6922 6923 New Java backend. 6924 * x-java.c: New file. 6925 * x-java.l: Remove file. 6926 * Makefile.am (xgettext_SOURCES): Add x-java.c, remove x-java.l. 6927 (x-java.c): Remove rule. 6928 * FILES: Update. 6929 69302003-09-22 Bruno Haible <bruno@clisp.org> 6931 6932 * x-glade.c (start_element_handler): Implement extract_all behaviour. 6933 69342003-10-04 Bruno Haible <bruno@clisp.org> 6935 6936 * x-glade.c (do_extract_glade): Initialize stack_depth. 6937 * x-perl.c (extract_perl): Initialize linesize and linepos. 6938 6939 * x-python.c (phase2_getc): Set last_comment_line. 6940 (phase5_get): Set last_non_comment_line. 6941 69422003-10-04 Bruno Haible <bruno@clisp.org> 6943 6944 * x-glade.c: Don't include msgl-ascii.h and msgl-iconv.h. 6945 * x-python.c: Likewise. 6946 * x-tcl.c: Likewise. 6947 69482003-10-06 Guido Flohr <guido@imperia.net> 6949 Bruno Haible <bruno@clisp.org> 6950 6951 * x-perl.c (enum symbol_type_ty): New enum. 6952 (struct token_ty): Rename field string_type to sub_type and change its 6953 type to 'int'. 6954 (extract_quotelike_pass3, interpolate_keywords): Update. 6955 (x_perl_prelex): Set sub_type also for symbol tokens. 6956 (x_perl_lex): Special handling of prototype argument lists. 6957 Reported by Crispin Flowerday <cflowerday@zeus.com>. 6958 69592003-09-22 Bruno Haible <bruno@clisp.org> 6960 6961 * x-sh.c (read_word): Warn about $"...". 6962 69632003-09-18 Bruno Haible <bruno@clisp.org> 6964 6965 * gettext-po.h (po_file_domain_header, po_header_field, 6966 po_message_is_obsolete, po_message_is_fuzzy, po_message_is_format): New 6967 declarations. 6968 * gettext-po.c (po_file_domain_header, po_header_field, 6969 po_message_is_obsolete, po_message_is_fuzzy, po_message_is_format): New 6970 functions. 6971 * Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 1:0:1. 6972 69732003-09-14 Bruno Haible <bruno@clisp.org> 6974 6975 * plural-count.c: Include plural-count.h. 6976 * x-po.c: Include x-properties.h. 6977 * x-java.l (append_strings): Change argument type to 'const char *'. 6978 69792003-09-14 Bruno Haible <bruno@clisp.org> 6980 6981 * msgfmt.c (check_plural_eval): Mark some strings as c-format. 6982 (msgfmt_add_message): Make static. 6983 * po-lex.c (mbfile_getc, control_sequence): Mark some strings as 6984 c-format. 6985 69862003-09-18 Bruno Haible <bruno@clisp.org> 6987 6988 * FILES: Update. 6989 69902003-09-14 Bruno Haible <bruno@clisp.org> 6991 6992 More reliable checking for read errors. 6993 * po-lex.c (mbfile_getc): Diagnose read errors also in the middle of 6994 multibyte characters. 6995 (lex_getc): Diagnose read errors also right after backslash. 6996 * x-rst.c (extract_rst): Diagnose read errors also inside ConstName 6997 and immediately after #. 6998 69992003-09-14 Bruno Haible <bruno@clisp.org> 7000 7001 * write-mo.c: Include fwriterror.h. 7002 (msgdomain_write_mo): Use fwriteerror, to get right errno value in 7003 error message about write error. 7004 * write-po.c: Include fwriterror.h. 7005 (msgdomain_list_print): Use fwriteerror, to get right errno value in 7006 error message about write error. 7007 * write-java.c: Include fwriterror.h. 7008 (msgdomain_write_java): Use fwriteerror, to get right errno value in 7009 error message about write error. 7010 * write-tcl.c: Include fwriterror.h. 7011 (msgdomain_write_tcl): Use fwriteerror, to get right errno value in 7012 error message about write error. 7013 70142003-09-18 Bruno Haible <bruno@clisp.org> 7015 7016 * xgettext.c (from_current_source_encoding): Use multiline_error, 7017 for a prettier error message. 7018 7019 * x-perl.c (extract_quotelike_pass1): Store counter_delim instead of 7020 EOF as delimiter, to avoid error during from_current_source_encoding. 7021 Reported by Crispin Flowerday <cflowerday@zeus.com>. 7022 70232003-09-13 Bruno Haible <bruno@clisp.org> 7024 7025 * format-sh.c (INVALID_SHELL_SYNTAX, 7026 INVALID_CONTEXT_DEPENDENT_VARIABLE): New macros. 7027 (format_parse): Reject constructs like ${variable-default} and $?. 7028 70292003-09-13 Bruno Haible <bruno@clisp.org> 7030 7031 Fix behaviour of "<program> --help > /dev/full". 7032 * hostname.c: Include closeout.h. 7033 (main): Register close_stdout for execution at program exit. 7034 * msgattrib.c: Include closeout.h. 7035 (main): Register close_stdout for execution at program exit. 7036 * msgcat.c: Include closeout.h. 7037 (main): Register close_stdout for execution at program exit. 7038 * msgcmp.c: Include closeout.h. 7039 (main): Register close_stdout for execution at program exit. 7040 * msgcomm.c: Include closeout.h. 7041 (main): Register close_stdout for execution at program exit. 7042 * msgconv.c: Include closeout.h. 7043 (main): Register close_stdout for execution at program exit. 7044 * msgen.c: Include closeout.h. 7045 (main): Register close_stdout for execution at program exit. 7046 * msgexec.c: Include closeout.h. 7047 (main): Register close_stdout for execution at program exit. 7048 * msgfilter.c: Include closeout.h. 7049 (main): Register close_stdout for execution at program exit. 7050 * msgfmt.c: Include closeout.h. 7051 (main): Register close_stdout for execution at program exit. 7052 * msggrep.c: Include closeout.h. 7053 (main): Register close_stdout for execution at program exit. 7054 * msginit.c: Include closeout.h. 7055 (main): Register close_stdout for execution at program exit. 7056 * msgmerge.c: Include closeout.h. 7057 (main): Register close_stdout for execution at program exit. 7058 * msgunfmt.c: Include closeout.h. 7059 (main): Register close_stdout for execution at program exit. 7060 * msguniq.c: Include closeout.h. 7061 (main): Register close_stdout for execution at program exit. 7062 * urlget.c: Include closeout.h. 7063 (main): Register close_stdout for execution at program exit. 7064 * xgettext.c: Include closeout.h. 7065 (main): Register close_stdout for execution at program exit. 7066 * write-po.c (msgdomain_list_print): Don't fclose (stdout) here. 7067 70682003-09-11 Bruno Haible <bruno@clisp.org> 7069 7070 * po-lex.c (mbfile_getc): Handle unexpected return value of 7071 u8_mbtouc(). Reported by Jochen Hein <jochen@jochen.org>. 7072 70732003-09-09 Bruno Haible <bruno@clisp.org> 7074 7075 * read-properties.c (phase4_getuc): Cast line_number to 'unsigned long' 7076 before outputting it. 7077 70782003-09-09 Bruno Haible <bruno@clisp.org> 7079 7080 * po-lex.c: Test HAVE_DECL_GETC_UNLOCKED instead of HAVE_GETC_UNLOCKED. 7081 * write-po.c: Test HAVE_DECL_PUTC_UNLOCKED instead of 7082 HAVE_PUTC_UNLOCKED. 7083 70842003-09-09 Guido Flohr <guido@imperia.net> 7085 7086 * x-perl.c (extract_quotelike_pass3): Change \l handling to no longer 7087 eat up non-uppercase characters; likewise for \u. Also make \l and \u 7088 work on characters written using hex or octal escape sequence. Fix \Q 7089 handling. With option --extract-all, avoid "invalid variable 7090 interpolation" warnings. 7091 (x_perl_prelex): With option --extract-all, keep variables inside 7092 double-quoted strings untouched. 7093 70942003-09-03 Bruno Haible <bruno@clisp.org> 7095 7096 * x-sh.h: New file. 7097 * x-sh.c: New file. 7098 * xgettext.c: Include x-sh.h. 7099 (main): Call x_sh_extract_all, x_sh_keyword. 7100 (usage): Mention Shell language. 7101 (language_to_extractor): Add Shell rule. 7102 (extension_to_language): Add Shell rule. 7103 * Makefile.am (noinst_HEADERS): Add x-sh.h. 7104 (xgettext_SOURCES): Add x-sh.c. 7105 * Makefile.msvc (xgettext_OBJECTS): Add x-sh.obj. 7106 (x-sh.obj): New rule. 7107 * Makefile.vms (xgettext_OBJECTS): Add x-sh.obj. 7108 (x-sh.obj): New rule. 7109 71102003-08-31 Bruno Haible <bruno@clisp.org> 7111 7112 * format-sh.c: New file. 7113 * message.h (format_sh): New enum value. 7114 (NFORMATS): Increment. 7115 * format.h (formatstring_sh): New declaration. 7116 * format.c (formatstring_parsers): Add entry for sh. 7117 * message.c (format_language, format_language_pretty): Likewise. 7118 * Makefile.am (FORMAT_SOURCE): Add format-sh.c. 7119 * Makefile.msvc (OBJECTS): Add format-sh.obj. 7120 (format-sh.obj): New rule. 7121 * Makefile.vms (OBJECTS): Add format-sh.obj. 7122 (format-sh.obj): New rule. 7123 71242003-08-31 Bruno Haible <bruno@clisp.org> 7125 7126 * format-gcc-internal.c (isdigit): Remove unused macro. 7127 * format-perl-brace.c (isdigit): Likewise. 7128 71292003-09-01 Guido Flohr <guido@imperia.net> 7130 7131 * x-perl.c (extract_balanced): Access the global last_token. 7132 Initialize last_token and prefer_division_over_regexp here. 7133 (extract_perl): Not here. 7134 71352003-08-29 Bruno Haible <bruno@clisp.org> 7136 7137 * x-perl.c: Include getline.h. 7138 71392003-08-24 Bruno Haible <bruno@clisp.org> 7140 7141 * Makefile.msvc (format.obj, msgmerge.obj, xgettext.obj, msgattrib.obj, 7142 msgcat.obj, msgcomm.obj, msgconv.obj, msgen.obj, msgfilter.obj, 7143 msggrep.obj, msguniq.obj): Compile these in C++ mode. This works around 7144 the "non-constant initializer" error that we get for addresses of 7145 variables in DLLs in C mode. 7146 71472003-08-24 Bruno Haible <bruno@clisp.org> 7148 7149 * msgfilter.c (process_message): Cast xrealloc() result. 7150 71512003-08-24 Bruno Haible <bruno@clisp.org> 7152 7153 * msgfilter.c: On Windows, include <io.h> instead of <unistd.h>. 7154 * msggrep.c: Likewise. 7155 71562003-08-24 Bruno Haible <bruno@clisp.org> 7157 7158 * plural-count.h: New file. 7159 * plural-count.c: New file, extracted from msgmerge.c. 7160 * msgmerge.c: Include plural-count.h instead of plural-exp.h. 7161 (match_domain): Use function get_plural_count(). 7162 * Makefile.am (noinst_HEADERS): Add plural-count.h. 7163 (msgmerge_SOURCES): Add plural-count.c. 7164 * Makefile.msvc (msgmerge_OBJECTS): Add plural-count.obj. 7165 (plural-count.obj): New rule. 7166 * Makefile.vms (msgmerge_OBJECTS): Add plural-count.obj. 7167 (plural-count.obj): New rule. 7168 71692003-08-24 Bruno Haible <bruno@clisp.org> 7170 7171 Support for building DLLs on Windows. 7172 * format.h (formatstring_c, formatstring_python, formatstring_lisp, 7173 formatstring_elisp, formatstring_librep, formatstring_smalltalk, 7174 formatstring_java, formatstring_awk, formatstring_pascal, 7175 formatstring_ycp, formatstring_tcl, formatstring_perl, 7176 formatstring_perl_brace, formatstring_php, formatstring_gcc_internal, 7177 formatstring_parsers): Add DLL_VARIABLE attribute. 7178 * message.h (format_language, format_language_pretty): Likewise. 7179 * msgl-cat.h (more_than, less_than, use_first, msgcomm_mode, 7180 omit_header): Likewise. 7181 * plural-table.h (plural_table, plural_table_size): Likewise. 7182 * po-charset.h (po_charset_ascii, po_charset_utf8, po_lex_charset, 7183 po_lex_iconv, po_lex_weird_cjk): Likewise. 7184 * po-lex.h (gram_pos, gram_pos_column, gram_max_allowed_errors, 7185 pass_obsolete_entries): Likewise. 7186 * read-po.h (line_comment, allow_duplicates, input_syntax): Likewise. 7187 * write-mo.h (alignment, no_hash_table): Likewise. 7188 * Makefile.am (po-gram-gen2.h): Likewise. 7189 71902003-08-24 Bruno Haible <bruno@clisp.org> 7191 7192 * Makefile.msvc (gettext-po.obj, gettextpo.lib, gettextpo.res): New 7193 rules. 7194 (all): Depend on gettextpo.lib. 7195 (install, installdirs, uninstall): Install/uninstall gettext-po.h, 7196 gettextpo.dll and gettextpo.lib. 7197 * Makefile.vms (gettext-po.obj, gettextpo.olb): New rules. 7198 (all): Depend on gettextpo.olb. 7199 (install, installdirs, uninstall): Install/uninstall gettext-po.h, 7200 gettextpo.olb. 7201 72022003-08-24 Bruno Haible <bruno@clisp.org> 7203 7204 * dir-list.h: Make this file includable in C++ mode: add extern "C". 7205 * file-list.h: Likewise. 7206 * format.h: Likewise. 7207 * message.h: Likewise. 7208 * msgl-ascii.h: Likewise. 7209 * msgl-cat.h: Likewise. 7210 * msgl-charset.h: Likewise. 7211 * msgl-english.h: Likewise. 7212 * msgl-equal.h: Likewise. 7213 * msgl-iconv.h: Likewise. 7214 * open-po.h: Likewise. 7215 * po-charset.h: Likewise. 7216 * po-lex.h: Likewise. 7217 * po-time.h: Likewise. 7218 * read-po-abstract.h: Likewise. 7219 * str-list.h: Likewise. 7220 * write-po.h: Likewise. 7221 * xgettext.h: Likewise. 7222 * read-po.h: Likewise. 7223 (this): Redefine to a different symbol. 7224 * xgettext.c: Add extern "C" around all "x-*.h" includes. 7225 72262003-08-22 Bruno Haible <bruno@clisp.org> 7227 7228 * format-awk.c: Include error-progname.h instead of progname.h. 7229 * format-c.c: Likewise. 7230 * format-elisp.c: Likewise. 7231 * format-gcc-internal.c: Likewise. 7232 * format-java.c: Likewise. 7233 * format-librep.c: Likewise. 7234 * format-lisp.c: Likewise. 7235 * format-pascal.c: Likewise. 7236 * format-perl.c: Likewise. 7237 * format-perl-brace.c: Likewise. 7238 * format-php.c: Likewise. 7239 * format-python.c: Likewise. 7240 * format-tcl.c: Likewise. 7241 * format-ycp.c: Likewise. 7242 * po-lex.h: Likewise. 7243 * read-properties.c: Likewise. 7244 * write-po.c: Likewise. 7245 * x-awk.c: Likewise. 7246 * x-c.c: Likewise. 7247 * x-perl.c: Likewise. 7248 * x-python.c: Likewise. 7249 * x-rst.c: Likewise. 7250 * hostname.c: Include error-progname.h. 7251 * msgattrib.c: Likewise. 7252 * msgcat.c: Likewise. 7253 * msgcmp.c: Likewise. 7254 * msgcomm.c: Likewise. 7255 * msgconv.c: Likewise. 7256 * msgen.c: Likewise. 7257 * msgexec.c: Likewise. 7258 * msgfilter.c: Likewise. 7259 * msgfmt.c: Likewise. 7260 * msggrep.c: Likewise. 7261 * msginit.c: Likewise. 7262 * msgmerge.c: Likewise. 7263 * msgunfmt.c: Likewise. 7264 * msguniq.c: Likewise. 7265 * urlget.c: Likewise. 7266 * xgettext.c: Likewise. 7267 * po-lex.c: Include error-progname.h and pos.h. 7268 72692003-08-15 Bruno Haible <bruno@clisp.org> 7270 7271 * msginit.c (catalogname_for_locale): Add entries for Aragonese, 7272 Haitian, Sichuan Yi, Limburgish. 7273 (englishname_of_language): Likewise. 7274 72752003-08-08 Bruno Haible <bruno@clisp.org> 7276 7277 * format-gcc-internal.c: New file. 7278 * message.h (format_gcc_internal): New enum value. 7279 (NFORMATS): Increment. 7280 * format.h (formatstring_gcc_internal): New declaration. 7281 * format.c (formatstring_parsers): Add entry for gcc_internal. 7282 * message.c (format_language, format_language_pretty): Likewise. 7283 * x-c.h (SCANNERS_C): Add an entry for GCC-source. 7284 * xgettext.c (usage): Mention GCC-source language. 7285 * Makefile.am (FORMAT_SOURCE): Add format-gcc-internal.c. 7286 * Makefile.msvc (OBJECTS): Add format-gcc-internal.obj. 7287 (format-gcc-internal.obj): New rule. 7288 * Makefile.vms (OBJECTS): Add format-gcc-internal.obj. 7289 (format-gcc-internal.obj): New rule. 7290 72912003-08-04 Bruno Haible <bruno@clisp.org> 7292 7293 * x-perl.c (extract_quotelike_pass3): Fix \x handling. 7294 Reported by Guido Flohr. 7295 72962003-07-05 Bruno Haible <bruno@clisp.org> 7297 7298 * format-perl-brace.c: Renamed from format-perl-bracket.c. Recognize 7299 braces instead of brackets. 7300 * format.h (formatstring_perl_brace): Renamed from 7301 formatstring_perl_bracket. 7302 * format.c (formatstring_parsers): Add formatstring_perl_brace, remove 7303 formatstring_perl_bracket. 7304 * message.h (enum format_type): Add format_perl_brace, remove 7305 format_perl_bracket. 7306 * message.c (format_language, format_language_pretty): Update. 7307 * x-perl.h (SCANNERS_PERL): Update. 7308 * Makefile.am (FORMAT_SOURCE): Add format-perl-brace.c, remove 7309 format-perl-bracket.c. 7310 * Makefile.msvc (OBJECTS): Add format-perl-brace.obj, remove 7311 format-perl-bracket.obj. 7312 (format-perl-brace.obj): Renamed from format-perl-bracket.obj. 7313 * Makefile.vms (OBJECTS): Add format-perl-brace.obj, remove 7314 format-perl-bracket.obj. 7315 (format-perl-brace.obj): Renamed from format-perl-bracket.obj. 7316 73172003-07-03 Bruno Haible <bruno@clisp.org> 7318 7319 Support for PHP >= 4.2.0. 7320 * x-php.c (init_keywords): Add ngettext, dngettext, dcngettext to the 7321 built-in keywords. 7322 Reported by A. Sopicki <a.sopicki@gmx.de>. 7323 73242003-06-27 Bruno Haible <bruno@clisp.org> 7325 7326 * xgettext.h (from_current_source_encoding): New declaraction. 7327 * xgettext.c (from_current_source_encoding): New function. 7328 (CONVERT_STRING): Use it. 7329 * x-perl.c: Include po-charset.h. 7330 (get_here_document): Convert each line to UTF-8. 7331 (phase2_getc): Convert each comment to UTF-8. Tell xgettext_comment_add 7332 to not convert it. 7333 (extract_quotelike_pass1_utf8): New function. 7334 (extract_quotelike): Use extract_quotelike_pass1_utf8. 7335 (extract_triple_quotelike): Likewise. 7336 (extract_variable): Tell remember_a_message to not convert the string. 7337 (interpolate_keywords): Likewise. 7338 (extract_balanced): Tell remember_a_message, remember_a_message_plural 7339 to not convert the string. 7340 73412003-06-23 Guido Flohr <guido@imperia.net> 7342 7343 * x-perl.c (extract_quotelike_pass3): Fix handling of doubled 7344 backslashes in single-quoted strings. 7345 73462003-06-23 Bruno Haible <bruno@clisp.org> 7347 7348 * format-perl-bracket.c (format_check): Allow additional bracketed 7349 items in the msgstr. 7350 73512003-06-22 Bruno Haible <bruno@clisp.org> 7352 7353 * write-properties.c: Don't include exit.h and gettext.h. 7354 73552003-06-22 Bruno Haible <bruno@clisp.org> 7356 7357 * x-php.c (phase3_ungetc): Comment out unused function. 7358 73592003-06-21 Bruno Haible <bruno@clisp.org> 7360 7361 * format-perl.c: Complete rewrite. 7362 * format-perl-bracket.c: New file. 7363 * message.h (format_perl_bracket): New enum value. 7364 (NFORMATS): Increment. 7365 * format.h (formatstring_perl_bracket): New declaration. 7366 * format.c (formatstring_parsers): Add entry for perl_bracket. 7367 * message.c (format_language, format_language_pretty): Likewise. 7368 * x-perl.h (SCANNERS_PERL): Use formatstring_perl and 7369 formatstring_perl_bracket. 7370 * Makefile.am (FORMAT_SOURCE): Add format-perl-bracket.c. 7371 * Makefile.msvc (OBJECTS): Add format-perl.obj,format-perl-bracket.obj. 7372 (xgettext_OBJECTS): Add x-perl.obj. 7373 (format-perl.obj, format-perl-bracket.obj, x-perl.obj): New rules. 7374 * Makefile.vms (OBJECTS): Add format-perl.obj, format-perl-bracket.obj. 7375 (xgettext_OBJECTS): Add x-perl.obj. 7376 (format-perl.obj, format-perl-bracket.obj, x-perl.obj): New rules. 7377 7378 * x-perl.c (extract_quotelike_pass3): Don't give an invalid 7379 interpolation error for a backslashed dollar sign. 7380 73812003-06-21 Bruno Haible <bruno@clisp.org> 7382 7383 * x-perl.c (extract_quotelike_pass3): Fix handling of double backslash. 7384 73852003-06-19 Bruno Haible <bruno@clisp.org> 7386 7387 * x-perl.c (enum string_type_ty): Remove trailing comma. 7388 (interpolate_keywords::enum parser_state): Likewise. 7389 (extract_quotelike_pass3): Cast first argument of u8_uctomb(). 7390 73912003-06-15 Bruno Haible <bruno@clisp.org> 7392 7393 * x-awk.c: Reorder definitions. 7394 * x-c.c: Reorder definitions. 7395 * x-perl.c: Reorder definitions. 7396 * x-php.c: Reorder definitions. 7397 * x-python.c: Reorder definitions. 7398 * x-smalltalk.c: Reorder definitions. 7399 * x-ycp.c: Reorder definitions. 7400 74012003-06-15 Bruno Haible <bruno@clisp.org> 7402 7403 * x-perl.c (struct stack_entry): Remove type. 7404 (struct stack): Remove type. 7405 (struct token_stack_ty): New type. 7406 (token_stack): Change type to 'struct token_stack_ty'. 7407 (token_stack_dump): Renamed from stack_dump. Update. 7408 (token_stack_push): Renamed from stack_unshift. Rewritten. 7409 (token_stack_pop): Renamed from stack_shift. Rewritten. 7410 (token_stack_peek): Renamed from stack_head. Rewritten. 7411 (token_stack_free): Renamed from stack_free. Rewritten. 7412 (x_perl_lex, x_perl_unlex, extract_perl): Update. 7413 74142003-06-15 Bruno Haible <bruno@clisp.org> 7415 7416 * x-perl.c (DEBUG_MEMORY): Remove macro. 7417 (remember_a_message_debug, remember_a_message_plural_debug, 7418 xmalloc_debug, xrealloc_debug, xrealloc_static_debug, xstrdup_debug, 7419 free_debug): Remove functions. 7420 (xrealloc_static): Remove macro. Use xrealloc instead. 7421 74222003-06-15 Bruno Haible <bruno@clisp.org> 7423 7424 * x-awk.c (phase2_getc, x_awk_lex): Increase bufmax proportionally. 7425 * x-c.c (comment_add, comment_line_end, phase5_get, phase6_get): 7426 Likewise. 7427 * x-elisp.c (comment_add, comment_line_end): Likewise. 7428 * x-librep.c (comment_add, comment_line_end): Likewise. 7429 * x-lisp.c (comment_add, comment_line_end): Likewise. 7430 * x-php.c (comment_add, comment_line_end, x_php_lex): Likewise. 7431 * x-python.c (comment_add, comment_line_end, phase5_get): Likewise. 7432 * x-rst.c (extract_rst): Likewise. 7433 * x-smalltalk.c (comment_add, comment_line_end, phase2_get): Likewise. 7434 * x-tcl.c (comment_add, comment_line_end): Likewise. 7435 * x-ycp.c (phase2_getc, x_ycp_lex): Likewise. 7436 74372003-06-15 Bruno Haible <bruno@clisp.org> 7438 7439 * xgettext.c (current_formatstring_parser1, 7440 current_formatstring_parser2): New variables, replacing 7441 current_formatstring_parser. 7442 (remember_a_message, remember_a_message_plural): Try both 7443 formatstring parsers. 7444 (language_to_extractor): Allow two formatstring parsers per language, 7445 not just one. 7446 * x-perl.h (SCANNERS_PERL): Add formatstring_c as secondary format 7447 string parser. 7448 * x-awk.h (SCANNERS_AWK): Update. 7449 * x-c.h (SCANNERS_C): Update. 7450 * x-elisp.h (SCANNERS_ELISP): Update. 7451 * x-glade.h (SCANNERS_GLADE): Update. 7452 * x-java.h (SCANNERS_JAVA): Update. 7453 * x-librep.h (SCANNERS_LIBREP): Update. 7454 * x-lisp.h (SCANNERS_LISP): Update. 7455 * x-php.h (SCANNERS_PHP): Update. 7456 * x-po.h (SCANNERS_PO): Update. 7457 * x-properties.h (SCANNERS_PROPERTIES): Update. 7458 * x-python.h (SCANNERS_PYTHON): Update. 7459 * x-rst.h (SCANNERS_RST): Update. 7460 * x-smalltalk.h (SCANNERS_SMALLTALK): Update. 7461 * x-tcl.h (SCANNERS_TCL): Update. 7462 * x-ycp.h (SCANNERS_YCP): Update. 7463 74642003-06-15 Bruno Haible <bruno@clisp.org> 7465 7466 * x-perl.c (case_whitespace): New macro. 7467 (is_whitespace): New function. 7468 (interpolate_keywords): Add lineno argument. Track newlines to update 7469 lineno while processing the string. Use is_whitespace. 7470 (extract_triple_quotelike): Update. Use is_whitespace. 7471 (extract_variable): Simplify: add final NUL byte only when done. Use 7472 is_whitespace. 7473 (x_perl_prelex): Use is_whitespace. After reading a here document, use 7474 line_number+1, not line_number. Fix buffer overrun in <<XYZ handling. 7475 (collect_message): Use is_whitespace. 7476 (extract_balanced): Call free_token at the end of the loop, not at the 7477 beginning. 7478 74792003-06-14 Bruno Haible <bruno@clisp.org> 7480 7481 * x-perl.c (enum token_type_ty): Reorder, so as to simplify the 7482 function free_token(). 7483 (struct token_ty): Fix comments. 7484 (token2string): Add const. 7485 (token_stack): Make static. 7486 (*_debug, stack_dump): Remove all fflushs. 7487 (linebuf, linesize, linepos, linebuf_size, last_token, here_eaten, 7488 end_of_file): Make static. 7489 (last_string, last_string_finished): Remove unused variables. 7490 (phase1_getc, get_here_document, skip_pod): Test getline() result 7491 for being < 0, not == EOF. 7492 (phase1_ungetc): Signal internal error through abort(), not exit(). 7493 (get_here_document): Tweak. Increase bufmax proportionally. 7494 (phase2_getc): Increase bufmax proportionally. 7495 (prefer_division_over_regexp): Fix comment. 7496 (extract_hex, extract_oct): Add const. Simplify. 7497 (extract_quotelike): Add a safety check. 7498 (extract_quotelike_pass1): Increase bufmax proportionally. Fix 7499 insufficient memory allocation at "bufpos + len >= bufmax". 7500 (extract_quotelike_pass3): Increase bufmax proportionally. Make crs 7501 const. After \x{ABC} position crs after the closing brace. Simplify \c 7502 code. Reduce memory allocation when \N{ABC} is seen. Fix bug in \l and 7503 \u. Fix error message when $ or @ is seen. 7504 (extract_variable): Increase bufmax proportionally. 7505 (interpolate_keywords): Likewise. Convert c's value to unsigned char. 7506 (x_perl_prelex): Increase bufmax proportionally. Compute 4th argument 7507 to extract_triple_quotelike completely. 7508 (extract_perl): Initialize token_stack correctly. 7509 75102003-06-13 Bruno Haible <bruno@clisp.org> 7511 7512 * msgexec.c (process_string): Pass null_stderr=false. 7513 * msgfilter.c (process_string): Likewise. 7514 * msggrep.c (is_string_selected): Likewise. 7515 * read-java.c (execute_and_read_po_output): Likewise. 7516 * read-tcl.c (msgdomain_read_tcl): Likewise. 7517 * msginit.c (project_id, project_id_version, get_user_email, 7518 language_team_address): Return a default value if the subprocess 7519 fails, instead of exiting. 7520 75212003-06-12 Bruno Haible <bruno@clisp.org> 7522 7523 * Makefile.am (noinst_HEADERS): Add x-perl.h. 7524 (FORMAT_SOURCE): Add format-perl.c. 7525 (xgettext_SOURCES): Add x-perl.c. 7526 * message.h (enum format_type): Mention perl between tcl and php. 7527 * message.c (format_language, format_language_pretty): Likewise. 7528 * format.h (formatstring_perl): Likewise. 7529 * format.c (formatstring_parsers): Likewise. 7530 * format-perl.c: Use GNU coding style. Prefer xmalloc over xcalloc. 7531 * x-perl.h: Assume ANSI C. 7532 * x-perl.c: Assume ANSI C. Use GNU coding style. Prefer xmalloc over 7533 xcalloc. 7534 (token_buf): Remove unused variable. 7535 (xcalloc_debug, stack_push, stack_pop): Remove unused functions. 7536 * xgettext.c: Mention perl between tcl and php. 7537 75382003-06-11 Guido Flohr <guido@imperia.net> 7539 7540 * message.h (enum format_type): New enum value 'format_perl'. 7541 (NFORMATS): Increment. 7542 * message.c (format_language, format_language_pretty): Add entry 7543 for perl. 7544 * format.h (formatstring_perl): New declaration. 7545 * format-perl.c: New file. 7546 * format.c (formatstring_parsers): Add entry for perl. 7547 * x-perl.h: New file. 7548 * x-perl.c: New file. 7549 * xgettext.c: Include x-perl.h. 7550 (main): Call x_perl_extract_all, x_perl_keyword. 7551 (usage): Mention Perl language. 7552 (language_to_extractor): Add Perl rule. 7553 (extension_to_language): Add Perl rule. 7554 75552003-06-08 Bruno Haible <bruno@clisp.org> 7556 7557 * Makefile.vms (LDADD): Take options from .opt files. 7558 (libiconv.opt): New rule. 7559 (msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe, xgettext.exe, 7560 msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe, 7561 msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe): 7562 Depend on it. 7563 * plural-eval.c: Include "eval-plural.h" without a path, rely on the 7564 Makefile's -I options instead. 7565 * read-properties.c (conv_from_java): Change type of q to 7566 'unsigned char *'. 7567 Reported by Jouk Jansen <joukj@hrem.stm.tudelft.nl>. 7568 75692003-05-27 Bruno Haible <bruno@clisp.org> 7570 7571 * plural-table.c (plural_table): Correct entry for Slovak. 7572 Reported by Marcel Telka <marcel@telka.sk>. 7573 75742003-05-24 Bruno Haible <bruno@clisp.org> 7575 7576 * x-glade.h (EXTENSIONS_GLADE): Also recognize the .glade2 extension. 7577 * x-glade.c (start_element_handler): Also extract strings according to 7578 Glade 2 conventions. 7579 75802003-05-22 Bruno Haible <bruno@clisp.org> 7581 7582 * gettext-0.12.1 released. 7583 75842003-05-21 Bruno Haible <bruno@clisp.org> 7585 7586 * msggrep.c (main) [Solaris]: Fix syntax error. 7587 Reported by Valery Beaud <valery.beaud@art.alcatel.fr>. 7588 75892003-05-21 Bruno Haible <bruno@clisp.org> 7590 7591 * xgettext.c (output_syntax): New variable. 7592 (main): Set it. 7593 (finalize_header): If --properties-output was given, set the charset. 7594 75952003-05-18 Bruno Haible <bruno@clisp.org> 7596 7597 * Makefile.msvc (DEBUGFLAGS): New variable. 7598 (gettextsrc.lib): Use it. 7599 (msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe, xgettext.exe, 7600 msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe, 7601 msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe): 7602 Use it, and MFLAGS too. 7603 76042003-05-17 Bruno Haible <bruno@clisp.org> 7605 7606 * gettext-0.12 released. 7607 76082003-05-17 Bruno Haible <bruno@clisp.org> 7609 7610 * Makefile.msvc (msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe, 7611 msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe, 7612 msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe): 7613 Link with iconv.lib, needed by intl.lib. 7614 76152003-05-12 Bruno Haible <bruno@clisp.org> 7616 7617 * msginit.c (F_OK): Provide a fallback value. 7618 Reported by Perry Rapp. 7619 76202003-05-10 Bruno Haible <bruno@clisp.org> 7621 7622 * msgl-iconv.c (iconv_string): Don't return -1 just because the string 7623 is longer than 4 KB. 7624 Reported by Denis Barbier <barbier@linuxfr.org>. 7625 76262003-05-04 Bruno Haible <bruno@clisp.org> 7627 7628 * po-lex.h (po_gram_error): Don't use ISO C 99 feature on DEC C. 7629 * po-lex.c (po_gram_error): LIkewise. 7630 76312003-05-03 Bruno Haible <bruno@clisp.org> 7632 7633 * msgfilter.c: Include <sys/select.h> also on EMX. 7634 Reported by Andreas Buening <andreas.buening@nexgo.de>. 7635 76362003-04-26 Bruno Haible <bruno@clisp.org> 7637 7638 * message.h (msgdomain_list_ty): Add field 'encoding'. 7639 * message.c (msgdomain_list_alloc): Initialize it. 7640 * read-properties.h: New file. 7641 * read-properties.c: New file. 7642 * read-po-abstract.h (abstract_po_reader_class_ty): In 7643 directive_message field, add force_fuzzy argument. 7644 (po_scan_start, po_scan_end): Remove declarations. 7645 (input_syntax_ty): New type. 7646 (po_callback_message): Add force_fuzzy argument. 7647 * read-po-abstract.c (call_directive_message, po_callback_message): 7648 Add force_fuzzy argument. 7649 (po_scan_start, po_scan_end): Make static. 7650 (po_scan): Add support for syntax_properties. Move 7651 error_message_count handling to here. 7652 (po_callback_message): Move po_lex_charset_set invocation away. 7653 * read-po.h (default_po_reader_class_ty): In add_message field, add 7654 force_fuzzy argument. 7655 (default_directive_message, default_add_message): Add force_fuzzy 7656 argument. 7657 (inout_syntax): New declaration. 7658 * read-po.c (call_add_message): Add force_fuzzy argument. 7659 (default_directive_message, default_add_message): Likewise. 7660 (input_syntax): New variable. 7661 (read_po): Pass input_syntax to po_scan(). Set mdlp->encoding if 7662 possible. 7663 * po-gram-gen.y: Pass force_fuzzy = false. 7664 (do_callback_message): New function. Move po_lex_charset_set 7665 invocation to here. 7666 * po-lex.c (lex_end): Move error_message_count handling away. 7667 * write-properties.h: New file. 7668 * write-properties.c: New file. 7669 * write-po.h (message_print_syntax_properties): New declaration. 7670 * write-po.c (use_syntax_properties): New variable. 7671 (message_print_syntax_properties): New function. 7672 (msgdomain_list_print_po): New function, extracted from 7673 msgdomain_list_print. 7674 (msgdomain_list_print): Add check for plural forms. Add support for 7675 writing the .properties format. 7676 (extract_po): Renamed from extract. 7677 * write-java.h (msgdomain_write_java): Add canon_encoding argument. 7678 * write-java.c (msgdomain_write_java): Likewise. 7679 * write-tcl.h (msgdomain_write_tcl): Likewise. 7680 * write-tcl.c (msgdomain_write_tcl): Likewise. 7681 * msgl-cat.c (catenate_msgdomain_list): Use mdlp->encoding if there 7682 is no header entry. Set total_mdlp->encoding if possible. 7683 * msgl-iconv.c (iconv_msgdomain_list): Use mdlp->encoding if there 7684 is no header entry. Set mdlp->encoding. 7685 * msgattrib.c (long_options): Add --properties-input/output. 7686 (main): Handle them. 7687 (usage): Document options -P and -p. 7688 * msgcat.c (long_options): Add --properties-input/output. 7689 (main): Handle them. If option -p is used, convert to UTF-8 and 7690 ignore the to_code. 7691 (usage): Document options -P and -p. 7692 * msgcomm.c (long_options): Add --properties-input/output. 7693 (main): Handle them. 7694 (usage): Document options -P and -p. 7695 * msgconv.c (long_options): Add --properties-input/output. 7696 (main): Handle them. If option -p is used, ignore the to_code. 7697 (usage): Document options -P and -p. 7698 * msgen.c (long_options): Add --properties-input/output. 7699 (main): Handle them. 7700 (usage): Document options -P and -p. 7701 * msgfilter.c (long_options): Add --properties-input/output. 7702 (main): Handle them. 7703 (usage): Document options -P and -p. 7704 * msggrep.c (long_options): Add --properties-input/output. 7705 (main): Handle them. 7706 (usage): Document options -P and -p. 7707 * msginit.c (long_options): Add --properties-input/output. 7708 (main): Handle them. 7709 (usage): Document options -P and -p. 7710 * msgmerge.c (long_options): Add --properties-input/output. 7711 (main): Handle them. In update mode, --properties-input implies 7712 --properties-output. 7713 (usage): Document options -P and -p. 7714 (merge): Set result->encoding if possible. 7715 * msguniq.c (long_options): Add --properties-input/output. 7716 (main): Handle them. 7717 (usage): Document options -P and -p. 7718 * msgcmp.c (long_options): Add --properties-input. 7719 (main): Handle it. 7720 (usage): Document option -P. 7721 * msgexec.c (long_options): Add --properties-input. 7722 (main): Handle it. 7723 (usage): Document option -P. 7724 * msgfmt.c (long_options): Add --properties-input. 7725 (main): Handle it. Pass the known canon_encoding to 7726 msgdomain_write_java and msgdomain_write_tcl. 7727 (usage): Document option -P. 7728 (msgfmt_add_message): Add force_fuzzy argument. 7729 (read_po_file_msgfmt): Pass input_syntax to po_scan(). 7730 * msgunfmt.c (long_options): Add --properties-output. 7731 (main): Handle it. 7732 (usage): Document option -p. 7733 * x-properties.h: New file. 7734 * x-po.c (extract_add_message): Add force_fuzzy argument. 7735 (extract): Renamed from extract_po. Pass input_syntax to po_scan(). 7736 (extract_po): New function. 7737 (extract_properties): New function. 7738 * xgettext.h: Include read-po.h. 7739 * xgettext.c (long_options): Add --properties-output. 7740 (main): Handle it. 7741 (usage): Document options -L JavaProperties and --properties-output. 7742 (exclude_directive_message): Add force_fuzzy argument. 7743 (read_exclusion_file): Pass input_syntax to po_scan(). 7744 (table): Add support for .properties format. 7745 * Makefile.am (noinst_HEADERS): Add read-properties.h, 7746 write-properties.h, x-properties.h. 7747 (COMMON_SOURCE): Add read-properties.c. 7748 (libgettextsrc_la_SOURCES): Add write-properties.c. 7749 * Makefile.msvc (OBJECTS): Add read-properties.obj, 7750 write-properties.obj. 7751 (read-properties.obj, write-properties.obj): New rules. 7752 * Makefile.vms (OBJECTS): Add read-properties.obj, 7753 write-properties.obj. 7754 (read-properties.obj, write-properties.obj): New rules. 7755 * FILES: Update. 7756 77572003-04-21 Bruno Haible <bruno@clisp.org> 7758 7759 * read-po-abstract.h (po_scan_file): Remove declaration. 7760 * read-po-abstract.c (po_scan_file): Remove function. 7761 * read-po.c (read_po_file): Call read_po. 7762 * msgfmt.c (read_po_file_msgfmt): Call open_po_file. Invoke po_scan 7763 instead of po_scan_file. 7764 * xgettext.c (read_exclusion_file): Call open_po_file. Invoke po_scan 7765 instead of po_scan_file. 7766 77672003-04-20 Bruno Haible <bruno@clisp.org> 7768 7769 * open-po.h (open_po_file): Add argument 'exit_on_error'. 7770 * open-po.c (try_open_po_file): Renamed from open_po_file. 7771 (open_po_file): New function. 7772 * po-lex.h (lex_end): Change return type to void. 7773 (lex_open, lex_close): Remove declarations. 7774 * po-lex.c (lex_end): Change return type to void. 7775 (lex_open, lex_close): Remove functions. 7776 * read-po-abstract.c (po_scan_file): Inline lex_open and lex_close. 7777 Reuse po_scan code. 7778 77792003-04-14 Bruno Haible <bruno@clisp.org> 7780 7781 * hostname.c (usage): Split strings: use one string per option 7782 description. 7783 * msgattrib.c (usage): Likewise. 7784 * msgcat.c (usage): Likewise. 7785 * msgcmp.c (usage): Likewise. 7786 * msgcomm.c (usage): Likewise. 7787 * msgconv.c (usage): Likewise. 7788 * msgen.c (usage): Likewise. 7789 * msgexec.c (usage): Likewise. 7790 * msgfilter.c (usage): Likewise. 7791 * msgfmt.c (usage): Likewise. 7792 * msggrep.c (usage): Likewise. 7793 * msginit.c (usage): Likewise. 7794 * msgmerge.c (usage): Likewise. 7795 * msgunfmt.c (usage): Likewise. 7796 * msguniq.c (usage): Likewise. 7797 * urlget.c (usage): Likewise. 7798 * xgettext.c (usage): Likewise. 7799 78002003-04-13 Bruno Haible <bruno@clisp.org> 7801 7802 Unify three PO file parsers. 7803 * read-po-abstract.h: Renamed from po.h. 7804 (abstract_po_reader_class_ty): Renamed from po_method_ty. 7805 (abstract_po_reader_ty): Renamed from po_ty. 7806 (ABSTRACT_PO_READER_TY): Renamed from PO_BASE_TY. 7807 (po_reader_alloc): Renamed from po_alloc. 7808 (po_reader_free): Renamed from po_free. 7809 * read-po-abstract.c: Renamed from po.c. 7810 (po_reader_alloc): Renamed from po_alloc. 7811 (po_reader_free): Renamed from po_free. 7812 (call_parse_brief): Renamed from po_parse_brief. 7813 (call_parse_debrief): Renamed from po_parse_debrief. 7814 (call_directive_domain): Renamed from po_directive_domain. 7815 (call_directive_message): Renamed from po_directive_message. 7816 (call_comment): Renamed from po_comment. 7817 (call_comment_dot): Renamed from po_comment_dot. 7818 (call_comment_filepos): Renamed from po_comment_filepos. 7819 (call_comment_special): Renamed from po_comment_special. 7820 * read-po.h: Include read-po-abstract.h. 7821 (default_po_reader_class_ty, default_po_reader_ty): New types. 7822 (ABSTRACT_PO_READER_TY): New macro. 7823 (default_constructor, default_destructor, default_parse_brief, 7824 default_parse_debrief, default_directive_domain, 7825 default_directive_message, default_comment, default_comment_dot, 7826 default_comment_filepos, default_comment_special, default_set_domain, 7827 default_add_message): New declarations. 7828 (default_po_reader_alloc): New declaration. 7829 * read-po.c (default_po_reader_ty): Renamed from readall_class_ty. 7830 Add fields handle_comments, handle_filepos_comments, 7831 allow_domain_directives, allow_duplicates, 7832 allow_duplicates_if_same_msgstr. 7833 (call_set_domain, call_add_message, call_frob_new_message): New 7834 functions. 7835 (default_constructor): Renamed from readall_constructor. Don't set 7836 this->mdlp and this->mlp. 7837 (default_destructor): Renamed from readall_destructor. 7838 (default_parse_brief): Renamed from readall_parse_brief. 7839 (default_parse_debrief): New function. 7840 (default_copy_comment_state, default_reset_comment_state): New 7841 functions. 7842 (default_directive_domain): Renamed from readall_directive_domain. 7843 Call set_domain method. 7844 (default_directive_message): Renamed from readall_directive_message. 7845 Call add_message method. 7846 (default_comment): Renamed from readall_comment. 7847 (default_comment_dot): Renamed from readall_comment_dot. 7848 (default_comment_filepos): Renamed from readall_comment_filepos. 7849 (default_comment_special): Renamed from readall_comment_special. 7850 (default_set_domain, default_add_message): New functions. 7851 (default_methods): Renamed from readall_methods. 7852 (default_po_reader_alloc): New function. 7853 (read_po, read_po_file): Update. 7854 * msgfmt.c: Include read-po.h instead of po.h. 7855 (msgfmt_po_reader_ty): Renamed from msgfmt_class_ty. Inherit 7856 from default_po_reader_ty. 7857 (main): Drop po_lex_pass_comments call, done by default_parse_brief. 7858 (msgfmt_constructor): Renamed from format_constructor. Call superclass 7859 function. 7860 (msgfmt_parse_debrief): Renamed from format_debrief. Call superclass 7861 function. 7862 (format_directive_domain): Remove function. 7863 (msgfmt_set_domain): New function. 7864 (format_directive_message): Remove function. 7865 (msgfmt_add_message, msgfmt_frob_new_message): New functions. 7866 (msgfmt_comment_special): Renamed from format_comment_special. 7867 (msgfmt_methods): Renamed from format_methods. 7868 (read_po_file_msgfmt): Renamed from read_po_file. 7869 * x-po.c: Include read-po.h instead of po.h. 7870 (extract_class_ty, extract_constructor, extract_directive_domain, 7871 extract_directive_message, extract_parse_brief, extract_comment, 7872 extract_comment_dot, extract_comment_filepos, extract_comment_special): 7873 Remove functions. 7874 (extract_add_message): New function. 7875 (extract_methods): Update. 7876 (extract_po): Update. 7877 * xgettext.c: Include read-po-abstract.h instead of po.h. 7878 (exclude_directive_domain, exclude_directive_message, exclude_methods, 7879 read_exclusion_file): Update. 7880 * msgcmp.c: Don't include po.h. 7881 * msgmerge.c: Likewise. 7882 * po-gram-gen.y: Include read-po-abstract.h instead of po.h. 7883 * po-hash-gen.y: Likewise. 7884 (po_parse_comment_filepos): Renamed from po_hash. 7885 * po-hash.h (po_parse_comment_filepos): Renamed from po_hash. 7886 * Makefile.am (noinst_HEADERS): Remove po.h, add read-po-abstract.h. 7887 (COMMON_SOURCE): Remove po.c, add read-po-abstract.c. 7888 * Makefile.msvc (OBJECTS): Remove po.obj, add read-po-abstract.obj. 7889 (read-po-abstract.obj): Renamed from po.obj. 7890 * Makefile.vms (OBJECTS): Remove po.obj, add read-po-abstract.obj. 7891 (read-po-abstract.obj): Renamed from po.obj. 7892 78932003-04-13 Bruno Haible <bruno@clisp.org> 7894 7895 * read-po.c (readall_directive_message): Separate accumulation and 7896 reset. 7897 * x-po.c (extract_directive_message): Likewise. 7898 78992003-04-13 Bruno Haible <bruno@clisp.org> 7900 7901 * write-po.h (message_print_comment, message_print_comment_dot, 7902 message_print_comment_filepos, message_print_comment_flags): New 7903 declarations. 7904 * write-po.c: Reorder functions. 7905 (message_print_comment, message_print_comment_dot, 7906 message_print_comment_filepos, message_print_comment_flags): New 7907 functions, extracted from message_print. 7908 (message_print): Use them. 7909 (message_print_obsolete): Use message_print_comment. 7910 79112003-04-22 Bruno Haible <bruno@clisp.org> 7912 7913 * plural-table.c (plural_table): Add an entry about Faroese. 7914 Reported by Jacob Sparre Andersen <sparre@crs4.it>. 7915 79162003-04-13 Bruno Haible <bruno@clisp.org> 7917 7918 * po.h (po_scan_start, po_scan_end): New declarations. 7919 * po.c: Reorder functions. 7920 (po_scan_start, po_scan_end): New functions. 7921 (po_scan, po_scan_file): Use them. 7922 79232003-04-12 Bruno Haible <bruno@clisp.org> 7924 7925 * Makefile.vms: New variables ABIFLAGS, DEFS. Avoid rules with no 7926 lines. Don't use the force target. Correct wildcard syntax. 7927 Suggested by Jouk Jansen <joukj@hrem.stm.tudelft.nl>. 7928 79292003-04-13 Bruno Haible <bruno@clisp.org> 7930 7931 * xgettext.c (construct_header): Remove spurious comma. 7932 79332003-03-30 Bruno Haible <bruno@clisp.org> 7934 7935 * Makefile.vms: New file. 7936 * Makefile.am (EXTRA_DIST): Add Makefile.vms. 7937 (x-java.c): Prepend a few VMS specific lines. 7938 * po-lex.c (mbfile_getc): Change element type of scatchbuf to 7939 'unsigned char'. 7940 * write-java.c (string_hashcode, write_java_string): Cast argument of 7941 u8_mbtouc. 7942 * write-tcl.c (write_tcl_string): Likewise. 7943 * x-python.c (phase7_getuc): Cast argument of unicode_name_character. 7944 * msgfilter.c (write): #undef before redefining it. Needed for VMS. 7945 (select): Likewise. 7946 79472003-03-30 Bruno Haible <bruno@clisp.org> 7948 7949 * Makefile.am (noinst_HEADERS): Add po-gram-gen2.h. 7950 (BUILT_SOURCES): Add po-gram-gen2.h. 7951 (DISTCLEANFILES): Remove po-gram-gen2.h. 7952 (po-gram-gen2.h): Simplify rule. 7953 79542003-03-17 Bruno Haible <bruno@clisp.org> 7955 7956 Native Woe32/MSVC support. 7957 * Makefile.msvc: New file. 7958 * Makefile.am (EXTRA_DIST): Add it. 7959 * msgfilter.c: Include <sys/time.h> only if it exists. 7960 (process_string): Mark as NYI on Woe32. 7961 * msgfmt.c (sigjmp_buf, sigsetjmp, siglongjmp): Provide fallback 7962 definitions for Woe32. 7963 * msginit.c: Include <fcntl.h>, for F_OK. Include <pwd.h> only if it 7964 exists. 7965 (get_user_pwd, get_user_fullname): Adapt for when <pwd.h> is missing. 7966 (project_id, project_id_version, get_user_email, 7967 language_team_address): Use DEV_NULL instead of "/dev/null". 7968 * msggrep.c (is_string_selected): Likewise. 7969 * read-java.c (execute_and_read_po_output): Likewise. 7970 * read-tcl.c (msgdomain_read_tcl): Likewise. 7971 * write-mo.c: Include <sys/param.h> only if it exists. 7972 79732003-03-28 Bruno Haible <bruno@clisp.org> 7974 7975 * msgmerge.c (main): Use copy_file_preserving instead of copy_file. 7976 79772003-03-16 Bruno Haible <bruno@clisp.org> 7978 7979 * str-list.h (string_list_join): Comment out. 7980 * str-list.c (string_list_join): Comment out. 7981 79822003-03-10 Bruno Haible <bruno@clisp.org> 7983 7984 * msggrep.c (no_pass): Mention option -C. 7985 (usage): Document option -C completely. 7986 Reported by Martin Quinson <Martin.Quinson@tuxfamily.org>. 7987 79882003-02-28 Bruno Haible <bruno@clisp.org> 7989 7990 Support for relocatable installation. 7991 * msgattrib.c: Include relocatable.h. 7992 (main): Relocate LOCALEDIR value. 7993 * msgcat.c: Include relocatable.h. 7994 (main): Relocate LOCALEDIR value. 7995 * msgcmp.c: Include relocatable.h. 7996 (main): Relocate LOCALEDIR value. 7997 * msgcomm.c: Include relocatable.h. 7998 (main): Relocate LOCALEDIR value. 7999 * msgconv.c: Include relocatable.h. 8000 (main): Relocate LOCALEDIR value. 8001 * msgen.c: Include relocatable.h. 8002 (main): Relocate LOCALEDIR value. 8003 * msgexec.c: Include relocatable.h. 8004 (main): Relocate LOCALEDIR value. 8005 * msgfilter.c: Include relocatable.h. 8006 (main): Relocate LOCALEDIR value. 8007 * msgfmt.c: Include relocatable.h. 8008 (main): Relocate LOCALEDIR value. 8009 * msggrep.c: Include relocatable.h. 8010 (main): Relocate LOCALEDIR value. 8011 * msginit.c: Include relocatable.h. 8012 (main): Relocate LOCALEDIR value. 8013 (project_id, project_id_version, get_user_email): Relocate LIBDIR 8014 value. 8015 (language_team_address): Relocate LIBDIR and PROJECTSDIR values. 8016 * msgmerge.c: Include relocatable.h. 8017 (main): Relocate LOCALEDIR value. 8018 * msgunfmt.c: Include relocatable.h. 8019 (main): Relocate LOCALEDIR value. 8020 * msguniq.c: Include relocatable.h. 8021 (main): Relocate LOCALEDIR value. 8022 * xgettext.c: Include relocatable.h. 8023 (main): Relocate LOCALEDIR value. 8024 * read-java.c: Include relocatable.h. 8025 (msgdomain_read_java): Relocate GETTEXTJEXEDIR value. 8026 * read-tcl.c: Include relocatable.h. 8027 (msgdomain_read_tcl): Relocate GETTEXTDATADIR value. 8028 * hostname.c: Include relocatable.h. 8029 (main): Relocate LOCALEDIR value. Update copyright year. 8030 * urlget.c: Include relocatable.h. 8031 (main): Relocate LOCALEDIR value. Update copyright year. 8032 (fetch): Relocate GETTEXTJEXEDIR value. 8033 * user-email.in: Relocate $libdir. 8034 * Makefile.am (aliaspath): New variable. 8035 (DEFS): Define LOCALE_ALIAS_PATH. 8036 (msginit_SOURCES): Add .../localealias.c. 8037 (msginit_LDADD): Remove .../localealias.lo. 8038 (msgcmp_CFLAGS, msgfmt_CFLAGS, msgmerge_CFLAGS, msgunfmt_CFLAGS, 8039 xgettext_CFLAGS, msgattrib_CFLAGS, msgcat_CFLAGS, msgcomm_CFLAGS, 8040 msgconv_CFLAGS, msgen_CFLAGS, msgexec_CFLAGS, msgfilter_CFLAGS, 8041 msggrep_CFLAGS, msginit_CFLAGS, msguniq_CFLAGS, hostname_CFLAGS, 8042 urlget_CFLAGS): New variables. 8043 (msgcmp_LDFLAGS, msgfmt_LDFLAGS, msgmerge_LDFLAGS, msgunfmt_LDFLAGS, 8044 xgettext_LDFLAGS, msgattrib_LDFLAGS, msgcat_LDFLAGS, msgcomm_LDFLAGS, 8045 msgconv_LDFLAGS, msgen_LDFLAGS, msgexec_LDFLAGS, msgfilter_LDFLAGS, 8046 msggrep_LDFLAGS, msginit_LDFLAGS, msguniq_LDFLAGS, hostname_LDFLAGS, 8047 urlget_LDFLAGS): New variables. 8048 (install-exec-java-yes): Don't ignore INSTALL_PROGRAM_ENV. 8049 (RELOCATABLE_LIBRARY_PATH, RELOCATABLE_SRC_DIR, RELOCATABLE_BUILD_DIR, 8050 RELOCATABLE_CONFIG_H_DIR): New variables. 8051 80522003-03-13 Bruno Haible <bruno@clisp.org> 8053 8054 * msggrep.c (main): On Solaris, prefer /usr/xpg4/bin/grep to 8055 /usr/bin/grep. Needed for Solaris 2.8 and 2.9. 8056 Reported by Sven Utcke <utcke@informatik.uni-hamburg.de>. 8057 80582003-03-03 Bruno Haible <bruno@clisp.org> 8059 8060 * msgen.c (usage): Don't say that the entries are marked fuzzy. 8061 Reported by Karl Eichwalder <ke@suse.de>. 8062 80632003-02-23 Bruno Haible <bruno@clisp.org> 8064 8065 Improve error messages for invalid format strings. 8066 * format-invalid.h: New file. 8067 * format.h (struct formatstring_parser): Add invalid_reason argument 8068 to 'parse' field. 8069 * format-awk.c: Include c-ctype.h, xerror.h, format-invalid.h. 8070 (format_parse): Add invalid_reason argument. 8071 * format-c.c: Include c-ctype.h, xerror.h, format-invalid.h. 8072 (INVALID_C99_MACRO): New macro. 8073 (format_parse): Add invalid_reason argument. 8074 (get_c99_format_directives): Update. 8075 * format-elisp.c: Include c-ctype.h, xerror.h, format-invalid.h. 8076 (format_parse): Add invalid_reason argument. 8077 * format-java.c: Include xerror.h, format-invalid.h. 8078 (message_format_parse, choice_format_parse, format_parse): Add 8079 invalid_reason argument. 8080 (choice_format_parse): Return false if a choice contains an empty 8081 number part. 8082 * format-librep.c: Include c-ctype.h, xerror.h, format-invalid.h. 8083 (format_parse): Add invalid_reason argument. 8084 * format-lisp.c: Include xerror.h, format-invalid.h. 8085 (check_params, nocheck_params): Add directives, invalid_reason 8086 arguments. 8087 (parse_upto, format_parse): Add invalid_reason argument. 8088 * format-pascal.c: Include xerror.h, format-invalid.h. 8089 (format_parse): Add invalid_reason argument. 8090 * format-php.c: Include c-ctype.h, xerror.h, format-invalid.h. 8091 (format_parse): Add invalid_reason argument. 8092 * format-python.c: Include c-ctype.h, xerror.h, format-invalid.h. 8093 (INVALID_MIXES_NAMED_UNNAMED): New macro. 8094 (format_parse): Add invalid_reason argument. 8095 * format-tcl.c: Include c-ctype.h, xerror.h, format-invalid.h. 8096 (format_parse): Add invalid_reason argument. 8097 * format-ycp.c: Include c-ctype.h, xerror.h, format-invalid.h. 8098 (format_parse): Add invalid_reason argument. 8099 * msgfmt.c (check_pair): Output invalid_reason returned for msgstr. 8100 * msgmerge.c (msgfmt_check_pair_fails): Update. 8101 * xgettext.c (remember_a_message, remember_a_message_plural): Update. 8102 * Makefile.am (FORMAT_SOURCE): Add format-invalid.h. 8103 81042003-02-22 Bruno Haible <bruno@clisp.org> 8105 8106 * x-python.c (init_keywords): Add u*gettext variants and plural 8107 handling functions added in Python 2.3. 8108 81092003-02-22 Bruno Haible <bruno@clisp.org> 8110 8111 * Makefile.am (installdirs): Remove dependency, redundant with 8112 automake >= 1.6. 8113 81142003-02-20 Bruno Haible <bruno@clisp.org> 8115 8116 * Makefile.am (libgettextpo_la_DEPENDENCIES): New variable. 8117 Reported by Jim Meyering <jim@meyering.net>. 8118 81192003-02-19 Bruno Haible <bruno@clisp.org> 8120 8121 * Makefile.am (xgettext_LDADD): Mention $(LIBUNINAME) before 8122 libgettextsrc.la, not after it. Needed avoid link error on OSF/1 4.0: 8123 libtool produces a link command line that contains "-lc" where a 8124 shared library was used, and on OSF/1 4.0 "-lc" must not be used 8125 before objects that use integer division. 8126 81272003-02-18 Bruno Haible <bruno@clisp.org> 8128 8129 * message.c (msgdomain_list_free): Uncomment this function. 8130 * Makefile.am (libgettextpo_la_LDFLAGS): Add ../lib/libgettextlib.la. 8131 Needed for Solaris 2.7. 8132 81332003-02-16 Bruno Haible <bruno@clisp.org> 8134 8135 * msgmerge.c (message_merge): Add support for Report-Msgid-Bugs-To 8136 field. 8137 * xgettext.c (msgid_bugs_address): New variable. 8138 (long_options): Add option --msgid-bugs-address. 8139 (main): Handle option --msgid-bugs-address. 8140 (usage): Document option --msgid-bugs-address. 8141 (construct_header): Add 'Report-Msgid-Bugs-To:' field. Warn if 8142 msgid_bugs_address is empty. 8143 81442003-02-15 Bruno Haible <bruno@clisp.org> 8145 8146 * user-email.in: Add support for GNOME evolution, OpenOffice and 8147 StarOffice with nonstandard installation directory. 8148 81492003-02-15 Bruno Haible <bruno@clisp.org> 8150 8151 * msgattrib.c (main): Update year in --version output. 8152 * msgcat.c (main): Likewise. 8153 * msgcmp.c (main): Likewise. 8154 * msgcomm.c (main): Likewise. 8155 * msgconv.c (main): Likewise. 8156 * msgen.c (main): Likewise. 8157 * msgexec.c (main): Likewise. 8158 * msgfilter.c (main): Likewise. 8159 * msgfmt.c (main): Likewise. 8160 * msgunfmt.c (main): Likewise. 8161 * msguniq.c (main): Likewise. 8162 * xgettext.c (main): Likewise. 8163 81642003-02-12 Bruno Haible <bruno@clisp.org> 8165 8166 Big restructuring. 8167 * gettext.c: Remove file. 8168 * ngettext.c: Remove file. 8169 * Makefile.am (bin_PROGRAMS): Remove gettext, ngettext. 8170 (EXTRA_DIST): Add ChangeLog.0. 8171 (pkgdatadir): Define using 'gettext' instead of @PACKAGE@. 8172 (pkglibdir): Likewise. 8173 (INCLUDES): Refer to intl in gettext-runtime directory. 8174 (gettext_SOURCES, ngettext_SOURCES, gettext_LDADD, ngettext_LDADD): 8175 Remove variables. 8176 (install-exec-local, installdirs-local, uninstall-local, 8177 install-exec-java-yes, installdirs-java-yes, uninstall-java-yes): Use 8178 $(pkglibdir) instead of $(libdir)/$(PACKAGE). 8179 * plural.c: Update for changed directory structure. 8180 * user-email.in: Use 'gettext' instead of @PACKAGE@. 8181 8182 8183See ChangeLog.0 for earlier changes. 8184