2006-11-27 Bruno Haible <bruno@clisp.org>
* gettext-0.16.1 released.
2006-10-26 Bruno Haible <bruno@clisp.org>
* gettext-0.16 released.
2006-10-24 Bruno Haible <bruno@clisp.org>
* Makefile.am (AM_CPPFLAGS): Add also $(top_srcdir). Needed so that
woe32dll/export.h is found while compiling gettextsrc-exports.c in a
VPATH build.
Reported by Charles Wilson <cygwin@cwilson.fastmail.fm>.
2006-10-24 Bruno Haible <bruno@clisp.org>
* msgmerge.c (struct definitions_ty): Remove semicolon after
gl_lock_define invocation.
2006-10-21 Bruno Haible <bruno@clisp.org>
* po-error.h (po_error, po_error_at_line): Use format attribute only
with gcc >= 3.1.
2006-10-21 Bruno Haible <bruno@clisp.org>
* msgmerge.c (struct definitions_ty): Use gl_lock_define to declare
the findex_init_lock field.
(definitions_init): Use gl_lock_init to initialize it, instead of
memcpy hack.
2006-10-16 Bruno Haible <bruno@clisp.org>
Work around automake-1.10 problem described in
http://lists.gnu.org/archive/html/bug-automake/2006-08/msg00025.html.
* Makefile.am (CXXLINK): Remove variable.
(msgmerge_CXXFLAGS): New variable.
(libgettextsrc_la_LINK, msgattrib_LINK, msgcat_LINK, msgcomm_LINK,
msgconv_LINK, msgen_LINK, msgfilter_LINK, msggrep_LINK, msgmerge_LINK,
msguniq_LINK, xgettext_LINK): New variables.
2006-10-18 Bruno Haible <bruno@clisp.org>
* read-po.h (input_format_po): Mark as DLL_VARIABLE.
* read-properties.h (input_format_properties): Likewise.
* read-stringtable.h (input_format_stringtable): Likewise.
* write-po.h (output_format_po): Likewise.
* write-properties.h (output_format_properties): Likewise.
* write-stringtable.h (output_format_stringtable): Likewise.
2006-10-16 Bruno Haible <bruno@clisp.org>
* gettext-po.h.in: Move to ../libgettextpo/.
* gettext-po.c: Move to ../libgettextpo/.
* Makefile.am (lib_LTLIBRARIES): Remove libgettextpo.la.
(nodist_include_HEADERS): Remove variable.
(libgettextpo_la_SOURCES, LTV_CURRENT, LTV_REVISION, LTV_AGE,
libgettextpo_la_LDFLAGS, libgettextpo_la_DEPENDENCIES,
libgettextpo_la_LDFLAGS): Remove variables.
(EXTRA_DIST, BUILT_SOURCES, CLEANFILES): Remove gettext-po.h support.
(gettext-po.h): Remove rule.
2006-10-18 Bruno Haible <bruno@clisp.org>
* po-error.h (__attribute__, __format__, __printf__): New macros.
(po_error, po_error_at_line): Declare format string argument.
* po-lex.h (__attribute__, __format__, __printf__): New macros.
(po_gram_error, po_gram_error_at_line): Declare format string argument.
* msgl-cat.c (catenate_msgdomain_list): Avoid "gcc -Wshadow" warning.
* msgl-check.c (formatstring_error_logger): Avoid "gcc
-Wmissing-format-attribute" warning.
(check_pair): Avoid "gcc -Wshadow" warning.
* read-stringtable.c (stringtable_parse): Pass a mutable string as
msgstr to po_callback_message.
* write-po.c (msgdomain_list_print_po): Avoid "gcc -Wwrite-strings"
warning.
* xgettext.c (remember_a_message_plural): Free a temporary string
after use.
2006-10-17 Bruno Haible <bruno@clisp.org>
* lang-table.c (language_table): Add the most important languages that
have an ISO 639-2 code.
* msginit.c (catalogname_for_locale): Likewise.
2006-10-15 Bruno Haible <bruno@clisp.org>
* read-catalog-abstract.h (input_syntax_ty): Remove type.
(catalog_input_format): New structure type.
(catalog_input_format_ty): New type.
(catalog_reader_parse): Change type of input_syntax argument.
* read-catalog.h (input_syntax): Remove variable.
(read_catalog_stream, read_catalog_file): Add input_syntax argument.
* msgl-cat.h: Include read-catalog-abstract.h.
(catenate_msgdomain_list): Add input_syntax argument.
* read-po.h: New file.
* read-po.c: New file, extracted from read-catalog-abstract.c.
* msgattrib.c: Include read-po.h, read-properties.h, read-stringtable.h.
(main): Change handling of --properties-input, --stringtable-input
options. Update read_catalog_file calls.
* msgcat.c: Include read-po.h, read-properties.h, read-stringtable.h.
(main): Change handling of --properties-input, --stringtable-input
options. Update catenate_msgdomain_list call.
* msgcmp.c: Include read-po.h, read-properties.h, read-stringtable.h.
(main): Change handling of --properties-input, --stringtable-input
options. Update compare call.
(compare): Add input_syntax argument.
* msgcomm.c: Include read-po.h, read-properties.h, read-stringtable.h.
(main): Change handling of --properties-input, --stringtable-input
options. Update catenate_msgdomain_list call.
* msgconv.c: Include read-po.h, read-properties.h, read-stringtable.h.
(main): Change handling of --properties-input, --stringtable-input
options. Update read_catalog_file call.
* msgen.c: Include read-po.h, read-properties.h, read-stringtable.h.
(main): Change handling of --properties-input, --stringtable-input
options. Update read_catalog_file call.
* msgexec.c: Include read-po.h, read-properties.h, read-stringtable.h.
(main): Change handling of --properties-input, --stringtable-input
options. Update read_catalog_file call.
* msgfilter.c: Include read-po.h, read-properties.h, read-stringtable.h.
(main): Change handling of --properties-input, --stringtable-input
options. Update read_catalog_file call.
* msgfmt.c: Include read-po.h, read-properties.h, read-stringtable.h.
(main): Change handling of --properties-input, --stringtable-input
options. Update read_catalog_file_msgfmt call.
(read_catalog_file_msgfmt): Add input_syntax argument.
* msggrep.c: Include read-po.h, read-properties.h, read-stringtable.h.
(main): Change handling of --properties-input, --stringtable-input
options. Update read_catalog_file call.
* msginit.c: Include read-po.h, read-properties.h, read-stringtable.h.
(main): Change handling of --properties-input, --stringtable-input
options. Update read_catalog_file call.
* msgl-cat.c (catenate_msgdomain_list): Add input_syntax argument.
* msgmerge.c: Include read-po.h, read-properties.h, read-stringtable.h.
(main): Change handling of --properties-input, --stringtable-input
options. Update merge call.
(compendium): Read it in PO syntax.
(merge): Add input_syntax argument.
* msguniq.c: Include read-po.h, read-properties.h, read-stringtable.h.
(main): Change handling of --properties-input, --stringtable-input
options. Update catenate_msgdomain_list call.
* read-catalog-abstract.c: Don't include po-gram.h, read-properties.h,
read-stringtable.h.
(catalog_reader_parse): Change type of input_syntax argument. Invoke
the parser indirectly.
* read-catalog.c (input_syntax): Remove variable.
(read_catalog_stream, read_catalog_file): Add input_syntax argument.
* read-csharp.c: Include read-po.h.
(execute_and_read_po_output): Update read_catalog_stream call.
* read-java.c: Include read-po.h.
(execute_and_read_po_output): Update read_catalog_stream call.
* read-properties.c (properties_parse): Make static.
(input_format_properties): New variable.
* read-properties.h (properties_parse): Remove declaration.
(input_format_properties): New declaration.
* read-resources.c: Include read-po.h.
(execute_and_read_po_output): Update read_catalog_stream call.
* read-stringtable.c (stringtable_parse): Make static.
(input_format_stringtable): New variable.
* read-stringtable.h (stringtable_parse): Remove declaration.
(input_format_stringtable): New declaration.
* read-tcl.c: Include read-po.h.
(msgdomain_read_tcl): Update read_catalog_stream call.
* x-po.c: Include read-po.h, read-properties.h, read-stringtable.h.
(extract): Change type of input_syntax argument.
(extract_po, extract_properties, extract_stringtable): Update.
* xgettext.c: Include read-po.h.
(read_exclusion_file): Read it in PO syntax.
* gettext-po.c: Include read-po.h.
(po_file_read_v3, po_file_read_v2, po_file_read): Update
read_catalog_stream call.
* Makefile.am (noinst_HEADERS): Add read-po.h.
(COMMON_SOURCE): Add read-po.c.
2006-10-15 Bruno Haible <bruno@clisp.org>
* read-catalog-abstract.h (abstract_catalog_reader_ty): Renamed from
abstract_po_reader_ty.
(abstract_catalog_reader_class_ty): Renamed from
abstract_po_reader_class_ty. Update.
(ABSTRACT_CATALOG_READER_TY): Renamed from ABSTRACT_PO_READER_TY.
Update.
(abstract_catalog_reader_ty): Renamed from abstract_po_reader_ty.
Update.
(catalog_reader_alloc): Renamed from po_reader_alloc.
(catalog_reader_parse): Renamed from po_scan.
(catalog_reader_free): Renamed from po_reader_free.
* read-catalog.h: Update.
(default_catalog_reader_class_ty): Renamed from
default_po_reader_class_ty.
(DEFAULT_CATALOG_READER_TY): Renamed from DEFAULT_PO_READER_TY. Update.
(default_catalog_reader_ty): Renamed from default_po_reader_ty. Update.
(default_constructor, default_destructor, default_parse_brief,
default_parse_debrief, default_directive_domain,
default_directive_message, default_comment, default_comment_dot,
default_comment_filepos, default_comment_special, default_set_domain,
default_add_message): Update.
(default_catalog_reader_alloc): Renamed from default_po_reader_alloc.
Update.
(read_catalog_stream): Renamed from read_po.
(read_catalog_file): Renamed from read_po_file.
* open-catalog.h (open_catalog_file): Renamed from open_po_file.
* msgattrib.c: Update.
(main): Update.
* msgcat.c: Update.
* msgcmp.c: Update.
(compare): Update.
* msgcomm.c: Update.
* msgconv.c: Update.
(main): Update.
* msgen.c: Update.
(main): Update.
* msgexec.c: Update.
(main): Update.
* msgfilter.c: Update.
(main): Update.
* msgfmt.c: Update.
(read_catalog_file_msgfmt): Renamed from read_po_file_msgfmt. Update.
(main): Update.
(msgfmt_catalog_reader_ty): Renamed from msgfmt_po_reader_ty. Update.
(msgfmt_constructor, msgfmt_parse_debrief, msgfmt_set_domain,
msgfmt_add_message, msgfmt_frob_new_message, msgfmt_comment_special,
msgfmt_methods): Update.
(read_catalog_file_msgfmt): Renamed from read_po_file_msgfmt. Update.
* msggrep.c: Update.
(main): Update.
* msginit.c: Update.
(main): Update.
* msgl-cat.c: Update.
(catenate_msgdomain_list): Update.
* msgmerge.c: Update.
(compendium, merge): Update.
* msguniq.c: Update.
* open-catalog.c: Update.
(try_open_catalog_file): Renamed from try_open_po_file.
(open_catalog_file): Renamed from open_po_file. Update.
* po-gram-gen.y: Update.
* read-catalog-abstract.c: Update.
(callback_arg): Update.
(catalog_reader_alloc): Renamed from po_reader_alloc.
(catalog_reader_free): Renamed from po_reader_free.
(call_parse_brief, call_parse_debrief, call_directive_domain,
call_directive_message, call_comment, call_comment_dot,
call_comment_filepos, call_comment_special): Update.
(parse_start): Renamed from po_scan_start.
(parse_end): Renamed from po_scan_end.
(catalog_reader_parse): Renamed from po_scan.
* read-catalog.c: Update.
(call_set_domain, call_add_message, call_frob_new_message): Update.
(default_constructor, default_destructor, default_parse_brief,
default_parse_debrief, default_copy_comment_state,
default_reset_comment_state, default_directive_domain,
default_directive_message, default_comment, default_comment_dot,
default_comment_filepos, default_comment_special, default_set_domain,
default_add_message, default_methods): Update.
(default_catalog_reader_alloc): Renamed from default_po_reader_alloc.
(read_catalog_stream): Renamed from read_po. Update.
(read_catalog_file): Renamed from read_po_file. Update.
* read-csharp.c: Update.
(execute_and_read_po_output): Update.
* read-java.c: Update.
(execute_and_read_po_output): Update.
* read-properties.c: Update.
(properties_parse): Update.
* read-properties.h: Update.
(properties_parse): Update.
* read-resources.c: Update.
(execute_and_read_po_output): Update.
* read-stringtable.c: Update.
(stringtable_parse): Update.
* read-stringtable.h: Update.
(stringtable_parse): Update.
* read-tcl.c: Update.
(msgdomain_read_tcl): Update.
* x-po.c: Update.
(extract_add_message, extract_methods, extract): Update.
* xgettext.c: Update.
(exclude_directive_domain, exclude_directive_message, exclude_methods,
read_exclusion_file): Update.
* xgettext.h: Update.
* gettext-po.c: Update.
(po_file_read_v3, po_file_read_v2, po_file_read): Update.
* read-catalog-abstract.h: Renamed from read-po-abstract.h.
* read-catalog-abstract.c: Renamed from read-po-abstract.c.
* read-catalog.h: Renamed from read-po.h.
* read-catalog.c: Renamed from read-po.c.
* open-catalog.h: Renamed from open-po.h.
* open-catalog.c: Renamed from open-po.c.
* Makefile.am (noinst_HEADERS, COMMON_SOURCE, libgettextsrc_la_SOURCES):
Update.
2006-10-15 Bruno Haible <bruno@clisp.org>
* write-catalog.h: New file.
* write-catalog.c: New file, mostly extracted from write-po.c.
* write-po.h (message_page_width_set): Move declaration to
write-catalog.h.
(message_print_syntax_properties, message_print_syntax_stringtable):
Remove declarations.
(msgdomain_list_print): Move out to write-catalog.h, adding a
catalog_output_format_ty argument.
(msgdomain_list_sort_by_msgid, msgdomain_list_sort_by_filepos): Move
out to write-catalog.h.
(output_format_po): New declaration.
* write-po.c: Don't include fwriteerror.h, error-progname.h.
(page_width, message_page_width_set): Move out to write-catalog.c.
(use_syntax_properties): Remove variable.
(message_print_syntax_properties): Remove function.
(use_syntax_stringtable): Remove variable.
(message_print_syntax_stringtable): Remove function.
(wrap, message_print, message_print_obsolete, msgdomain_list_print_po):
Add page_width argument.
(msgdomain_list_print): Move out to write-catalog.c, adding a
catalog_output_format_ty argument.
(cmp_by_msgid, msgdomain_list_sort_by_msgid,
cmp_filepos, msgdomain_list_sort_filepos,
cmp_by_filepos, msgdomain_list_sort_by_filepos): Move out to
write-catalog.c.
(output_format_po): New variable.
* write-properties.h (msgdomain_list_print_properties): Remove
declaration.
(output_format_properties): New declaration.
* write-properties.c (msgdomain_list_print_properties): Make static.
(output_format_properties): New variable.
* write-stringtable.h (msgdomain_list_print_stringtable): Remove
declaration.
(output_format_stringtable): New declaration.
* write-stringtable.c (msgdomain_list_print_stringtable): Make static.
(output_format_stringtable): New variable.
* msgattrib.c: Include write-catalog.h, write-properties.h,
write-stringtable.h.
(main): Change handling of --properties-output, --stringtable-output
options. Pass the output_syntax to msgdomain_list_print.
* msgcat.c: Include write-catalog.h, write-properties.h,
write-stringtable.h.
(main): Change handling of --properties-output, --stringtable-output
options. Pass the output_syntax to msgdomain_list_print.
* msgcomm.c: Include write-catalog.h, write-properties.h,
write-stringtable.h.
(main): Change handling of --properties-output, --stringtable-output
options. Pass the output_syntax to msgdomain_list_print.
* msgconv.c: Include write-catalog.h, write-properties.h,
write-stringtable.h.
(main): Change handling of --properties-output, --stringtable-output
options. Pass the output_syntax to msgdomain_list_print.
* msgen.c: Include write-catalog.h, write-properties.h,
write-stringtable.h.
(main): Change handling of --properties-output, --stringtable-output
options. Pass the output_syntax to msgdomain_list_print.
* msgfilter.c: Include write-catalog.h, write-properties.h,
write-stringtable.h.
(main): Change handling of --properties-output, --stringtable-output
options. Pass the output_syntax to msgdomain_list_print.
* msggrep.c: Include write-catalog.h, write-properties.h,
write-stringtable.h.
(main): Change handling of --properties-output, --stringtable-output
options. Pass the output_syntax to msgdomain_list_print.
* msginit.c: Include write-catalog.h, write-properties.h,
write-stringtable.h.
(main): Change handling of --properties-output, --stringtable-output
options. Pass the output_syntax to msgdomain_list_print.
* msgmerge.c: Include write-catalog.h, write-properties.h,
write-stringtable.h.
(main): Change handling of --properties-output, --stringtable-output
options. Pass the output_syntax to msgdomain_list_print.
* msgunfmt.c: Include write-catalog.h, write-properties.h,
write-stringtable.h.
(main): Change handling of --properties-output, --stringtable-output
options. Pass the output_syntax to msgdomain_list_print.
* msguniq.c: Include write-catalog.h, write-properties.h,
write-stringtable.h.
(main): Change handling of --properties-output, --stringtable-output
options. Pass the output_syntax to msgdomain_list_print.
* xgettext.c: Include write-catalog.h, write-properties.h,
write-stringtable.h.
(output_syntax): Change type to catalog_output_format_ty.
(main): Update. Pass the output_syntax to msgdomain_list_print.
(finalize_header): Update.
* gettext-po.c: Include write-catalog.h.
(po_file_write): Specify PO syntax.
* Makefile.am (noinst_HEADERS): Add write-catalog.h.
(libgettextsrc_la_SOURCES): Add write.catalog.c.
2006-10-05 Bruno Haible <bruno@clisp.org>
* lang-table.c (language_table): Add Adangme, Kashubian. Fix the
names of Western Frisian, Marshallese, Sinhala.
* msginit.c (catalogname_for_locale): Add entries for Kashubian,
Western Frisian, South Ndebele. Change entry for Serbian from sr_CS to
sr_RS.
2006-10-06 Bruno Haible <bruno@clisp.org>
* write-java.c (msgdomain_write_java): Use fopen_temp, fwriteerror_temp
instead of fopen, fwriteerror.
* write-csharp.c (msgdomain_write_csharp): Likewise.
2006-10-06 Bruno Haible <bruno@clisp.org>
* Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 3:0:3.
2006-10-03 Bruno Haible <bruno@clisp.org>
* message.h (struct message_ty): New fields prev_msgctxt, prev_msgid,
prev_msgid_plural.
* message.c (message_alloc): Initialize the prev_msg* fields.
(message_free): Free the prev_msg* fields.
(message_copy): Copy the prev_msg* fields.
* msgl-ascii.c (is_ascii_message): Consider also the prev_msg* fields.
* msgl-cat.c (catenate_msgdomain_list): Copy the prev_msg* fields if
a message is copied, not merged.
* msgl-equal.c (message_equal): Consider also the prev_msg* fields.
* msgl-iconv.c (convert_prev_msgid): New function.
(iconv_message_list): Call it.
iconvable_prev_msgid): New function.
(is_message_list_iconvable): Call it.
* po-lex.c (po_lex_previous): New variable.
(lex_start, lex_end): Reset it.
(keyword_p): Test it. New return values PREV_MSGID, PREV_MSGID_PLURAL,
PREV_MSGCTXT.
(po_gram_lex): Recognize #| and #~| syntax. New return value
PREV_STRING.
* po-gram-gen.y (do_callback_message): Add prev_msgctxt, prev_msgid,
prev_msgid_plural arguments.
(free_message_intro): New macro.
(PREV_MSGCTXT, PREV_MSGID, PREV_MSGID_PLURAL, PREV_STRING): New tokens.
(prev, message_intro): New structures.
(po_file): Renamed from msgfmt.
(message): Pass prev_* fields around. Call free_message_intro.
(message_intro, prev): New rules.
(msg_intro): Renamed from message_intro.
(prev_msg_intro, prev_msgid_pluralform, prev_string_list): New rules.
* read-po-abstract.h (struct abstract_po_reader_class_ty): Add
prev_msgctxt, prev_msgid, prev_msgid_plural arguments to the
'directive_message' method.
(po_callback_message): Add prev_msgctxt, prev_msgid,
prev_msgid_plural arguments.
* read-po-abstract.c (call_directive_message, po_callback_message): Add
prev_msgctxt, prev_msgid, prev_msgid_plural arguments.
* read-po.h (struct default_po_reader_class_ty): Add prev_msgctxt,
prev_msgid, prev_msgid_plural arguments to the 'add_message' method.
(default_directive_message, default_add_message): Add prev_msgctxt,
prev_msgid, prev_msgid_plural arguments.
* read-po.c (call_add_message, default_directive_message,
default_add_message): Add prev_msgctxt, prev_msgid, prev_msgid_plural
arguments.
* read-properties.c (properties_parse): Update.
* read-stringtable.c (stringtable_parse): Update.
* xgettext.c (exclude_directive_message): Add prev_msgctxt, prev_msgid,
prev_msgid_plural arguments.
* x-po.c (extract_add_message): Add prev_msgctxt, prev_msgid,
prev_msgid_plural arguments.
* write-po.c (wrap): Add extra_indent argument.
(message_print, message_print_obsolete): Print the prev_msgctxt,
prev_msgid, prev_msgid_plural fields. Compute an extra_indent.
* msgmerge.c (keep_previous): New variable.
(long_options): Add --previous option.
(main): Handle it.
(usage): Document --previous option.
(message_merge): Add force_fuzzy argument. Set the new message's
prev_msg* fields.
(match_domain): Update.
* msgattrib.c (REMOVE_PREV): New enum item.
(long_options): Add --clear-previous option.
(main): Handle it.
(usage): Document --clear-previous option.
(process_message_list): Handle REMOVE_PREV.
* msgfmt.c (msgfmt_add_message): Add prev_msgctxt, prev_msgid,
prev_msgid_plural arguments.
* gettext-po.c (po_message_prev_msgctxt, po_message_set_prev_msgctxt,
po_message_prev_msgid, po_message_set_prev_msgid,
po_message_prev_msgid_plural, po_message_set_prev_msgid_plural): New
functions.
2006-10-03 Bruno Haible <bruno@clisp.org>
* msgmerge.c (definitions_init): Fix initialization of fresh_lock.
2006-10-03 Bruno Haible <bruno@clisp.org>
* msgcmp.c (include_fuzzies, include_untranslated): New variables.
(long_options): Add options --use-fuzzy, --use-untranslated.
(main): Handle them.
(usage): Document them.
(match_domain): Consider include_fuzzies and include_untranslated.
2006-10-02 Bruno Haible <bruno@clisp.org>
* gettext-po.h.in (LIBGETTEXTPO_VERSION): Bump version number.
* Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 2:1:2.
2006-10-01 Bruno Haible <bruno@clisp.org>
* x-perl.c (extract_balanced): Remove state argument.
* x-perl.c (extract_balanced): Remove unused variable prev_last_token.
Fix Perl parsing bug introduced between 0.14.6 and 0.15.
* x-perl.c (extract_balanced): Add eat_delim and comma_delim arguments.
Use recursion to handle the case of a keyword not followed by an
opening parenthesis. When a keyword is seen, set next_argparser
instead of modifying the argparser variable of the current recursion.
When seeing an opening parenthesis, distinguish the case of function
arguments and the case of a subexpression. Don't call collect_message
for unused argument positions.
Reported by Nicolas François <nicolas.francois@centraliens.net>.
* x-perl.c (extract_balanced): Remove unused variable.
2006-09-06 Bruno Haible <bruno@clisp.org>
* msgl-iconv.c: Include xstriconv.h instead of iconvstring.h.
(convert_string, convert_msgstr, iconvable_string, iconvable_msgstr):
Use xmem_cd_iconv instead of iconv_string.
* recode-sr-latin.c: Include xstriconv.h instead of iconvstring.h.
(process): Use xmem_cd_iconv instead of iconv_string.
2006-09-04 Bruno Haible <bruno@clisp.org>
* Makefile.am (msginit_SOURCES): Add ../../gettext-runtime/intl/lock.c.
Reported by Aaron Williams <aaron_williams@net.com>.
2006-08-28 Bruno Haible <bruno@clisp.org>
* x-scheme.c (read_object): Don't call arglist_parser_remember if
argparser is NULL.
* x-elisp.c (read_object): Likewise.
* x-librep.c (read_object): Likewise.
* x-lisp.c (read_object): Likewise.
Reported by Kevin Ryde <user42@zip.com.au>.
2006-08-16 Bruno Haible <bruno@clisp.org>
* plural-table.c (plural_table): Put Hungarian under nplurals=2.
Reported by Arpad Biro <biro_arpad@yahoo.com> and
Gabor Kelemen <kelemeng@gnome.hu>.
2006-08-16 Bruno Haible <bruno@clisp.org>
* read-mo.c: Include stdbool.h, stdlib.h, format.h.
(read_mo_file): Mark messages with system-dependent segments as
"#, c-format" or "#, objc-format", as appropriate.
Reported by Egmont Koblinger <egmont@uhulinux.hu>.
2006-08-07 Bruno Haible <bruno@clisp.org>
* xgettext.c (remember_a_message): Use the position passed as argument
instead of a dummypos.
Reported by Paul Eggert <eggert@cs.ucla.edu>.
2006-08-01 Bruno Haible <bruno@clisp.org>
Fix behaviour of msgmerge when the PO file and the compendium are
in different encodings.
* msgl-iconv.h (is_message_list_iconvable): New declaration.
* msgl-iconv.c (iconvable_string, iconvable_string_list,
iconvable_msgid, iconvable_msgstr, is_message_list_iconvable): New
functions.
* msgmerge.c: Include xallocsa.h.
(merge): In the case that the .pot file is ASCII, not UTF-8, convert
the definitions and the compendia contents to a common encoding.
Reported by Stanislav Brabec <sbrabec@suse.cz>.
2006-07-30 Bruno Haible <bruno@clisp.org>
* Makefile.am (AM_CPPFLAGS, LDADD, libgettextsrc_la_LDFLAGS,
libgettextpo_la_LDFLAGS, recode_sr_latin_LDADD, RELOCATABLE_SRC_DIR,
RELOCATABLE_BUILD_DIR): Replace ../lib with ../gnulib-lib.
(JAVACOMP, CSHARPCOMP): Remove lib/ from pathname.
2006-07-30 Bruno Haible <bruno@clisp.org>
* msgl-cat.c: Include c-strstr.h instead of strstr.h.
(catenate_msgdomain_list): Use c_strstr instead of strstr.
* msgl-charset.c: Include c-strstr.h instead of strstr.h.
(compare_po_locale_charsets): Use c_strstr instead of strstr.
* msgl-check.c: Include c-strstr.h instead of strstr.h.
(plural_help, check_plural, check_header_entry): Use c_strstr instead
of strstr.
* msgl-iconv.c: Include c-strstr.h instead of strstr.h.
(iconv_message_list): Use c_strstr instead of strstr.
* po-charset.c: Include c-strstr.h instead of strstr.h.
(po_lex_charset_set): Use c_strstr instead of strstr.
* write-po.c: Include c-strstr.h instead of strstr.h.
(msgdomain_list_print_po): Use c_strstr instead of strstr.
* write-stringtable.c: Include c-strstr.h instead of strstr.h.
(write_message): Use c_strstr instead of strstr.
* msgcmp.c: Include c-strstr.h instead of strstr.h.
(compare): Use c_strstr instead of strstr.
* msginit.c: Include c-strstr.h instead of strstr.h.
(content_type): Use c_strstr instead of strstr.
* msgmerge.c: Include c-strstr.h instead of strstr.h.
(message_merge, merge): Use c_strstr instead of strstr.
* x-python.c: Include c-strstr.h instead of strstr.h.
(try_to_extract_coding): Use c_strstr instead of strstr.
* xgettext.c: Include c-strstr.h instead of strstr.h.
(remember_a_message, finalize_header): Use c_strstr instead of strstr.
2006-07-23 Bruno Haible <bruno@clisp.org>
Exploit CPUs with multiple execution units.
* msgmerge.c: Include lock.h.
(struct definitions_ty): Add 'findex_init_lock' field.
(definitions_init): Initialize it.
(definitions_init_findex): Ensure findex is initialized by the
first thread who attempts so.
(match_domain): Split the main loop into two. Parallelize the first
loop using OpenMP pragmas.
* Makefile.am (msgmerge_CFLAGS): New variable.
(msgmerge_LDADD): Add OPENMP_CFLAGS.
2006-07-25 Bruno Haible <bruno@clisp.org>
* Makefile.msvc: Remove file.
* Makefile.am (EXTRA_DIST): Remove Makefile.msvc.
2006-07-25 Bruno Haible <bruno@clisp.org>
* Makefile.vms: Remove file.
* Makefile.am (EXTRA_DIST): Remove Makefile.vms.
2006-07-24 Bruno Haible <bruno@clisp.org>
* Makefile.am (include_HEADERS): Remove variable.
(nodist_include_HEADERS): New variable.
Suggested by Ralf Corsepius <rc040203@freenet.de>.
2006-07-21 Bruno Haible <bruno@clisp.org>
* gettext-0.15 released.
2006-07-20 Bruno Haible <bruno@clisp.org>
* gettext-po.h.in (LIBGETTEXTPO_VERSION): Bump version number.
2006-07-20 Bruno Haible <bruno@clisp.org>
* Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 2:0:2.
2006-07-14 Bruno Haible <bruno@clisp.org>
* Makefile.am (MOSTLYCLEANFILES): New variable.
2006-07-02 Bruno Haible <bruno@clisp.org>
* write-csharp.c (msgdomain_write_csharp): Update.
* write-java.c (msgdomain_write_java): Update.
2006-06-29 Bruno Haible <bruno@clisp.org>
* write-csharp.c (msgdomain_write_csharp): Update.
* write-java.c (msgdomain_write_java): Likewise.
2006-06-28 Bruno Haible <bruno@clisp.org>
Assume <dirent.h> on all Unix platforms. Assume closedir works.
* msginit.c: Don't include <sys/ndir.h>, <sys/dir.h>, <ndir.h>.
(find_pot): Use closedir directly.
2006-06-27 Bruno Haible <bruno@clisp.org>
Assume correct S_ISDIR macro.
* write-csharp.c: Remove test of STAT_MACROS_BROKEN.
* write-java.c: Likewise.
2006-04-14 Bruno Haible <bruno@clisp.org>
Assume autoconf >= 2.60.
* Makefile.am (localedir): Remove variable.
2006-06-21 Bruno Haible <bruno@clisp.org>
* x-sh.c (read_word): Recognize the Bash process substitution syntax.
2006-06-21 Bruno Haible <bruno@clisp.org>
* x-sh.c (read_word): Recognize $(...) and $((...)) also inside
double-quoted strings.
Reported by Michelle Konzack <linux4michelle@freenet.de>.
2006-06-04 Bruno Haible <bruno@clisp.org>
* msgl-check.c (check_plural_eval): Declare 'distribution' as volatile,
so that it is unaffected by longjmp.
2006-06-04 Bruno Haible <bruno@clisp.org>
* xgettext.c (arglist_parser_done): Cast length argument for format
string.
2006-05-31 Bruno Haible <bruno@clisp.org>
* x-ycp.c (phase5_pushback, phase5_pushback_length): New variables.
(phase5_get): Renamed from x_ycp_lex.
(phase5_unget): New function.
(phase8_get): New function.
(extract_parenthesized): Inside i18n construct, use phase8_get
instead of phase5_get.
Reported by Karl Eichwalder <ke@suse.de>.
2006-05-22 Bruno Haible <bruno@clisp.org>
* msgfilter.c: Include <sys/select.h> also on Minix.
Reported by Leonard den Ottolander <leonard@den.ottolander.nl>.
2006-05-17 Bruno Haible <bruno@clisp.org>
Cygwin portability.
* hostname.c (WIN32_NATIVE): Renamed from WIN32.
2006-05-16 Bruno Haible <bruno@clisp.org>
* Makefile.am (CLEANFILES): Add gettext-po.h.
2006-05-16 Bruno Haible <bruno@clisp.org>
* xgettext.c (main): Use a size_t index variable for looping over the
files.
(arglist_parser_done): Fix a format string.
2006-05-16 Bruno Haible <bruno@clisp.org>
* msgfilter.c (main): Change type of i.
2006-05-15 Bruno Haible <bruno@clisp.org>
* Makefile.am: Test flag WOE32DLL instead of CYGWINDLL.
2006-05-14 Bruno Haible <bruno@clisp.org>
* x-php.c (x_php_lex): Fix handling of here documents.
Reported by Gaëtan Frenoy <gaetan@frenoy.net>.
2006-05-12 Bruno Haible <bruno@clisp.org>
* write-csharp.c [MINGW]: Include <io.h>.
(mkdir): Define using _mkdir.
* write-java.c [MINGW]: Include <io.h>.
(mkdir): Define using _mkdir.
2006-05-11 Bruno Haible <bruno@clisp.org>
* gettext-po.h.in: Renamed from gettext-po.h.
* Makefile.am: Treat condition WOE32DLL like MINGW. Update file names.
(libgettextsrc_la_SOURCES, libgettextsrc_la_LDFLAGS): Modify for
Cygwin.
libgettextpo_la_SOURCES, libgettextpo_la_LDFLAGS): Likewise.
(BUILT_SOURCES): Add gettext-po.h.
(EXTRA_DIST): Add gettext-po.h.in.
(gettext-po.h): New rule.
2006-05-11 Bruno Haible <bruno@clisp.org>
* Makefile.am (format_CFLAGS): Remove variable.
(format.lo): Remove variable.
(FORMAT_SOURCE) [MINGW]: Use ../mingw/c++format.cc instead of format.c.
2006-05-09 Bruno Haible <bruno@clisp.org>
* plural-eval.h (USE_SIGINFO): Don't define on Cygwin.
2006-05-02 Charles Wilson <cygwin@cwilson.fastmail.fm>
* write-mo.h: Remove DLL_VARIABLE declarations, not needed since
write-mo.c is not compiled into a shared library.
* lang-table.h: Likewise.
2006-05-02 Charles Wilson <cygwin@cwilson.fastmail.fm>
* filters.h: Add C++ guards.
2006-05-07 Bruno Haible <bruno@clisp.org>
* x-perl.c (extract_variable): Fix syntax error introduced on
2005-10-03.
2006-05-07 Bruno Haible <bruno@clisp.org>
* format-awk.c: Include xvasprintf.h instead of xerror.h.
* format-elisp.c: Likewise.
* format-librep.c: Likewise.
* format-pascal.c: Likewise.
* format-php.c: Likewise.
* format-tcl.c: Likewise.
2006-04-30 Bruno Haible <bruno@clisp.org>
* write-java.c (msgdomain_write_java): Specify source-version 1.3 and
require target-version 1.1.
2006-04-30 Bruno Haible <bruno@clisp.org>
* msginit.c (main): Simplify by use of xasprintf().
* write-java.c: Include xvasprintf.h.
(msgdomain_write_java): Simplify by use of xasprintf().
* x-c.c: Include xvasprintf.h.
(phase8a_get): Simplify by use of xasprintf().
* xgettext.c: Don't include stpcpy.h.
(remember_a_message, remember_a_message_plural): Simplify by use of
xasprintf().
2006-04-30 Bruno Haible <bruno@clisp.org>
* msgfmt.c: Include xvasprintf.h.
* msginit.c: Likewise.
* msgl-cat.c: Likewise.
* msgl-charset.c: Likewise.
* po-xerror.c: Likewise.
* x-csharp.c: Likewise.
* x-glade.c: Likewise.
* x-python.c: Likewise.
* xgettext.c: Likewise.
* format-boost.c: Include xvasprintf.h instead of xerror.h.
* format-c.c: Likewise.
* format-csharp.c: Likewise.
* format-gcc-internal.c: Likewise.
* format-java.c: Likewise.
* format-lisp.c: Likewise.
* format-perl.c: Likewise.
* format-python.c: Likewise.
* format-qt.c: Likewise.
* format-scheme.c: Likewise.
* format-ycp.c: Likewise.
* msgexec.c: Likewise.
* msgl-check.c: Likewise.
* msgl-iconv.c: Likewise.
* open-po.c: Likewise.
* po-charset.c: Likewise.
* po-lex.c: Likewise.
* po-time.c: Likewise.
* read-po-abstract.c: Likewise.
* read-properties.c: Likewise.
* read-stringtable.c: Likewise.
* write-po.c: Likewise.
2006-04-30 Bruno Haible <bruno@clisp.org>
* msginit.c (project_id, project_id_version, get_user_email): Close
the FILE in case of I/O error.
2006-04-30 Bruno Haible <bruno@clisp.org>
* write-java.c (msgdomain_write_java): Don't fclose the FILE after
fwriteerror signalled a failure.
* write-csharp.c (msgdomain_write_csharp): Likewise.
2006-04-23 Bruno Haible <bruno@clisp.org>
* msgexec.c: Include <unistd.h> unconditionally.
* msgfilter.c: Likewise.
* msggrep.c: Likewise.
* msginit.c: Likewise.
* hostname.c: Likewise.
* urlget.c: Likewise.
2006-04-17 Bruno Haible <bruno@clisp.org>
* Makefile.am: Use $(mkdir_p) instead of $(mkinstalldirs).
2006-04-09 Bruno Haible <bruno@clisp.org>
* write-csharp.c: Include clean-temp.h. Don't include unistd.h,
mkdtemp.h, tmpdir.h, pathmax.h, fatal-signal.h, xallocsa.h.
(cleanup_list): Remove variable.
(cleanup): Remove function.
(msgdomain_write_csharp): Simplify handling of temporary directory.
* write-java.c: Include clean-temp.h. Don't include unistd.h,
mkdtemp.h, tmpdir.h, pathmax.h, fatal-signal.h.
(cleanup_list): Remove variable.
(cleanup): Remove function.
(msgdomain_write_java): Simplify handling of temporary directory.
2006-04-03 Bruno Haible <bruno@clisp.org>
* x-glade.c (p_XML_GetCurrentLineNumber, p_XML_GetCurrentColumnNumber):
Declare differently for expat >= 2.0.0.
(load_libexpat): Search for a differently library name for expat >=
2.0.0.
(do_extract_glade): Update.
Reported by Mike Frysinger <vapier@gentoo.org>.
2006-04-02 Bruno Haible <bruno@clisp.org>
* hostname.c: Include propername.h.
(main): Call proper_name.
* msgattrib.c: Include propername.h.
(main): Call proper_name.
* msgcat.c: Include propername.h.
(main): Call proper_name.
* msgcmp.c: Include propername.h.
(main): Call proper_name.
* msgcomm.c: Include propername.h.
(main): Call proper_name.
* msgconv.c: Include propername.h.
(main): Call proper_name.
* msgen.c: Include propername.h.
(main): Call proper_name.
* msgexec.c: Include propername.h.
(main): Call proper_name.
* msgfilter.c: Include propername.h.
(main): Call proper_name.
* msgfmt.c: Include propername.h.
(main): Call proper_name.
* msggrep.c: Include propername.h.
(main): Call proper_name.
* msginit.c: Include propername.h.
(main): Call proper_name.
* msgmerge.c: Include propername.h.
(main): Call proper_name.
* msgunfmt.c: Include propername.h.
(main): Call proper_name.
* msguniq.c: Include propername.h.
(main): Call proper_name.
* recode-sr-latin.c: Include propername.h.
(main): Call proper_name and proper_name_utf8.
* urlget.c: Include propername.h.
(main): Call proper_name.
* xgettext.c: Include propername.h.
(main): Call proper_name.
2006-04-01 Bruno Haible <bruno@clisp.org>
* xgettext.c (main): Treat --keyword= like --keyword.
2006-03-28 Bruno Haible <bruno@clisp.org>
* filters.h: New file.
* filter-sr-latin.c: New file, based on code from Danilo Šegan.
* recode-sr-latin.c: New file.
* msgfilter.c: Include filters.h, msgl-iconv.h, po-charset.h.
(filter): New variable.
(main): Recognize recode-sr-latin as built-in.
(generic_filter): New function, extracted from process_string.
(process_string): Call the filter.
* Makefile.am (bin_PROGRAMS): Add recode-sr-latin.
(noinst_HEADERS): Add filters.h.
(msgfilter_SOURCES): Add filter-sr-latin.c.
(recode_sr_latin_SOURCES, recode_sr_latin_LDADD,
recode_sr_latin_CPPFLAGS, recode_sr_latin_LDFLAGS): New variables.
* Makefile.msvc (PROGRAMS): Add recode-sr-latin.exe.
(msgfilter_OBJECTS): Add filter-sr-latin.obj.
(recode_sr_latin_OBJECTS): New variable.
(filter-sr-latin.obj, recode-sr-latin.obj): New rules.
(recode-sr-latin.exe): New rule.
(install): Also install recode-sr-latin.exe.
(uninstall): Also uninstall recode-sr-latin.exe.
* Makefile.vms (PROGRAMS): Add recode-sr-latin.exe.
(msgfilter_OBJECTS): Add filter-sr-latin.obj.
(recode_sr_latin_OBJECTS): New variable.
(filter-sr-latin.obj, recode-sr-latin.obj): New rules.
(recode-sr-latin.exe): New rule.
(install): Also install recode-sr-latin.exe.
(uninstall): Also uninstall recode-sr-latin.exe.
2006-03-28 Bruno Haible <bruno@clisp.org>
* msgl-iconv.c: Include iconvstring.h. Don't include <errno.h>.
(iconv_string): Remove function, moved to ../lib/.
2006-03-19 Bruno Haible <bruno@clisp.org>
* xgettext.h (struct callshape): New field 'xcomments'.
(struct partial_call): New field 'xcomments'.
* xgettext.c (split_keywordspec): Accept the ID:ARGNUM...,"XCOMMENT"
syntax.
(insert_keyword_callshape): Store the xcomments from the new shape.
(arglist_parser_alloc, arglist_parser_clone): Update.
(arglist_parser_done): After calling remember_a_message, attach the
specified extracted comments.
* x-perl.c (extract_variable): Update.
Suggested by Behdad Esfahbod <behdad@cs.toronto.edu>.
2006-03-19 Bruno Haible <bruno@clisp.org>
* xgettext.c (arglist_parser_done): Use error_at_line instead of error.
2006-03-16 Bruno Haible <bruno@clisp.org>
* msggrep.c (grep_task): Increment size.
(long_options): Add --extracted-comment option.
(main): Handle --extracted-comment option.
(no_pass, usage): Update.
(is_message_selected_no_invert): Implement matching on extracted
comments.
Suggested by Behdad Esfahbod <behdad@cs.toronto.edu>.
2006-03-16 Bruno Haible <bruno@clisp.org>
Handle GNOME glib context syntax.
* xgettext.h (struct callshape): Add fields argnum1_glib_context,
argnum2_glib_context.
(struct partial_call): Add fields argnum1_glib_context,
argnum2_glib_context.
* xgettext.c (split_keywordspec): Recognize suffix 'g' and set the
argnum1_glib_context, argnum2_glib_context fields.
(insert_keyword_callshape, arglist_parser_alloc, arglist_parser_clone):
Update.
(arglist_parser_done): When suffix 'g' was specified, split off the
context from the msgid and/or msgid_plural.
* x-perl.c (extract_variable): Update.
Suggested by Danilo Šegan <danilo@gnome.org>.
2006-03-16 Bruno Haible <bruno@clisp.org>
* xgettext.c (set_format_flags_from_context): Break long line.
2006-03-11 Bruno Haible <bruno@clisp.org>
* message.c (fuzzy_search_goal_function): Use 'volatile double'.
2006-03-11 Bruno Haible <bruno@clisp.org>
Speed up msgmerge with large compendia.
* message.h (message_list_free): Add keep_messages argument.
(message_list_list_free): Add keep_level argument.
(fuzzy_search_goal_function): New declaration.
(FUZZY_THRESHOLD): New macro.
* message.c (message_list_free): Add keep_messages argument.
(fuzzy_search_goal_function): New function, extracted from
message_list_search_fuzzy_inner.
(message_list_search_fuzzy_inner): Use it.
(message_list_search_fuzzy): Use symbolic value FUZZY_THRESHOLD.
(message_list_list_free): Comment in. Add keep_level argument.
(message_list_list_search_fuzzy): Comment out. Use symbolic value
FUZZY_THRESHOLD.
(msgdomain_free): Update.
(msgdomain_list_search_fuzzy): Use symbolic value FUZZY_THRESHOLD.
* po-charset.h: Include stddef.h.
(character_iterator_t): New type.
(po_charset_character_iterator): New declaration.
* po-charset.c (char_iterator, euc_character_iterator,
euc_jp_character_iterator, euc_tw_character_iterator,
big5_character_iterator, big5hkscs_character_iterator,
gbk_character_iterator, gb18030_character_iterator,
shift_jis_character_iterator, johab_character_iterator,
utf8_character_iterator, po_charset_character_iterator): New functions.
* msgl-fsearch.h: New file.
* msgl-fsearch.c: New file.
* msgmerge.c: Include po-charset.h, msgl-fsearch.h.
(compendium_filenames): New variable.
(compendium): Also put the filename into compendium_filenames.
(definitions_ty): New structure type.
(definitions_init, definitions_init_findex, definitions_current_list,
definitions_set_current_list, definitions_search,
definitions_search_fuzzy, definitions_destroy): New functions.
(match_domain): Change type of 'definitions' argument.
(merge): Also convert the compendium to UTF-8. Use definitions_init,
definitions_set_current_list, definitions_destroy.
* msgfmt.c (main): Update.
* Makefile.am (noinst_HEADERS): Add msgl-fsearch.h.
(msgmerge_SOURCES): Add msgl-fsearch.c.
(msgmerge_LDADD): Link with MSGMERGE_LIBM.
* Makefile.msvc (msgmerge_OBJECTS): Add msgl-fsearch.obj.
(msgl-fsearch.obj): New rule.
* Makefile.vms (msgmerge_OBJECTS): Add msgl-fsearch.obj.
(msgl-fsearch.obj): New rule.
Reported by Clytie Siddall <clytie@riverland.net.au>.
2006-03-09 Bruno Haible <bruno@clisp.org>
* Makefile.am (CXXLINK) [!mingw]: Overwrite automake's value. Fixes
unintended dependency on libstdc++ introduced on 2005-07-05.
2005-10-09 Bruno Haible <bruno@clisp.org>
* lang-table.h: New file.
* lang-table.c: New file, extracted from msginit.c.
* msginit.c: Include lang-table.h.
(englishname_of_language): Use language_table.
* Makefile.am (noinst_HEADERS): Add lang-table.h.
(msginit_SOURCES): Add lang-table.c.
* Makefile.msvc (MSGINIT_OBJECTS): Add lang-table.obj.
(lang-table.obj): New rule.
* Makefile.vms (MSGINIT_OBJECTS): Add lang-table.obj.
(lang-table.obj): New rule.
2006-02-12 Bruno Haible <bruno@clisp.org>
* message.h (format_type): New enum value 'format_boost'.
(NFORMATS): Increment.
* message.c (format_language): Add format_boost entry.
(format_language_pretty): Likewise.
* format.h (formatstring_boost): New declaration.
* format-boost.c: New file, based on format-c.c.
* format.c (formatstring_parsers): Add formatstring_boost.
* x-c.c (init_flag_table_c): Also register flags for boost-format.
* xgettext.c (flag_table_cxx_qt, flag_table_cxx_boost): New variables.
(recognize_format_boost): New variable.
(main): Handle --boost option.
(usage): Document --boost option.
(xgettext_record_flag): Also fill flag_table_cxx_qt,
flag_table_cxx_boost.
(remember_a_message, remember_a_message_plural): In the heuristics,
don't mark a string as c-format that is already known to be a qt-format
or boost-format.
(language_to_extractor): Use a flag_table_cxx_qt or
flag_table_cxx_boost that is different from flag_table_c.
* Makefile.am (FORMAT_SOURCE): Add format-boost.c.
* Makefile.msvc (OBJECTS): Add format-boost.obj.
(format-boost.obj): New rule.
* Makefile.vms (OBJECTS): Add format-boost.obj.
(format-boost.obj): New rule.
* FILES: Update.
2006-02-12 Bruno Haible <bruno@clisp.org>
* xgettext.c (xgettext_record_flag): When asked to set "qt-format",
really set "qt-format", not "c-format". Fixes bug introduced on
2003-10-19.
2006-02-12 Bruno Haible <bruno@clisp.org>
Reduce the number of false positives produced by the c-format guessing
heuristics.
* format.h (struct formatstring_parser): Add 'is_unlikely_intentional'
field.
* format-awk.c (formatstring_awk): Update.
* format-c.c (struct spec): Add 'unlikely_unintentional' field.
(format_parse): Set unlikely_unintentional to true when encountering
a "%...%" directive other than "%%".
(format_is_unlikely_intentional): New function.
(formatstring_c, formatstring_objc): Use it.
* format-csharp.c (formatstring_csharp): Update.
* format-elisp.c (formatstring_elisp): Update.
* format-gcc-internal.c (formatstring_gcc_internal): Update.
* format-java.c (formatstring_java): Update.
* format-librep.c (formatstring_librep): Update.
* format-lisp.c (formatstring_lisp): Update.
* format-pascal.c (formatstring_pascal): Update.
* format-perl.c (formatstring_perl): Update.
* format-perl-brace.c (formatstring_perl_brace): Update.
* format-php.c (format_php): Update.
* format-python.c (formatstring_python): Update.
* format-qt.c (formatstring_qt): Update.
* format-scheme.c (formatstring_scheme): Update
* format-sh.c (formatstring_sh): Update.
* format-tcl.c (formatstring_tcl): Update.
* format-ycp.c (formatstring_ycp, formatstring_smalltalk): Update.
* xgettext.c (remember_a_message, remember_a_message_plural): Don't
mark the message as c-format if the validity as c-format looks
unintentional.
2006-02-12 Bruno Haible <bruno@clisp.org>
* msgattrib.c (main): Update year in --version output.
* msgcat.c (main): Likewise.
* msgcmp.c (main): Likewise.
* msgcomm.c (main): Likewise.
* msgconv.c (main): Likewise.
* msgen.c (main): Likewise.
* msgexec.c (main): Likewise.
* msgfilter.c (main): Likewise.
* msgfmt.c (main): Likewise.
* msggrep.c (main): Likewise.
* msginit.c (main): Likewise.
* msgmerge.c (main): Likewise.
* msgunfmt.c (main): Likewise.
* msguniq.c (main): Likewise.
* xgettext.c (main): Likewise.
2006-01-25 Bruno Haible <bruno@clisp.org>
* x-php.c (x_php_lex): Treat byte values >= 127 like alphabetic.
Reported by Hagen Fritsch <itooktheredpill@gmx.de>.
2005-12-25 Bruno Haible <bruno@clisp.org>
Tell Python developers to use named arguments in format strings.
* format.h (get_python_format_unnamed_arg_count): New declaration.
* format-python.c (get_python_format_unnamed_arg_count): New function.
* xgettext.c (warn_format_string): New function.
(remember_a_message, remember_a_message_plural): Call it.
Suggested by Martin von Löwis.
2005-12-07 Bruno Haible <bruno@clisp.org>
* msgl-iconv.c (iconv_message_list): Fix syntax error.
Reported by Dave Patton <dpatton@confluence.org>.
2005-12-04 Bruno Haible <bruno@clisp.org>
* Makefile.am (CSHARPCOMPFLAGS): Use value set by csharpcomp.m4.
2005-11-29 Colin Watson <cjwatson@ubuntu.com>
* msggrep.c (invert_match): New variable.
(long_options): Add --invert-match option.
(main): Handle --invert-match option.
(usage): Document --invert-match option.
(is_message_selected_no_invert): New function, extracted from
is_message_selected.
(is_message_selected): Call it. Handle match inversion.
2005-11-01 Bruno Haible <bruno@clisp.org>
* write-csharp.c (write_csharp_code): Add culture_name argument.
Emit an AssemblyCulture note for it.
(msgdomain_write_csharp): Update.
Suggested by Pepa <cerna.zelva@seznam.cz>.
2005-10-09 Bruno Haible <bruno@clisp.org>
* plural-eval.h: New file.
* plural-eval.c: Include plural-eval.h.
(sigfpe_exit, sigfpe_code, sigfpe_handler, install_sigfpe_handler,
uninstall_sigfpe_handler): New definitions, moved here from
msgl-check.c.
* msgl-check.c: Include plural.eval.h.
(sigjmp_buf, sigsetjmp, siglongjmp, USE_SIGINFO): Move to plural-eval.h.
(sigfpe_exit, sigfpe_code, sigfpe_handler, install_sigfpe_handler,
uninstall_sigfpe_handler): Move to plural-eval.c.
* Makefile.am (noinst_HEADERS): Add plural-eval.h.
2005-10-09 Bruno Haible <bruno@clisp.org>
* msgl-check.c: Include c-ctype.h instead of ctype.h.
(check_plural): Use c_isspace instead of isspace.
* x-librep.c: Include c-ctype.h instead of ctype.h.
(read_token): Use c_isxdigit instead of isxdigit.
* x-rst.c: Include c-ctype.h instead of ctype.h.
(extract_rst): Use c_isdigit instead of isdigit.
* x-ycp.c: Don't include ctype.h.
2005-10-09 Bruno Haible <bruno@clisp.org>
* plural-exp.c: Renamed from plural.c.
* Makefile.am (libgettextsrc_la_SOURCES): Update.
2005-10-18 Bruno Haible <bruno@clisp.org>
Disambiguate overloaded function calls according to argument count.
* xgettext.h (struct callshape): Add field 'argtotal'.
(struct partial_call): Likewise.
(arglist_parser_done): Add argnum argument.
* xgettext.c (split_keywordspec): Recognize NNt syntax and fill
argtotal.
(insert_keyword_callshape, arglist_parser_alloc, arglist_parser_clone):
Update.
(arglist_parser_decidedp): Compare also the argtotal if given.
(arglist_parser_done): Add argnum argument.
* x-awk.c (extract_parenthesized): Pass arg count to
arglist_parser_done.
* x-c.c (extract_parenthesized): Likewise.
* x-csharp.c (extract_parenthesized): Likewise.
* x-elisp.c (read_object): Likewise.
* x-java.c (extract_parenthesized): Likewise.
* x-librep.c (read_object): Likewise.
* x-lisp.c (read_object): Likewise.
* x-perl.c (extract_variable): Update.
(extract_balanced): Pass arg count to arglist_parser_done.
* x-php.c (extract_parenthesized): Likewise.
* x-python.c (extract_parenthesized): Likewise.
* x-scheme.c (read_object): Likewise.
* x-sh.c (read_command): Likewise.
* x-tcl.c (read_command): Likewise.
Stimulated by a patch from
Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>.
2005-10-09 Bruno Haible <bruno@clisp.org>
* msginit.c (catalogname_for_locale, language_of_locale): Drop support
of CEN locale name syntax.
2005-10-05 Bruno Haible <bruno@clisp.org>
* format.h (check_msgid_msgstr_format): Add plural_distribution
argument.
* format.c (check_msgid_msgstr_format): Add plural_distribution
argument. Use it for index dependent strictness.
* msgl-check.h (check_message): Add plural_distribution argument.
* msgl-check.c: Include xalloc.h.
(check_plural_eval): Create a plural_distribution array as additional
output parameter.
(check_plural): Return plural_distribution array as additional output
parameter.
(check_pair, check_message): Add plural_distribution argument.
(check_message_list): Pass the plural_distribution from check_plural
to check_message.
* gettext-po.c (po_message_check_format): Update.
2005-10-04 Bruno Haible <bruno@clisp.org>
Combine all msgfmt checks in a single place.
* format.h (check_msgid_msgstr_format): Change return type to int.
* format.c (check_msgid_msgstr_format): Return the number of errors.
* msgl-check.h (check_plural): Remove declaration.
* msgl-check.c (check_plural): Make static. Return the number of
errors.
(check_pair): Return the number of errors.
(check_message_list): Likewise.
* msgfmt.c (main): Perform the message checks here, after all files
were read. Call check_message_list instead of check_plural and
check_message. Emit statistics of fatal errors.
(msgfmt_frob_new_message): Don't call check_message here.
2005-10-04 Bruno Haible <bruno@clisp.org>
* msgl-check.h (check_message_list): New declaration.
* msgl-check.c (check_message_list): New function.
* gettext-po.c (po_file_check_all, po_message_check_all): Call
check_message_list instead of check_message and check_plural.
2005-10-04 Bruno Haible <bruno@clisp.org>
Fix handling of obsolete messages.
* msgl-check.c (check_plural): Ignore obsolete messages.
* gettext-po.c (po_file_check_all, po_message_check_all,
po_message_check_format): Likewise.
2005-10-04 Bruno Haible <bruno@clisp.org>
* msgl-check.h (check_message): Remove msgstr_pos argument.
* msgl-check.c (check_pair, check_message): Remove msgstr_pos argument.
* msgfmt.c (msgfmt_frob_new_message): Update.
* gettext-po.c (po_file_check_all, po_message_check_all,
po_message_check_format): Update.
2005-10-03 Bruno Haible <bruno@clisp.org>
Add support for contexts in xgettext.
* xgettext.h: Include stdbool.h.
(struct callshape): New structure type.
(split_keywordspec): Return a struct callshape, not two integers,
by reference.
(struct callshapes): New structure type.
(insert_keyword_callshape): New declaration.
(remember_a_message): Add msgctxt argument.
(struct partial_call): New structure type.
(struct arglist_parser): New structure type.
(arglist_parser_alloc, arglist_parser_clone, arglist_parser_remember,
arglist_parser_decidedp, arglist_parser_done): New declarations.
* xgettext.c (split_keywordspec): Return a struct callshape, not two
integers, by reference. Handle the notation Nc for a context argument.
(insert_keyword_callshape): New function.
(remember_a_message): Add msgctxt argument. Free both strings when
the message is excluded.
(arglist_parser_alloc, arglist_parser_clone, arglist_parser_remember,
arglist_parser_decidedp, arglist_parser_done): New functions.
* x-awk.c (x_awk_keyword): Use callshape API: split_keywordspec,
insert_keyword_callshape.
(extract_parenthesized): Replace commas_to_skip, plural_commas
arguments with a single argparser argument. Use arglist_parser_* API.
(extract_awk): Update.
* x-c.c (add_keyword): Use callshape API: split_keywordspec,
insert_keyword_callshape.
(init_keywords): Register the new functions [d[c]][n]pgettext.
(init_flag_table_c, init_flag_table_objc): Likewise.
(struct xgettext_token_ty): Replace argnum1, argnum2 with a callshapes
pointer.
(x_c_lex): Update.
(extract_parenthesized): Replace commas_to_skip, plural_commas
arguments with a single argparser argument. Use arglist_parser_* API.
(extract_whole_file): Update.
* x-csharp.c (x_csharp_keyword): Use callshape API: split_keywordspec,
insert_keyword_callshape.
(extract_parenthesized): Replace commas_to_skip, plural_commas
arguments with a single argparser argument. Use arglist_parser_* API.
(extract_csharp): Update.
* x-elisp.c (x_elisp_keyword): Use callshape API: split_keywordspec,
insert_keyword_callshape.
(read_object): Use arglist_parser_* API.
* x-glade.c (start_element_handler, end_element_handler): Update.
* x-java.c (x_java_keyword): Use callshape API: split_keywordspec,
insert_keyword_callshape.
(extract_parenthesized): Replace commas_to_skip, plural_commas
arguments with a single argparser argument. Use arglist_parser_* API.
(extract_java): Update.
* x-librep.c (x_librep_keyword): Use callshape API: split_keywordspec,
insert_keyword_callshape.
(read_object): Use arglist_parser_* API.
* x-lisp.c (x_lisp_keyword): Use callshape API: split_keywordspec,
insert_keyword_callshape.
(read_object): Use arglist_parser_* API.
* x-perl.c (x_perl_keyword): Use callshape API: split_keywordspec,
insert_keyword_callshape.
(extract_balanced): Replace arg_sg, arg_pl arguments with arg,
argparser arguments. Use arglist_parser_* API.
(extract_variable, interpolate_keywords, extract_perl): Update.
* x-php.c (x_php_keyword): Use callshape API: split_keywordspec,
insert_keyword_callshape.
(extract_parenthesized): Replace commas_to_skip, plural_commas
arguments with a single argparser argument. Use arglist_parser_* API.
(extract_php): Update.
* x-python.c (x_python_keyword): Use callshape API: split_keywordspec,
insert_keyword_callshape.
(extract_parenthesized): Replace commas_to_skip, plural_commas
arguments with a single argparser argument. Use arglist_parser_* API.
(extract_python): Update.
* x-rst.c (extract_rst): Update.
* x-scheme.c (x_scheme_keyword): Use callshape API: split_keywordspec,
insert_keyword_callshape.
(read_object): Use arglist_parser_* API.
* x-sh.c (x_sh_keyword): Use callshape API: split_keywordspec,
insert_keyword_callshape.
(read_word): Update.
(read_command): Use arglist_parser_* API.
* x-smalltalk.c (extract_smalltalk): Update.
* x-tcl.c (x_tcl_keyword): Use callshape API: split_keywordspec,
insert_keyword_callshape.
(read_command): Use arglist_parser_* API.
* x-ycp.c (extract_parenthesized): Update.
2005-10-03 Bruno Haible <bruno@clisp.org>
* xgettext.h (savable_comment_to_xgettext_comment): Remove
declaration.
(remember_a_message, remember_a_message_plural): Add a comment
argument.
* xgettext.c (savable_comment_to_xgettext_comment): Make static.
(remember_a_message): Add comment argument. Call
savable_comment_to_xgettext_comment and savable_comment_reset at the
end.
(remember_a_message_plural): Add comment argument. Call
savable_comment_to_xgettext_comment and xgettext_comment_reset,
savable_comment_reset at the end.
* x-awk.c (extract_parenthesized): Pass comment to remember_a_message.
* x-c.c (extract_parenthesized): Likewise.
* x-csharp.c (extract_parenthesized): Likewise.
* x-elisp.c (read_object): Likewise.
* x-glade.c (start_element_handler, end_element_handler): Likewise.
* x-java.c (extract_parenthesized): Likewise.
* x-librep.c (read_object): Likewise.
* x-lisp.c (read_object): Likewise.
* x-perl.c (extract_variable, interpolate_keywords, extract_balanced):
Likewise.
* x-php.c (extract_parenthesized): Likewise.
* x-python.c (extract_parenthesized): Likewise.
* x-scheme.c (read_object): Likewise.
* x-sh.c (read_word, read_command): Likewise.
* x-smalltalk.c (extract_smalltalk): Likewise.
* x-tcl.c (read_command): Likewise.
* x-ycp.c (extract_parenthesized): Likewise.
* x-rst.c (extract_rst): Update.
2005-10-03 Bruno Haible <bruno@clisp.org>
* xgettext.h (xgettext_comment_add, xgettext_comment,
xgettext_comment_reset): Remove declarations.
* xgettext.c (xgettext_comment_add, xgettext_comment,
xgettext_comment_reset): Make static.
2005-10-03 Bruno Haible <bruno@clisp.org>
Use savable_comment_* API instead of xgettext_comment_* API.
* x-awk.c (phase2_getc): Call savable_comment_add instead of
xgettext_comment_add.
(x_awk_lex): Call savable_comment_reset instead of
xgettext_comment_reset.
(extract_parenthesized): Call savable_comment_to_xgettext_comment and
savable_comment_reset around remember_a_message.
* x-elisp.c (comment_line_end): Call savable_comment_add instead of
xgettext_comment_add.
(read_object): Call savable_comment_reset instead of
xgettext_comment_reset. Call savable_comment_to_xgettext_comment and
savable_comment_reset around remember_a_message.
* x-glade.c (start_element_handler, end_element_handler): Call
savable_comment_to_xgettext_comment and savable_comment_reset around
remember_a_message. Call savable_comment_reset instead of
xgettext_comment_reset.
(comment_handler): Call savable_comment_add instead of
xgettext_comment_add.
* x-librep.c (comment_line_end): Call savable_comment_add instead of
xgettext_comment_add.
(read_object): Call savable_comment_reset instead of
xgettext_comment_reset. Call savable_comment_to_xgettext_comment and
savable_comment_reset around remember_a_message.
* x-lisp.c (comment_line_end): Call savable_comment_add instead of
xgettext_comment_add.
(read_object): Call savable_comment_reset instead of
xgettext_comment_reset. Call savable_comment_to_xgettext_comment and
savable_comment_reset around remember_a_message.
* x-perl.c (phase2_getc): Call savable_comment_add instead of
xgettext_comment_add.
(extract_variable, interpolate_keywords): Call
savable_comment_to_xgettext_comment and savable_comment_reset around
remember_a_message.
(x_perl_prelex): Call savable_comment_reset instead of
xgettext_comment_reset.
(extract_balanced): Call savable_comment_to_xgettext_comment and
savable_comment_reset around remember_a_message.
* x-php.c (comment_line_end): Call savable_comment_add instead of
xgettext_comment_add.
(x_php_lex): Call savable_comment_reset instead of
xgettext_comment_reset.
(extract_parenthesized): Call savable_comment_to_xgettext_comment and
savable_comment_reset around remember_a_message.
* x-scheme.c (comment_line_end): Call savable_comment_add instead of
xgettext_comment_add.
(read_object): Call savable_comment_reset instead of
xgettext_comment_reset. Call savable_comment_to_xgettext_comment and
savable_comment_reset around remember_a_message.
* x-sh.c (comment_line_end): Call savable_comment_add instead of
xgettext_comment_add.
(read_word): Call savable_comment_reset instead of
xgettext_comment_reset. Call savable_comment_to_xgettext_comment and
savable_comment_reset around remember_a_message.
(read_command): Call savable_comment_to_xgettext_comment and
savable_comment_reset around remember_a_message.
* x-smalltalk.c (comment_line_end): Call savable_comment_add instead of
xgettext_comment_add.
(phase2_get): Call savable_comment_reset instead of
xgettext_comment_reset.
(extract_smalltalk): Call savable_comment_to_xgettext_comment and
savable_comment_reset around remember_a_message.
* x-tcl.c (comment_line_end): Call savable_comment_add instead of
xgettext_comment_add.
(read_word): Call savable_comment_reset instead of
xgettext_comment_reset.
(read_command): Call savable_comment_to_xgettext_comment and
savable_comment_reset around remember_a_message.
* x-ycp.c (phase2_getc): Call savable_comment_add instead of
xgettext_comment_add.
(x_ycp_lex): Call savable_comment_reset instead of
xgettext_comment_reset.
(extract_parenthesized): Call savable_comment_to_xgettext_comment and
savable_comment_reset around remember_a_message.
2005-10-03 Bruno Haible <bruno@clisp.org>
* message.c (message_list_hash_insert_entry): Update.
2005-10-03 Bruno Haible <bruno@clisp.org>
* message.c (message_list_alloc, message_list_free,
message_list_hash_insert_entry, message_list_remove_if_not,
message_list_msgids_changed, message_list_search): Update.
* write-qt.c (write_qm): Update.
* xgettext.c (flag_context_list_table_lookup,
flag_context_list_table_insert): Update.
* x-awk.c (x_awk_keyword, extract_parenthesized): Update.
* x-c.c (add_keyword, x_c_lex): Update.
* x-csharp.c (x_csharp_keyword, extract_parenthesized: Update.
* x-elisp.c (x_elisp_keyword, read_object): Update.
* x-glade.c (x_glade_keyword, start_element_handler): Update.
* x-java.c (x_java_keyword, extract_parenthesized): Update.
* x-librep.c (x_librep_keyword, read_object): Update.
* x-lisp.c (x_lisp_keyword, read_object): Update.
* x-perl.c (x_perl_keyword, extract_variable, interpolate_keywords,
extract_balanced): Update.
* x-php.c (x_php_keyword, extract_parenthesized): Update.
* x-python.c (x_python_keyword, extract_parenthesized): Update.
* x-scheme.c (x_scheme_keyword, read_object): Update.
* x-sh.c (x_sh_keyword, read_command): Update.
* x-tcl.c (x_tcl_keyword, read_command): Update.
2005-10-01 Bruno Haible <bruno@clisp.org>
Support for context dependent translations in PO files.
* message.h (MSGCTXT_SEPARATOR): New macro.
(struct message_ty): Add 'msgctxt' field.
(message_alloc): Add msgctxt argument.
(is_header): New macro.
(message_list_search, message_list_search_fuzzy,
message_list_list_search, message_list_list_search_fuzzy,
msgdomain_list_search, msgdomain_list_search_fuzzy): Add msgctxt
argument.
* message.c: Include xallocsa.h.
(message_alloc): Add msgctxt argument.
(message_copy): Update.
(message_list_hash_insert_entry): New function.
(message_list_append, message_list_prepend, message_list_insert_at,
message_list_msgids_changed): Use it.
(message_list_search): Add msgctxt argument.
(message_list_search_fuzzy_inner): Likewise.
(message_list_search_fuzzy): Likewise.
(message_list_list_search): Likewise.
(message_list_list_search_fuzzy): Likewise.
* msgl-ascii.c (is_ascii_message): Also test the msgctxt.
* write-po.c (message_print): Warn if some msgctxt has non-ASCII
characters. Write out the msgctxt.
(message_print_obsolete): Likewise.
(msgdomain_list_print_po): Use is_header macro.
(msgdomain_list_print): Likewise. Bail out if contexts are present and
cannot be stored in the given output format.
* write-properties.c (write_message): Use is_header macro.
* po-lex.c: Include message.h.
(keyword_p): Also recognize 'msgctxt'.
(po_gram_lex): Bail out if a string contains the EOT character.
* read-po-abstract.h (struct abstract_po_reader_class_ty): Add msgctxt
argument to directive_message function pointer.
(po_callback_message): Add msgctxt argument.
* read-po-abstract.c (call_directive_message, po_callback_message): Add
msgctxt argument.
* po-gram-gen.y (do_callback_message): Add msgctxt argument. Use
is_header macro.
(MSGCTXT): New token type.
(message_intro, MSGCTXT): Declare return types.
(message): Use message_intro instead of just MSGID.
(message_intro): New nonterminal reduction rules.
* read-properties.c (properties_parse): Update.
* read-stringtable.c (stringtable_parse): Update.
* read-po.h (struct default_po_reader_class_ty): Add msgctxt argument
to add_message field.
(default_directive_message, default_add_message): Likewise.
* read-po.c (call_add_message, default_directive_message,
default_add_message): Add msgctxt argument.
* msgl-iconv.c (convert_msgid): Also convert the msgctxt.
(iconv_message_list): Use is_header macro. Test also the msgctxt for
non-ASCII-ness.
* msgl-cat.c (is_message_selected, is_message_needed): Use is_header
macro.
(catenate_msgdomain_list): Likewise. Update.
* msgl-equal.c (message_equal): Likewise. Also compare the msgctxt.
* msgcmp.c (is_message_selected): Use is_header macro.
(match_domain): Update.
(compare): Use is_header macro.
* msgmerge.c (message_merge, match_domain): Use is_header macro.
Update.
(merge): Update.
* msgattrib.c (is_message_selected): Use is_header macro.
(process_message_list): Likewise. Update.
* msgl-charset.c (compare_po_locale_charsets): Use is_header macro.
* msgexec.c (process_string): Also set or unset MSGEXEC_MSGCTXT
variable.
* msgfilter.c (process_message): Use is_header macro.
* msggrep.c (grep_task): Increase size from 3 to 4.
(long_options): Add --msgctxt option.
(main): Accept -J/--msgctxt option. Update grep_pass numbers.
(no_pass): Update.
(usage): Mention -J option.
(is_message_selected): Use is_header macro. Perform a new grep pass on
the msgctxt.
* msginit.c (fill_header): Use is_header macro. Update.
(update_msgstr_plurals): Update.
* read-mo.c (read_mo_file): Split msgid into msgctxt and msgid. Update.
* read-tcl.c (msgdomain_read_tcl): Use is_header macro.
* msgl-check.c (check_plural): Update.
(check_message): Use is_header macro.
* write-mo.c (write_table): Write msgid with msgctxt, instead of just
the msgid.
* write-java.c: Include xerror.h.
(write_java_code): Update.
(msgdomain_write_java): Give error if some entries have a context.
* write-csharp.c: Include xerror.h.
(write_csharp_code): Update.
(msgdomain_write_csharp): Give error if some entries have a context.
* write-resources.c (msgdomain_write_csharp_resources): Bail out if
contexts are present and cannot be stored in the given output format.
* write-tcl.c (write_msg): Use is_header macro.
(msgdomain_write_tcl): Bail out if contexts are present and cannot be
stored in the given output format.
* write-qt.c: Include hash.h.
(write_qm): Use is_header macro. Write out msgctxt if present. Write
a contexts section if appropriate.
* msgfmt.c (msgfmt_add_message): Add msgctxt argument.
(msgfmt_frob_new_message): Use is_header macro.
* xgettext.c (exclude_directive_message): Add msgctxt argument.
(remember_a_message, construct_header, finalize_header): Update.
* x-po.c (extract_add_message): Add msgctxt argument. Update.
(extract): Update.
* gettext-po.h (po_message_msgctxt, po_message_set_msgctxt): New
declarations.
* gettext-po.c (po_file_domain_header): Use is_header macro.
(po_message_create): Update.
(po_message_msgctxt, po_message_set_msgctxt): New functions.
(po_message_check_all): Use is_header macro.
2005-10-01 Bruno Haible <bruno@clisp.org>
Avoid a crash when msgcat or msgconv is asked to convert a non-ASCII
msgid.
* msgl-iconv.h (iconv_message_list): Change return type to boolean.
* msgl-iconv.c (iconv_message_list): Likewise. Return true if some
msgids change.
* msgl-cat.c (catenate_msgdomain_list): Exit with an error message if
the msgids change through charset conversion.
2005-10-04 Bruno Haible <bruno@clisp.org>
* format.c: Include stdbool.h.
(check_msgid_msgstr_format): Enable strict checking also when
msgid_plural is present but nplurals = 1.
Reported by Farzaneh Sarafraz <farzaneh@farsiweb.info>.
2005-10-01 Bruno Haible <bruno@clisp.org>
Change msgattrib to no longer remove extracted comments and file
positions when marking messages obsolete.
* msgmerge.c (merge): When marking a message obsolete, remove the
extracted comments and file positions.
* write-po.c (message_print_obsolete): Also print the extracted
comments and file positions.
2005-09-25 Bruno Haible <bruno@clisp.org>
Support for Python source encodings (PEP 0263).
* x-python.c: Include progname.h, basename.h, xerror.h, strstr.h,
c-ctype.h, utf8-ucs4.h.
(phase1_pushback): Reduce size.
(UEOF): New macro.
(phase2_pushback, phase2_pushback_length): New variables.
(phase2_getc, phase2_ungetc): New functions.
(struct unicode_string_buffer): New structure type.
(init_unicode_string_buffer, unicode_string_buffer_append_unicode_grow,
unicode_string_buffer_append_unicode, unicode_string_buffer_result,
free_unicode_string_buffer): New functions.
(comment_buffer): New variable.
(buffer, bufmax, buflen): Remove variables.
(comment_start, comment_add, comment_line_end): Rewritten.
(comment_at_start): New function.
(xgettext_current_file_source_encoding): New variable.
(xgettext_current_file_source_iconv): New variable.
(set_current_file_source_encoding, try_to_extract_coding): New
functions.
(continuation_or_nonblank_line): New variable.
(phase3_getc): Renamed from phase2_getc. Use phase2_getc instead of
phase1_getc. Return a Unicode character. Call try_to_extract_coding
when seeing a comment among the first two lines.
(phase3_ungetc): Renamed from phase2_ungetc. Use phase2_ungetc instead
of phase1_ungetc.
(UNICODE, IS_UNICODE, UNICODE_VALUE): New macros.
(struct mixed_string_buffer): New structure type.
(init_mixed_string_buffer, mixed_string_buffer_append_byte,
mixed_string_buffer_append_unicode_grow,
mixed_string_buffer_append_unicode,
mixed_string_buffer_flush_utf16_surr,
mixed_string_buffer_flush_curr_buffer, mixed_string_buffer_append,
mixed_string_buffer_result, free_mixed_string_buffer): New functions.
(phase7_getuc): Use phase2_getc instead of phase1_getc. Return a
Unicode character except for \ooo and \xnn.
(phase5_get): Operate on the level of Unicode characters instead of
at the level of bytes. Use a mixed_string_buffer to accumulate a
string literal.
(extract_parenthesized): Set xgettext_current_source_encoding to UTF-8
while passing UTF-8 strings to the xgettext main code.
(extract_python): Initialize xgettext_current_file_source_encoding and
xgettext_current_source_encoding.
2005-09-25 Bruno Haible <bruno@clisp.org>
* x-csharp.c (phase2_getc): Fix mis-use of iconv() when the source
encoding is neither ASCII nor UTF-8.
2005-09-20 Bruno Haible <bruno@clisp.org>
* msgattrib.c (main): Invoke bindtextdomain for bison-runtime.
* msgcat.c (main): Likewise.
* msgcmp.c (main): Likewise.
* msgcomm.c (main): Likewise.
* msgconv.c (main): Likewise.
* msgen.c (main): Likewise.
* msgexec.c (main): Likewise.
* msgfilter.c (main): Likewise.
* msggrep.c (main): Likewise.
* msginit.c (main): Likewise.
* msgmerge.c (main): Likewise.
* msgunfmt.c (main): Likewise.
* msguniq.c (main): Likewise.
* xgettext.c (main): Likewise.
* Makefile.am (DEFS): Also define BISON_LOCALEDIR.
2005-09-17 Bruno Haible <bruno@clisp.org>
* msgl-check.h: New file.
* msgl-check.c: New file, mostly extracted from msgfmt.c.
* Makefile.am (noinst_HEADERS): Add msgl-check.h.
(libgettextsrc_la_SOURCES): Add msgl-check.c, plural-eval.c.
(msgfmt_SOURCES): Remove plural-eval.c.
* format.c (check_msgid_msgstr_format): Add const to argument type.
* format.h (check_msgid_msgstr_format): Add const to argument type.
* gettext-po.c: Include msgl-check.h.
(po_file_check_all, po_message_check_all): New functions.
(po_xerror_logger): Remove function.
(po_message_check_format): Use new check_message function.
* gettext-po.h (po_file_check_all, po_message_check_all): New
declarations.
* msgfmt.c: Include msgl-check.h instead of setjmp.h, signal.h,
stdarg.h, po-xerror.h, format.h, plural-exp.h, plural-table.h,
strstr.h.
(SIZEOF, sigjmp_buf, sigsetjmp, siglongjmp, USE_SIGINFO,
sigfpe_exit, sigfpe_code, sigfpe_handler, install_sigfpe_handler,
uninstall_sigfpe_handler, check_plural_eval, plural_help, check_plural,
curr_mp, curr_msgid_pos, formatstring_error_logger, check_pair,
check_header_entry): Move definitions to msgl-check.c.
(main): Update.
(msgfmt_frob_new_message): Call check_message instead of
check_header_entry and check_pair.
2005-09-17 Bruno Haible <bruno@clisp.org>
Use new error handlers in libgettextpo.
* gettext-po.h (PO_SEVERITY_WARNING, PO_SEVERITY_ERROR,
PO_SEVERITY_FATAL_ERROR): New macros.
(po_xerror_handler): New structure type.
(po_xerror_handler_t): New type.
(po_file_read): Change signature; version 3.
(po_file_write): Change signature; version 2.
(po_message_check_format): Change signature; version 2.
* gettext-po.c: Include po-xerror.h.
(po_file_read): New implementation. Renamed old implementation to
po_file_read_v2.
(po_file_write): New implementation. Keep old implementation.
(po_xerror_logger): New function.
(po_message_check_format): New implementation. Keep old implementation.
2005-09-17 Bruno Haible <bruno@clisp.org>
* msgfmt.c (check_plural): Fix broken determination of max_nplurals.
2005-09-17 Bruno Haible <bruno@clisp.org>
New, higher-level error message output primitives.
* po-xerror.h: New file.
* po-xerror.c: New file.
* open-po.c: Include xerror.h, po-xerror.h, not error.h.
(open_po_file): Use po_xerror instead of error.
* po-charset.c: Include po-xerror.h, not po-error.h.
(po_lex_charset_set): Use po_xerror instead of po_multiline_warning.
* po-lex.c: Include xerror.h, po-error.h, po-xerror.h.
(po_gram_error, po_gram_error_at_line): Use po_xerror instead of
po_error or po_error_at_line. Don't decrement error_message_count;
let the caller do this instead.
(mbfile_getc, lex_getc): Use po_xerror instead of po_error.
* po-lex.h: Don't include po-error.h.
(po_gram_error, po_gram_error_at_line): Remove optimized macros.
* read-po-abstract.c: Include xerror.h, po-xerror.h.
(po_scan): Use po_xerror instead of po_error.
* read-po.c: Include po-xerror.h.
(default_add_message): Use po_xerror2 instead of po_gram_error_at_line
pair.
* read-properties.c: Include xerror.h, po-xerror.h, not exit.h.
(phase1_getc, phase4_getuc): Use po_xerror instead of error.
* read-stringtable.c: Include xerror.h, po-xerror.h, not exit.h.
(phase1_getc, read_string, stringtable_parse): Use po_xerror instead of
error.
* write-po.c: Include po-xerror.h, not exit.h, po-error.h.
(wrap): Pass the entire message as argument. Use po_xerror instead of
po_error.
(message_print, message_print_obsolete): Update. Use po_xerror instead
of po_multiline_warning.
(msgdomain_list_print): Use po_xerror instead of po_error or
po_error_at_line.
* msgl-iconv.h (struct conversion_context): Add 'message' field.
* msgl-iconv.c: Include xerror.h, po-xerror.h, not error.h, exit.h.
(conversion_error): Use po_xerror instead of error.
(iconv_message_list): Likewise. Set the entire message in the
conversion context before calling convert_*.
(iconv_msgdomain_list): Use po_xerror instead of error.
* xgettext.c (from_current_source_encoding): Set context.message.
* msgfmt.c: Include po-xerror.h.
(check_plural_eval): Pass the entire header as argument. Use po_xerror
instead of error_at_line.
(plural_help): New function, extracted from check_plural.
(check_plural): Change type of local variables has_plural, min_pos,
max_pos. Use po_xerror2 instead of error_at_line pairs. Use po_xerror
instead of error_at_line.
(curr_mp): New variable.
(formatstring_error_logger): Use po_xerror instead of vfprintf.
(check_pair): Take the entire message as argument. Use po_xerror
instead of error_at_line. Set curr_mp before calling
check_msgid_msgstr_format.
(check_header_entry): Take the entire header message as argument. Use
po_xerror instead of multiline_error.
(msgfmt_frob_new_message): Update.
* msgcmp.c (match_domain): Decrement error_message_count between two
error messages that belong together.
* msgmerge.c (match_domain): Decrement error_message_count between two
error messages that belong together.
* Makefile.am (noinst_HEADERS): Add po-xerror.h.
(COMMON_SOURCE): Add po-xerror.c.
2005-09-16 Bruno Haible <bruno@clisp.org>
* gettext-po.c (po_file_read): Set gram_max_allowed_errors to a large
integer, so that po_gram_error doesn't cause the program to exit().
2005-09-14 Bruno Haible <bruno@clisp.org>
* x-csharp.c: Include xerror.h.
2005-09-11 Bruno Haible <bruno@clisp.org>
* user-email.sh.in: Add support for Mozilla Thunderbird and GNOME
Evolution 2. Improve mutt support.
2005-08-26 Bruno Haible <bruno@clisp.org>
* plural-table.c (plural_table): Add an entry about Romanian.
Explanations by Eddy Petrişor <eddy.petrisor@gmail.com>.
2005-08-23 Bruno Haible <bruno@clisp.org>
* write-mo.h (byteswap): New variable.
* write-mo.c: Include byteswap.h.
(byteswap): New variable.
(BSWAP32): New macro.
(write_table): If requested, byteswap all 32-bit values before writing
them out.
* msgfmt.c (long_options): Add --endianness.
(main): Accept --endianness argument and set byteswap.
2005-08-08 Bruno Haible <bruno@clisp.org>
* msginit.c (catalogname_for_locale): Add support for Old English,
Hyam, Jju, Tyap, Maithili, Nahuatl, Low Saxon, Northern Sotho, Páez,
Tetum, Zapotec.
(englishname_of_language): Add support for Old English, Hyam, Jju,
Tyap, Kagoma, Maithili, Mayan, Nahuatl, Low Saxon, Northern Sotho,
Páez, Tetum, Zapotec.
2005-05-21 Bruno Haible <bruno@clisp.org>
New undocumented option, used by glocale PO files.
* msgfmt.c (include_fuzzies): Renamed from include_all.
(include_untranslated): New variable.
(long_options): Add --use-untranslated.
(main): Handle --use-untranslated.
(msgfmt_frob_new_message): Test include_untranslated.
(msgfmt_comment_special): Update.
2005-07-26 Bruno Haible <bruno@clisp.org>
* user-email.sh.in (datarootdir): New variable.
2005-07-26 Bruno Haible <bruno@clisp.org>
Fix compilation error on systems without iconv().
* xgettext.c (convert_string): Remove fallback macro definition.
(from_current_source_encoding) [!HAVE_ICONV]: Just abort here.
2005-07-17 Bruno Haible <bruno@clisp.org>
* po-lex.c (mb_width): Remove gcc warnings on platform with unsigned
'char' type (e.g. Linux/PowerPC).
Reported by Jeff Rizzo <riz@netbsd.org>.
2005-07-05 Bruno Haible <bruno@clisp.org>
* Makefile.am (msgmerge_SOURCES, xgettext_SOURCES, msgattrib_SOURCES,
msgcat_SOURCES, msgcomm_SOURCES, msgconv_SOURCES, msgen_SOURCES,
msgfilter_SOURCES, msggrep_SOURCES, msguniq_SOURCES): On mingw, use
C++ source code.
(libgettextsrc_la_LDFLAGS, libgettextpo_la_LDFLAGS): Use LTNOUNDEF.
(format_CFLAGS): New variable.
(format.lo): New rule.
(msg*_CFLAGS, xgettext_CFLAGS): Remove variables.
(msg*_CPPFLAGS, xgettext_CPPFLAGS): New variables.
2005-05-27 Bruno Haible <bruno@clisp.org>
* write-po.c (wrap): Output \a and \v as an escape sequence, like
\b, \f, \r.
Suggested by Asgeir Frimannsson <asgeirf@redhat.com>.
2005-05-05 Bruno Haible <bruno@clisp.org>
* Makefile.am (msgfmt_SOURCES): Add hash-string.c.
* Makefile.msvc (msgfmt_OBJECTS): Add hash-string.obj.
(hash-string.obj): New rule.
* Makefile.vms (msgfmt_OBJECTS): Add hash-string.obj.
(hash-string.obj): New rule.
2005-05-01 Bruno Haible <bruno@clisp.org>
* x-sh.c (open_singlequote_terminator): New variable.
(saw_opening_singlequote): Set it.
(phase2_getc): Handle the case of open_singlequote_terminator == '"'.
(read_word): Likewise. Treat i18n quotes like single quotes with
terminator '"'.
Reported by Jakub Bogusz <qboosh@pld-linux.org>.
2005-05-01 Bruno Haible <bruno@clisp.org>
Improved error message.
* msgl-iconv.h (struct conversion_context): New type.
(convert_string): Add context argument.
* msgl-iconv.c (conversion_error): New function.
(convert_string, convert_string_list, convert_msgid, convert_msgstr):
Add context argument.
(iconv_message_list): Construct context for them.
* xgettext.c (convert_string): Add context argument.
(from_current_source_encoding): Construct context for convert_string.
Reported by Hans Ulrich Niedermann <debian@n-dimensional.de>.
2005-04-18 Bruno Haible <bruno@clisp.org>
* po-lex.h (po_gram_error, po_gram_error_at_line): Test for
__APPLE_CC__ > 1. Needed because gcc-4.0 defines __APPLE_CC__ and
implements __VA_ARGS__ correctly.
* po-lex.c (po_gram_error, po_gram_error_at_line): Likewise.
* read-stringtable.c (phase2_getc): Optimize UTF-8 code. Avoids
gcc-4.0 warnings.
2006-06-21 Bruno Haible <bruno@clisp.org>
* gettext-0.14.6 released.
2006-06-21 Bruno Haible <bruno@clisp.org>
* Makefile.am (CLEANFILES): Add msgfmt.net.exe.mdb,
msgunfmt.net.exe.mdb.
2006-06-21 Bruno Haible <bruno@clisp.org>
* gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number.
2006-06-20 Bruno Haible <bruno@clisp.org>
* format-gcc-internal.c (struct unnumbered_arg): Remove type.
(struct numbered_arg): New type.
(struct spec): Use it.
(isdigit): New macro.
(numbered_arg_compare): New function.
(format_parse, format_free, format_check, format_print): Update to
GCC 4.1 internal format strings.
Reported by Göran Uddeborg <goeran@uddeborg.se>.
2005-05-23 Bruno Haible <bruno@clisp.org>
* gettext-0.14.5 released.
2005-05-23 Bruno Haible <bruno@clisp.org>
* gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number.
2005-05-21 Bruno Haible <bruno@clisp.org>
* format-gcc-internal.c: Update for GCC 4.0.
(FAT_POINTER, FAT_SIZE_LONGLONG, FAT_SIZE_WIDE, FAT_SIZE_MASK): New
enum items.
(FAT_*): Update.
(struct spec): Add uses_err_no field.
(format_parse): Initialize uses_err_no field. Handle %q flag. Handle
'll', 'w' size specifiers. Handle %<, %>, %', %m, %p, %J directives.
(format_check): Also check that the use of err_no is the same.
Based on a patch by Jakub Jelinek <jakub@redhat.com>.
2005-04-11 Bruno Haible <bruno@clisp.org>
* gettext-0.14.4 released.
2005-04-11 Bruno Haible <bruno@clisp.org>
* gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number.
2005-03-14 Bruno Haible <bruno@clisp.org>
* gettext-0.14.3 released.
2005-03-08 Bruno Haible <bruno@clisp.org>
* gettext-po.h (LIBGETTEXTPO_VERSION): Bump version number.
2005-02-26 Bruno Haible <bruno@clisp.org>
* format-scheme.c (format_arg_type): Add FAT_COMPLEX. Remove
FAT_FUNCTION.
(make_intersected_element): Simplify also the intersection with
FAT_COMPLEX.
(make_union_element): Simplify also the union with FAT_COMPLEX.
(IIC): New array.
(nocheck_params): Remove function.
(parse_upto): Remove handling of ~W, ~<, ~>.
Implement non-CL handling of ~C, ~I, ~_, ~/, ~T.
Implement handling of ~Y, ~!, ~Q, ~K.
2005-02-26 Bruno Haible <bruno@clisp.org>
* format-scheme.c (parse_upto): Remove support for ~!.
Reported by Kevin Ryde <user42@zip.com.au>.
2005-02-24 Bruno Haible <bruno@clisp.org>
* gettext-0.14.2 released.
2005-02-12 Bruno Haible <bruno@clisp.org>
* Makefile.msvc (gettextpo.lib): Link with intl.lib as well.
2005-02-12 Bruno Haible <bruno@clisp.org>
* Makefile.msvc (msginit_OBJECTS): Add plural-count.obj.
* Makefile.vms (msginit_OBJECTS): Add plural-count.obj.
2005-02-10 Bruno Haible <bruno@clisp.org>
* gettext-po.h (po_header_set_field): New declaration.
* gettext-po.c (po_header_set_field): New function.
Suggested by Ross Golder <ross@golder.org>.
2005-02-10 Bruno Haible <bruno@clisp.org>
* gettext-po.h (LIBGETTEXTPO_VERSION): New macro.
(libgettextpo_version): New declaration.
* gettext-po.c (libgettextpo_version): New variable.
2005-02-10 Bruno Haible <bruno@clisp.org>
* gettext-po.h (po_message_remove_filepos, po_message_add_filepos): New
declarations.
* gettext-po.c (po_message_remove_filepos, po_message_add_filepos): New
functions.
Suggested by Asgeir Frimannsson <asgeirf@redhat.com>.
2005-02-10 Bruno Haible <bruno@clisp.org>
* gettext-po.h (po_message_set_extracted_comments): New declaration.
* gettext-po.c (po_message_set_extracted_comments): New function.
Suggested by Asgeir Frimannsson <asgeirf@redhat.com>.
2005-02-08 Bruno Haible <bruno@clisp.org>
* msginit.c (get_user_email): Cast _() to 'char *', to avoid compiler
warning.
2005-02-07 Bruno Haible <bruno@clisp.org>
Make the tools work in the tr_TR locale.
* po-charset.c: Include c-strcase.h instead of strcase.h.
(po_charset_canonicalize): Use c_strcasecmp.
* msgcmp.c: Include c-strcase.h instead of strcase.h.
(compare): Use c_strncasecmp.
* msginit.c: Include c-strcase.h instead of strcase.h.
(content_type): Use c_strcasecmp.
* msgmerge.c: Include c-strcase.h instead of strcase.h.
(message_merge, merge): Use c_strncasecmp.
* xgettext.c: Include c-strcase.h instead of strcase.h.
(language_to_extractor): Use c_strcasecmp.
Reported by Recai Oktaş <roktas@omu.edu.tr>.
2005-02-07 Bruno Haible <bruno@clisp.org>
* project-id: Use LC_ALL=C to protect range expression against
Estonian locale.
2005-02-06 Bruno Haible <bruno@clisp.org>
Leave #: lines with unknown syntax alone instead of turning them into
plain comments.
* po-hash.h: Remove file.
* po-hash-gen.y: Remove file.
* read-po-abstract.c: Don't include po-hash.h.
(po_parse_comment_filepos, po_parse_comment_solaris_filepos): New
functions.
(po_callback_comment_dispatcher): Call them instead of the old
po_parse_comment_filepos.
* read-stringtable.c: Don't include po-hash.h.
* Makefile.am (noinst_HEADERS): Remove po-hash.h, po-hash-gen.h.
(COMMON_SOURCE): Remove po-hash-gen.y.
(BUILT_SOURCES): Remove po-hash-gen.c, po-hash-gen.h.
* Makefile.msvc (OBJECTS): Remove po-hash-gen.obj.
(po-hash-gen.obj): Remove rule.
* Makefile.vms (OBJECTS): Remove po-hash-gen.obj.
(po-hash-gen.obj): Remove rule.
* FILES: Update.
Reported by David Fraser <davidf@sjsoft.com>.
2005-02-04 Bruno Haible <bruno@clisp.org>
* plural-table.c (plural_table): Add an entry about Vietnamese.
Explanations by Clytie Siddall <clytie@riverland.net.au>.
2005-01-29 Bruno Haible <bruno@clisp.org>
* Makefile.am (msgcmp_LDADD, msgfmt_LDADD, msgmerge_LDADD,
msgunfmt_LDADD, xgettext_LDADD, msgattrib_LDADD, msgcat_LDADD,
msgcomm_LDADD, msgconv_LDADD, msgen_LDADD, msgexec_LDADD,
msgfilter_LDADD, msggrep_LDADD, msguniq_LDADD): Add INTL_MACOSX_LIBS.
2005-01-27 Bruno Haible <bruno@clisp.org>
* msgfmt.c (formatstring_error_logger): Cast the fprrintf argument,
to make it work on big-endian 64-bit machines.
2005-01-16 Bruno Haible <bruno@clisp.org>
Support for Scheme.
* message.h (format_type): New enum value 'format_scheme'.
(NFORMATS): Increment.
* message.c (format_language): Add format_scheme entry.
(format_language_pretty): Likewise.
* format.h (formatstring_scheme): New declaration.
* format-scheme.c: New file, based on format-lisp.c.
* format.c (formatstring_parsers): Add formatstring_scheme.
* x-scheme.h: New file.
* x-scheme.c: New file.
* xgettext.c: Include x-scheme.h.
(flag_table_scheme): New variable.
(main): Invoke init_flag_table_scheme, x_scheme_extract_all,
x_scheme_keyword.
(usage): Mention Scheme source language.
(xgettext_record_flag): Handle format_scheme.
(language_to_extractor): Add Scheme rule.
(extension_to_language): Add Scheme rule.
* Makefile.am (noinst_HEADERS): Add x-scheme.h.
(FORMAT_SOURCE): Add format-scheme.c.
(xgettext_SOURCES): Add x-scheme.c.
* Makefile.msvc (OBJECTS): Add format-scheme.obj.
(xgettext_OBJECTS): Add x-scheme.obj.
(format-scheme.obj, x-scheme.obj): New rules.
* Makefile.vms (OBJECTS): Add format-scheme.obj.
(xgettext_OBJECTS): Add x-scheme.obj.
(format-scheme.obj, x-scheme.obj): New rules.
* FILES: Update.
2005-01-08 Bruno Haible <bruno@clisp.org>
* msggrep.c (grep_args, grep_path, grep_argv): Remove variables.
(struct grep_task): New type.
(grep_task): New variable.
(main): Initialize grep_task instead of grep_args. Change processing
of options 'E', 'F' to set a matcher, of 'e', 'f' to append to the
pattern string, and of 'i' to set a boolean. Compile the patterns.
(is_string_selected): Execute a compiled pattern instead of calling
the grep program.
(is_message_selected): Update.
* Makefile.am (AM_CPPFLAGS): Add -I option for libgrep.
(LIBGREP): New variable.
(msggrep_LDADD): Add $(LIBGREP).
* Makefile.msvc (INCLUDES): Add libgrep directory.
(msggrep.exe): Link with libgrep.
* Makefile.vms (INCLUDES): Add libgrep directory.
(msggrep.exe): Link with libgrep.
2005-01-09 Bruno Haible <bruno@clisp.org>
* msgl-ascii.h (is_ascii_msgdomain_list): New declaration.
* msgl-ascii.c (is_ascii_msgdomain_list): New function.
* x-po.c (header_charset): New variable.
(extract_add_message): When seeing the header entry, store the charset
in header_charset.
(extract): Store the value of header_charset in the new constructed
header entry.
* xgettext.c (main): Convert the existing PO file to UTF-8 if it was
not entirely ASCII.
Reported by Jörg Schilling <schilling@fokus.fraunhofer.de>.
2005-01-08 Bruno Haible <bruno@clisp.org>
* msggrep.c (usage): Explain COMMENT-PATTERN syntax as well.
2005-01-06 Bruno Haible <bruno@clisp.org>
* x-tcl.c (read_word): Ignore non-space whitespace at the beginning.
Reported by William J Poser <wjposer@ldc.upenn.edu>.
2005-01-06 Bruno Haible <bruno@clisp.org>
* write-csharp.c (msgdomain_write_csharp): Don't call fclose after
fwriteerror.
* write-java.c (msgdomain_write_java): Likewise.
* write-mo.c (msgdomain_write_mo): Likewise.
* write-po.c (msgdomain_list_print): Likewise.
* write-qt.c (msgdomain_write_qt): Likewise.
* write-resources.c (execute_writing_input): Likewise.
* write-tcl.c (msgdomain_write_tcl): Likewise.
2005-01-05 Bruno Haible <bruno@clisp.org>
* msgattrib.c (main): Update year in --version output.
* msgcat.c (main): Likewise.
* msgcmp.c (main): Likewise.
* msgcomm.c (main): Likewise.
* msgconv.c (main): Likewise.
* msgen.c (main): Likewise.
* msgexec.c (main): Likewise.
* msgfilter.c (main): Likewise.
* msgfmt.c (main): Likewise.
* msggrep.c (main): Likewise.
* msginit.c (main): Likewise.
* msgmerge.c (main): Likewise.
* msgunfmt.c (main): Likewise.
* msguniq.c (main): Likewise.
* xgettext.c (main): Likewise.
2005-01-07 Bruno Haible <bruno@clisp.org>
* gettext-po.c (po_file_read): Interpret "-" and "/dev/stdin" as
denoting stdin.
Suggested by Asgeir Frimannsson <asgeirf@redhat.com>.
2004-11-29 Bruno Haible <bruno@clisp.org>
* Makefile.am (libgettextpo_la_LDFLAGS): Add @LTLIBINTL@ @LTLIBICONV@.
Reported by Sam Steingold <sds@gnu.org>.
2004-10-01 Guido Flohr <guido@imperia.net>
* x-perl.c (x_perl_prelex): Recognize function names starting with '-'.
Reported by Ryan Anderson <ryan@autoweb.net>.
2004-09-16 Bruno Haible <bruno@clisp.org>
* format.h (formatstring_error_logger_t): Modify decl for GCC <= 3.0.
Reported by Jens A. Tkotz <jens@peino.de>.
2004-09-11 Bruno Haible <bruno@clisp.org>
* Makefile.am (msginit_SOURCES): Add plural-count.c.
* msginit.c (update_msgstr_plurals): New function.
(main): Call it.
* msgmerge.c (match_domain): Provide the appropriate number of plural
forms for messages that don't occur in the Def.po file.
Reported by Jens A. Tkotz <jens@peino.de>.
2004-09-06 Bruno Haible <bruno@clisp.org>
* format.h (formatstring_error_logger_t): New type.
(struct formatstring_parser): Change calling convention of 'check'
method.
(check_msgid_msgstr_format): New declaration.
* format-awk.c (format_check): Use error_logger argument instead of
noisy and error_at_line.
* format-c.c (format_check): Likewise.
* format-csharp.c (format_check): Likewise.
* format-elisp.c (format_check): Likewise.
* format-gcc-internal.c (format_check): Likewise.
* format-java.c (format_check): Likewise.
* format-librep.c (format_check): Likewise.
* format-lisp.c (format_check): Likewise.
* format-pascal.c (format_check): Likewise.
* format-perl.c (format_check): Likewise.
* format-perl-brace.c (format_check): Likewise.
* format-php.c (format_check): Likewise.
* format-python.c (format_check): Likewise.
* format-qt.c (format_check): Likewise.
* format-sh.c (format_check): Likewise.
* format-tcl.c (format_check): Likewise.
* format-ycp.c (format_check): Likewise.
* format.c (check_msgid_msgstr_format): New function, extracted from
msgfmt.c.
* msgfmt.c (curr_msgid_pos): New variable.
(formatstring_error_logger): New function.
(check_pair): Use check_msgid_msgstr_format, formatstring_error_logger.
* msgmerge.c (msgfmt_check_pair_fails): Update.
* gettext-po.h (po_message_check_format): New declaration.
* gettext-po.c (po_error_logger, po_message_check_format): New
functions.
2004-09-05 Bruno Haible <bruno@clisp.org>
* po-error.h: New file.
* po-error.c: New file.
* po-charset.c: Include po-error.h.
(po_lex_charset_set): Use po_multiline_warning instead of
multiline_warning.
* po-lex.h: Include po-error.h.
(po_gram_error): Use po_error instead of error.
(po_gram_error_at_line): Use po_error_at_line instead of error_at_line.
* po-lex.c (po_gram_error): Use po_error instead of error.
(po_gram_error_at_line): Use po_error_at_line instead of error_at_line.
(mbfile_getc, lex_getc): Use po_error instead of error.
* read-po-abstract.c (po_scan): Likewise.
* write-po.c: Include po-error.h instead of error.h.
(wrap): Use po_error instead of error.
(message_print, message_print_obsolete): Use po_multiline_warning
instead of multiline_warning.
(msgdomain_list_print): Use po_error instead of error, po_error_at_line
instead of error_at_line.
* str-list.h (string_list_join): New declaration.
* str-list.c (string_list_join): New function.
* message.h (message_list_insert_at): New declaration.
* message.c (message_list_insert_at): New function.
* gettext-po.h (po_filepos_t): New type.
(struct po_error_handler, po_error_handler_t): New types.
(po_file_create): New declaration.
(po_file_read): Add handler argument.
(po_file_write, po_message_insert, po_message_create,
po_message_set_msgid, po_message_set_msgid_plural,
po_message_set_msgstr, po_message_set_msgstr_plural,
po_message_comments, po_message_set_comments,
po_message_extracted_comments, po_message_filepos,
po_message_set_obsolete, po_message_set_fuzzy, po_message_set_format,
po_filepos_file, po_filepos_start_line): New declarations.
* gettext-po.c (po_file_create): New function.
(po_file_read): Add handler argument. Keep an old version for backward
compatibility.
(po_file_write): New function.
(po_message_iterator): Store more information, to make
po_message_insert possible.
(po_message_iterator_free): Update.
(po_next_message): Don't crash if iterator->mlp is NULL.
(po_message_insert): New function.
(po_message_create): New function.
(po_message_set_msgid, po_message_set_msgid_plural,
po_message_set_msgstr, po_message_set_msgstr_plural,
po_message_comments, po_message_set_comments,
po_message_extracted_comments, po_message_filepos,
po_message_set_obsolete, po_message_set_fuzzy, po_message_set_format,
po_filepos_file, po_filepos_start_line): New functions.
* Makefile.am (noinst_HEADERS): Add po-error.h.
(COMMON_SOURCE): Add po-error.c.
* Makefile.msvc (OBJECTS): Add po-error.obj.
(po-error.obj): New rule.
* Makefile.vms (OBJECTS): Add po-error.obj.
(po-error.obj): New rule.
* FILES: Update.
2004-09-03 Bruno Haible <bruno@clisp.org>
* Makefile.am (msginit_LDADD): Use the INTL_MACOSX_LDFLAGS.
2004-08-30 Bruno Haible <bruno@clisp.org>
* plural-table.c (plural_table): Czech is now like Slovak.
Reported by Stepan Kasal <kasal@ucw.cz>.
2004-06-23 Bruno Haible <bruno@clisp.org>
* x-c.c (phase1_getc): Fix phase0_getc invocation.
Reported by Matt Dreezer <matthew.dreezer@edl.uk.eds.com>.
2004-05-14 Bruno Haible <bruno@clisp.org>
* format-java.c (message_format_parse): Fix argument of freesa() calls.
2004-03-19 Bruno Haible <bruno@clisp.org>
* Makefile.am (install-exec-clean): Don't remove libgettextsrc.a on
AIX.
Reported by Kouichi Hashikawa <z01a7ksy@cs.ecip.tohoku.ac.jp>.
2004-03-14 Bruno Haible <bruno@clisp.org>
* format-lisp.c (parse_upto): Add integer restriction for the dispatch
argument in ~[...~].
2004-03-02 Bruno Haible <bruno@clisp.org>
* read-csharp.c (msgdomain_read_csharp): Extend the lang -> frobbedlang
mapping so as to support Serbian and Uzbek locales.
* write-csharp.c (msgdomain_write_csharp): Likewise.
Reported by Jorn Baayen <jbaayen@dds.nl>.
2004-02-27 Bruno Haible <bruno@clisp.org>
* plural-table.c (plural_table): Add an entry about Serbian.
Reported by Danilo Segan <danilo@gnome.org>.
2004-01-29 Bruno Haible <bruno@clisp.org>
* gettext-0.14.1 released.
2004-01-28 Bruno Haible <bruno@clisp.org>
* gettext-0.14 released.
2004-01-18 Bruno Haible <bruno@clisp.org>
* msginit.c (catalogname_for_locale): Add entries for Akan, Avaric,
Bambara, Cree, Divehi (Maldivian), Éwé, Igbo, Kongo, Kanuri, Ganda,
Luba-Katanga, Ojibwa, Venda.
(englishname_of_language): Likewise, and also for Fulah (Fulfulde).
2004-01-09 Bruno Haible <bruno@clisp.org>
* format.h (struct formatstring_parser): Add 'translated' argument to
parse function.
(get_sysdep_c_format_directives): Renamed from
get_c99_format_directives. Add 'translated' argument. Change meaning
of endpos in returned array.
* format-c.c (struct spec): Rename field c99_directives to
sysdep_directives, and c99_directives_count to sysdep_directives_count.
(format_parse): Add 'translated' argument. Handle 'I' flag. Store the
pointer past the '>' character instead of the pointer to the '>'.
(format_c_parse, format_objc_parse): Add 'translated' argument.
(get_sysdep_c_format_directives): Renamed from
get_c99_format_directives. Add 'translated' argument.
* format-awk.c (format_parse): Add 'translated' argument.
* format-csharp.c (format_parse): Likewise.
* format-elisp.c (format_parse): Likewise.
* format-gcc-internal.c (format_parse): Likewise.
* format-java.c (format_parse): Likewise.
* format-librep.c (format_parse): Likewise.
* format-lisp.c (format_parse): Likewise.
* format-pascal.c (format_parse): Likewise.
* format-perl-brace.c (format_parse): Likewise.
* format-perl.c (format_parse): Likewise.
* format-php.c (format_parse): Likewise.
* format-python.c (format_parse): Likewise.
* format-qt.c (format_parse): Likewise.
* format-sh.c (format_parse): Likewise.
* format-tcl.c (format_parse): Likewise.
* format-ycp.c (format_parse): Likewise.
* msgfmt.c (check_pair): Update.
* msgmerge.c (msgfmt_check_pair_fails): Likewise.
* read-mo.c (get_sysdep_string): Don't add '<'...'>' around segments
of length 1.
(read_mo_file): Treat major revision 1 like major revision 0.
* write-mo.c (write_table): Update. Use major revision 1 if "I" occurs
among the sysdep segments.
* xgettext.c (set_format_flags_from_context, remember_a_message,
remember_a_message_plural): Update.
2004-01-14 Bruno Haible <bruno@clisp.org>
* msginit.c (fill_header): Avoid a NULL pointer access when the header
has no comment attached to it.
Reported by Josep Puigdemont <baldrick@terra.es>.
2004-01-09 Bruno Haible <bruno@clisp.org>
* msgattrib.c (main): Update year in --version output.
* msgcat.c (main): Likewise.
* msgcmp.c (main): Likewise.
* msgcomm.c (main): Likewise.
* msgconv.c (main): Likewise.
* msgen.c (main): Likewise.
* msgexec.c (main): Likewise.
* msgfilter.c (main): Likewise.
* msgfmt.c (main): Likewise.
* msggrep.c (main): Likewise.
* msginit.c (main): Likewise.
* msgmerge.c (main): Likewise.
* msgunfmt.c (main): Likewise.
* msguniq.c (main): Likewise.
* xgettext.c (main): Likewise.
2003-12-29 Bruno Haible <bruno@clisp.org>
* xgettext.h: Include stdlib.h, str-list.h.
(struct refcounted_string_list_ty): New type.
(add_reference, drop_reference): New functions.
(savable_comment, savable_comment_add, savable_comment_reset,
savable_comment_to_xgettext_comment): New declarations.
* xgettext.c (savable_comment): New variable.
(savable_comment_add, savable_comment_reset,
savable_comment_to_xgettext_comment): New functions.
* x-java.c (struct refcounted_string_list_ty, comment, add_reference,
drop_reference, x_java_comment_add, x_java_comment_reset,
x_java_comment_to_xgettext_comment): Remove. Use replacement from
xgettext.{h,c} instead.
* x-csharp.c (struct refcounted_string_list_ty, comment, add_reference,
drop_reference, x_csharp_comment_add, x_csharp_comment_reset,
x_csharp_comment_to_xgettext_comment): Remove. Use replacement from
xgettext.{h,c} instead.
* x-c.c (comment_line_end): Call savable_comment_add instead of
xgettext_comment_add.
(struct token_ty): Add 'comment' field.
(free_token): Free it.
(phase5_get): Initialize token's 'comment' field.
(phase6_get): Call savable_comment_reset instead of
xgettext_comment_reset.
(phase8a_get): Initialize token's 'comment' field.
(phase8b_get): Call savable_comment_reset instead of
xgettext_comment_reset.
(phase8c_get): In @"...", use the comment of the first token, not of
the second.
(struct xgettext_token_ty): Add 'comment' field.
(x_c_lex): Deal with the token's comment.
(extract_parenthesized): Call savable_comment_to_xgettext_comment and
savable_comment_reset. Free the token's comment field.
* x-python.c (comment_line_end): Call savable_comment_add instead of
xgettext_comment_add.
(struct token_ty): Add 'comment' field.
(phase5_get): Call savable_comment_reset instead of
xgettext_comment_reset. Initialize token's 'comment' field.
(extract_parenthesized): Call savable_comment_to_xgettext_comment and
savable_comment_reset. Free the token's comment field.
2003-12-28 Bruno Haible <bruno@clisp.org>
* read-mo.h (read_mo_file): Change 'fn' into 'filename'.
* read-mo.c (read_mo_file): Likewise.
2003-12-28 Bruno Haible <bruno@clisp.org>
* write-resources.h: New file.
* write-resources.c: New file.
* msgfmt.cs: New file.
* msgfmt.c: Include write-resources.h.
(csharp_resources_mode): New variable.
(long_options): Add --csharp-resources.
(main): Handle --csharp-resources. More generic code for detection of
contradicting modes. Invoke msgdomain_write_csharp_resources.
(usage): Document --csharp-resources option.
(msgfmt_set_domain): Update.
* read-resources.h: New file.
* read-resources.c: New file.
* msgunfmt.cs (DumpResource): Add a constructor that dumps a .resources
file.
(Main): Invoke it when only one argument is given.
* msgunfmt.c: Include read-resources.h.
(csharp_resources_mode): New variable.
(long_options): Add --csharp-resources.
(main): Handle --csharp-resources. More generic code for detection of
contradicting modes. Invoke read_one_file instead of read_mo_file.
(usage): Document --csharp-resources option.
(read_one_file): New function.
* Makefile.am (noinst_HEADERS): Add read-resources.h and
write-resources.h.
(msgfmt_SOURCES): Add write-resources.c.
(msgunfmt_SOURCES): Add read-resources.c.
(EXTRA_DIST): Add msgfmt.cs.
(CLEANFILES): Add msgfmt.net.exe.
(msgfmt.net.exe): New rule.
(all-csharp-yes): Depend on it.
(install-exec-csharp-yes): Also install msgfmt.net.exe.
(uninstall-csharp-yes): Also uninstall msgfmt.net.exe.
* Makefile.msvc (msgfmt_OBJECTS): Add write-resources.obj.
(msgunfmt_OBJECTS): Add read-resources.obj.
(write-resources.obj, read-resources.obj): New rules.
* Makefile.vms (msgfmt_OBJECTS): Add write-resources.obj.
(msgunfmt_OBJECTS): Add read-resources.obj.
(write-resources.obj, read-resources.obj): New rules.
* FILES: Update.
2003-12-26 Bruno Haible <bruno@clisp.org>
Support for C#.
* write-csharp.h: New file.
* write-csharp.c: New file.
* msgfmt.c: Include write-csharp.h.
(csharp_mode, csharp_resource_name, csharp_locale_name,
csharp_base_directory): New variables.
(long_options): Add option --csharp.
(main): Handle option --csharp. Initialize csharp_resource_name,
csharp_locale_name, csharp_base_directory. Perform checks for C# mode.
Invoke msgdomain_write_csharp.
(usage): Document --csharp option and C# mode.
(msgfmt_set_domain): Ignore in C# mode.
* read-csharp.h: New file.
* read-csharp.c: New file.
* msgunfmt.cs: New file.
* msgunfmt.c: Include read-csharp.h.
(csharp_mode, csharp_resource_name, csharp_locale_name,
csharp_base_directory): New variables.
(long_options): Add option --csharp.
(main): Handle option --csharp. Initialize csharp_resource_name,
csharp_locale_name, csharp_base_directory. Perform checks for C# mode.
Invoke msgdomain_read_csharp.
(usage): Document --csharp option and C# mode.
* Makefile.am (noinst_HEADERS): Add read-csharp.h, write-csharp.h.
(CSHARPCOMP, CSHARPCOMPFLAGS): New variables.
(msgfmt_SOURCES): Add write-csharp.c.
(msgunfmt_SOURCES): Add read-csharp.c.
(EXTRA_DIST): Add msgunfmt.cs.
(CLEANFILES): Add msgunfmt.net.exe.
(all-csharp-yes, all-csharp-no): New rules.
(all-local): Depend on them.
(msgunfmt.net.exe): New rule.
(install-exec-csharp-yes, install-exec-csharp-no): New rules.
(install-exec-local): Depend on them.
(installdirs-csharp): New rule.
(installdirs-local): Depend on it.
(uninstall-csharp-yes, uninstall-csharp-no): New rules.
(uninstall-local): Depend on it.
* Makefile.msvc (msgfmt_OBJECTS): Add write-csharp.obj.
(msgunfmt_OBJECTS): Add read-csharp.obj.
(write-csharp.obj, read-csharp.obj): New rules.
* Makefile.vms (msgfmt_OBJECTS): Add write-csharp.obj.
(msgunfmt_OBJECTS): Add read-csharp.obj.
(write-csharp.obj, read-csharp.obj): New rules.
* FILES: Update.
2003-12-26 Bruno Haible <bruno@clisp.org>
* read-java.c (msgdomain_read_java): Relocate also the GETTEXTJAR
value.
* urlget.c (fetch): Likewise.
2003-12-26 Bruno Haible <bruno@clisp.org>
* write-java.c (write_java_code): Emit a static method
'get_msgid_plural_table' instead of a static field 'plural'.
* gnu/gettext/DumpResource.java (DumpResource.dump): Exploit a
'get_msgid_plural_table' method if it exists.
2003-12-14 Bruno Haible <bruno@clisp.org>
* message.h (format_type): New enum value 'format_csharp'.
(NFORMATS): Increment.
* message.c (format_language): Add format_csharp entry.
(format_language_pretty): Likewise.
* format.h (formatstring_csharp): New declaration.
* format-csharp.c: New file.
* format.c (formatstring_parsers): Add formatstring_csharp.
* x-csharp.h: New file.
* x-csharp.c: New file.
* xgettext.c: Include x-csharp.h.
(flag_table_csharp): New variable.
(main): Invoke init_flag_table_csharp, x_csharp_extract_all,
x_csharp_keyword.
(usage): Mention C# source language.
(xgettext_record_flag): Handle format_csharp.
(language_to_extractor): Add C# rule.
(extension_to_language): Add C# rule.
* Makefile.am (noinst_HEADERS): Add x-csharp.h.
(FORMAT_SOURCE): Add format-csharp.c.
(xgettext_SOURCES): Add x-csharp.c.
* Makefile.msvc (OBJECTS): Add format-csharp.obj.
(xgettext_OBJECTS): Add x-csharp.obj.
(format-csharp.obj, x-csharp.obj): New rules.
* Makefile.vms (OBJECTS): Add format-csharp.obj.
(xgettext_OBJECTS): Add x-csharp.obj.
(format-csharp.obj, x-csharp.obj): New rules.
* FILES: Update.
2003-12-28 Bruno Haible <bruno@clisp.org>
* msgexec.c (process_string): Pass ignore_sigpipe = false.
* msgfilter.c (process_string): Likewise.
* msggrep.c (is_string_selected): Likewise.
* msginit.c (project_id, project_id_version, get_user_email,
language_team_address): Likewise.
* read-java.c (execute_and_read_po_output): Likewise.
* read-tcl.c (msgdomain_read_tcl): Likewise.
* urlget.c (execute_it): Pass ignore_sigpipe = true.
(fetch): Pass ignore_sigpipe = true when fetching the file, = false
otherwise.
2003-12-14 Bruno Haible <bruno@clisp.org>
* x-c.c (SIZEOF): New macro.
(phase1_ungetc): Verify that the pushback buffer's size is sufficient.
(phase2_ungetc): Likewise.
(phase3_ungetc): Likewise.
(phase5_unget): Likewise.
(phase6_unget): Likewise.
* x-java.c (SIZEOF): New macro.
(phase1_ungetc): Verify that the pushback buffer's size is sufficient.
(phase2_ungetc): Likewise.
(phase3_ungetc): Likewise.
(phase5_unget): Likewise.
(phase6_unget): Likewise.
* x-php.c (SIZEOF): New macro.
(phase1_ungetc): Verify that the pushback buffer's size is sufficient.
(phase2_ungetc): Likewise.
(phase3_ungetc): Likewise.
* x-python.c (SIZEOF): New macro.
(phase1_ungetc): Verify that the pushback buffer's size is sufficient.
(phase5_unget): Likewise.
* x-sh.c (SIZEOF): New macro.
(phase1_ungetc): Verify that the pushback buffer's size is sufficient.
(phase2_ungetc): Likewise.
* x-smalltalk.c (SIZEOF): New macro.
(phase2_unget): Verify that the pushback buffer's size is sufficient.
* x-tcl.c (SIZEOF): New macro.
(phase1_ungetc): Verify that the pushback buffer's size is sufficient.
(phase2_ungetc): Likewise.
* x-ycp.c (SIZEOF): New macro.
(phase2_unget): Verify that the pushback buffer's size is sufficient.
2003-12-14 Bruno Haible <bruno@clisp.org>
* x-c.c (phase1_pushback): Reduce size to 2.
(phase2_pushback): Reduce size to 1.
(phase3_pushback): Reduce size to 2.
(phase5_pushback): Reduce size to 1.
(phase6_pushback): Reduce size to 2.
* x-java.c (phase2_pushback): Reduce size to 1.
(phase3_pushback): Reduce size to 2.
(phase5_pushback): Reduce size to 3.
(phase6_pushback): Reduce size to 2.
* x-php.c (phase1_pushback): Reduce size to 2.
* x-python.c (max): New macro.
(phase1_pushback): Reduce size to UNINAME_MAX + 3.
(phase5_pushback): Reduce size to 1.
* x-sh.c (phase1_pushback): Reduce size to 1.
(phase2_pushback): Reduce size to 2.
* x-smalltalk.c (phase2_pushback): Reduce size to 1.
* x-tcl.c (phase1_pushback): Reduce size to 1.
(phase2_pushback): Reduce size to 2.
2003-12-12 Bruno Haible <bruno@clisp.org>
Assume automake-1.8.
* Makefile.am (install-exec-local): Renamed from install-exec-am.
2003-11-30 Bruno Haible <bruno@clisp.org>
* format-java.c: Include xallocsa.h.
(message_format_parse): Use xallocsa instead of alloca.
(choice_format_parse): Likewise.
* msgl-cat.c: Include xallocsa.h.
(catenate_msgdomain_list): Use xallocsa instead of alloca.
* msgl-charset.c: Include xallocsa.h.
(compare_po_locale_charsets): Use xallocsa instead of alloca.
* msgl-iconv.c: Include xallocsa.h.
(iconv_message_list): Use xallocsa instead of alloca.
* po-charset.c: Include xallocsa.h.
(po_lex_charset_set): Use xallocsa instead of alloca.
* read-tcl.c: Include xallocsa.h.
(msgdomain_read_tcl): Use xallocsa instead of alloca.
* write-java.c: Include xallocsa.h.
(compute_hashsize, msgdomain_write_java): Use xallocsa instead of
alloca.
* write-mo.c: Include xallocsa.h.
(write_table): Use xallocsa instead of alloca.
* write-po.c: Include xallocsa.h.
(msgdomain_list_print_po): Use xallocsa instead of alloca.
* write-tcl.c: Include xallocsa.h.
(msgdomain_write_tcl): Use xallocsa instead of alloca.
* msggrep.c: Include xallocsa.h.
(is_message_selected): Use xallocsa instead of alloca.
* msginit.c: Include xallocsa.h.
(subst_string): Use xallocsa instead of alloca.
* msgmerge.c: Include obstack.h.
(obstack_chunk_alloc, obstack_chunk_free): New macros.
(message_merge): Use obstack_alloc instead of alloca.
* xgettext.c: Include xallocsa.h.
(flag_context_list_table_insert): Use xallocsa instead of alloca.
2003-12-17 Bruno Haible <bruno@clisp.org>
* gettext-0.13.1 released.
2003-12-14 Bruno Haible <bruno@clisp.org>
* x-sh.c (phase2_getc): Call phase1_ungetc instead of phase2_ungetc:
The next phase2_getc invocation must return QUOTED('"'), not '"'.
2003-12-14 Bruno Haible <bruno@clisp.org>
* x-c.c (phase7_getc): Remove dead code.
* x-java.c (accumulate_escaped): More precise error message.
2003-12-02 Bruno Haible <bruno@clisp.org>
* msginit.c (catalogname_for_locale): Treat sr_CS like sr_YU.
2003-11-30 Bruno Haible <bruno@clisp.org>
* gettext-0.13 released.
2003-11-28 Bruno Haible <bruno@clisp.org>
* xgettext.c (set_format_flags_from_context): Add casts, to make it
compile in C++ mode.
2003-11-22 Bruno Haible <bruno@clisp.org>
* x-c.c (phase4_getc): Skip leading whitespace in C++ style comments
as well.
* x-sh.c (read_word): Skip leading whitespace in comments.
* x-lisp.c (read_object): Skip leading whitespace in single-line
comments as well.
* x-elisp.c (read_object): Skip leading whitespace in comments.
* x-librep.c (read_object): Skip leading whitespace in single-line
comments as well.
* x-java.c (phase4_getc): Skip leading whitespace in C++ style comments
as well.
* x-awk.c (phase2_getc): Skip leading whitespace in comments.
* x-ycp.c (phase2_getc): Skip leading whitespace in single-line
comments as well.
* x-tcl.c (read_command): Skip leading whitespace in comments.
2003-11-24 Bruno Haible <bruno@clisp.org>
* format-lisp.c (check_params): Use ngettext for one of the messages.
Reported by Rafał Maszkowski <rzm@icm.edu.pl>.
2003-11-15 Bruno Haible <bruno@clisp.org>
* Makefile.am (AM_CPPFLAGS): Renamed from INCLUDES.
2003-11-09 Bruno Haible <bruno@clisp.org>
* msginit.c (main): Drop the blank line in --no-translator mode.
2003-11-07 Bruno Haible <bruno@clisp.org>
* xgettext.c (remember_a_message): Omit the programmer comments of a
duplicated msgid only if they are redundant.
Reported by Christian Neumair <chris@gnome-de.org>.
2003-11-05 Bruno Haible <bruno@clisp.org>
* user-email.sh.in: Renamed from user-email.in. Internationalize, use
localedir and gettext.
* FILES: Update.
2003-10-23 Bruno Haible <bruno@clisp.org>
* read-stringtable.c (read_string, stringtable_parse): Cast
gram_pos.line_number to 'unsigned long'.
* x-sh.c (read_word): Case line_number to 'unsigned long'.
2003-10-21 Bruno Haible <bruno@clisp.org>
* message.h (message_list_msgids_changed): New declaration.
* message.c (message_list_msgids_changed): New function.
* msgl-iconv.c (iconv_message_list): Update the message list's hash
table if it happens to contain non-ASCII msgids.
2003-10-19 Bruno Haible <bruno@clisp.org>
* message.h (format_type): New enum value 'format_qt'.
(NFORMATS): Increment.
* message.c (format_language): Add format_qt entry.
(format_language_pretty): Likewise.
* format.h (formatstring_qt): New declaration.
* format-qt.c: New file.
* format.c (formatstring_parsers): Add formatstring_qt.
* xgettext.c (recognize_format_qt): New variable.
(long_options): Add option "--qt".
(main): Handle --qt option. Determine the extractor only after option
processing is complete.
(usage): Document --qt option.
(xgettext_record_flag): Handle format_qt.
(language_to_extractor): For C++, return a different extractor when
--qt was specified.
* write-qt.h: New file.
* write-qt.c: New file.
* msgfmt.c: Include write-qt.h.
(qt_mode): New variable.
(long_options): Add option "--qt".
(main): Handle --qt option. More checks for contradicting options.
Call msgdomain_write_qt.
(usage): Mention Qt mode.
(format_directive_domain): Ignore domain directive if in Qt mode.
* Makefile.am (noinst_HEADERS): Add write-qt.h.
(FORMAT_SOURCE): Add format-qt.c.
(msgfmt_SOURCES): Add write-qt.c.
* Makefile.msvc (OBJECTS): Add format-qt.obj.
(msgfmt_OBJECTS): Add write-qt.obj.
(format-qt.obj, write-qt.obj): New rules.
* Makefile.vms (OBJECTS): Add format-qt.obj.
(msgfmt_OBJECTS): Add write-qt.obj.
(format-qt.obj, write-qt.obj): New rules.
* FILES: Update.
2003-10-14 Bruno Haible <bruno@clisp.org>
Fix compilation errors in C++ mode.
* msgfilter.c (process_string): Cast the xrealloc expression.
* xgettext.c (language_to_extractor, extension_to_language): Move the
typedef after the struct definition.
2003-10-13 Bruno Haible <bruno@clisp.org>
Support CR/LF line terminators in C sources even on Unix.
* x-c.c (phase0_getc, phase0_ungetc): New functions.
(phase1_getc): Use them instead of calling getc/ungetc directly.
Reported by Christoph Thielecke <u15119@hs-harz.de>.
2003-10-13 Bruno Haible <bruno@clisp.org>
Support and recognize Objective C specific format strings.
* message.h (enum format_type): New item format_objc.
(NFORMATS): Increment.
* message.c (format_language): Add an entry for format_objc.
(format_language_pretty): Likewise.
* format.h (formatstring_objc): New declaration.
* format-c.c (enum format_arg_type): New item FAT_OBJC_OBJECT.
(format_parse): Add objc_extensions argument. Handle %@ in ObjC mode.
(format_c_parse, format_objc_parse): New functions.
(formatstring_c): Use format_c_parse instead of format_parse.
(formatstring_objc): New variable.
(get_c99_format_directives): Update.
* format.c (formatstring_parsers): Add an entry for format_objc.
* write-mo.c (write_table): Look for system dependent strings also in
ObjectiveC format strings.
* x-c.h (SCANNERS_C): Use separate flag_table for ObjectiveC.
(x_objc_keyword, init_flag_table_objc): New declarations.
(x_c_any_keywords): Remove declaration.
* x-c.c (c_keywords): Renamed from keywords.
(objc_keywords): New variable.
(add_keyword): Renamed from x_c_keyword. Add keywords table argument.
(x_c_keyword, x_objc_keyword): New functions.
(x_c_any_keywords): Remove function.
(init_keywords): Also initialize ObjectiveC keyword table.
(init_flag_table_objc): New function.
(enum token_type_ty): New item token_type_colon.
(phase5_get): Recognize colon.
(enum xgettext_token_type_ty): New item xgettext_token_type_colon.
(x_c_lex): Use keywords table depending on objc_extensions. Handle
colon.
(extract_parenthesized): Change the context_iter and inner_context
after a keyword/symbol followed by a colon was seen.
* xgettext.c (flag_table_objc): New variable.
(main): Invoke init_flag_table_objc, x_objc_keyword. Watch out for
keywords arguments, instead of calling x_c_any_keywords().
(flag_context_list_table_insert): New function, extracted from
xgettext_record_flag.
(xgettext_record_flag): Call it. For format_c, insert the flags also
in the flag_table_objc. Handle format_objc.
(remember_a_message): Don't add a heuristic c-format flag to an entry
that already carries objc-format.
(remember_a_message_plural): Likewise.
2003-10-18 Bruno Haible <bruno@clisp.org>
Support for GNUstep .strings format.
* read-stringtable.h: New file.
* read-stringtable.c: New file.
* read-po-abstract.h (enum input_syntax_ty): New item
syntax_stringtable.
(po_callback_comment_dispatcher): Renamed from po_callback_comment.
(po_callback_comment, po_callback_comment_special): New declarations.
* read-po-abstract.c: Include read-stringtable.h.
(po_scan): Add support for syntax_stringtable.
(po_callback_comment_dispatcher): Renamed from po_callback_comment.
(po_callback_comment, po_callback_comment_dot): New functions.
(po_callback_comment_special): New function.
* read-po.c (read_po): Set mdlp->encoding for syntax_stringtable too.
* po-gram-gen.y: Update po_callback_comment_dispatcher call.
* read-properties.c (properties_parse): Likewise.
* write-stringtable.h: New file.
* write-stringtable.c: New file.
* write-po.h (make_format_description_string, significant_format_p):
New declarations.
(message_print_syntax_stringtable): New declaration.
* write-po.c: Include write-stringtable.h.
(make_format_description_string, significant_format_p): Make
non-static.
(use_syntax_stringtable): New variable.
(message_print_syntax_stringtable): New function.
(msgdomain_list_print): Add check for plural forms for
syntax_stringtable too. Add support for writing the .strings format.
* msgattrib.c (long_options): Add --stringtable-input/output.
(main): Handle them.
(usage): Document options --stringtable-input/output.
* msgcat.c (long_options): Add --stringtable-input/output.
(main): Handle them. If option --stringtable-output is used, convert to
UTF-8 and ignore the to_code.
(usage): Document options --stringtable-input/output.
* msgcmp.c (long_options): Add --stringtable-input.
(main): Handle it.
(usage): Document option --stringtable-input.
* msgcomm.c (long_options): Add --stringtable-input/output.
(main): Handle them.
(usage): Document options --stringtable-input/output.
* msgconv.c (long_options): Add --stringtable-input/output.
(main): Handle them. If option --stringtable-output is used, ignore the
to_code.
(usage): Document options --stringtable-input/output.
* msgen.c (long_options): Add --stringtable-input/output.
(main): Handle them.
(usage): Document options --stringtable-input/output.
* msgexec.c: Include limits.h.
(long_options): Add --stringtable-input.
(main): Handle it.
(usage): Document option --stringtable-input.
* msgfilter.c (long_options): Add --stringtable-input/output.
(main): Handle them.
(usage): Document options --stringtable-input/output.
* msgfmt.c (long_options): Add --stringtable-input.
(main): Handle it.
(usage): Document option --stringtable-input.
* msggrep.c (long_options): Add --stringtable-input/output.
(main): Handle them.
(usage): Document options --stringtable-input/output.
* msginit.c (long_options): Add --stringtable-input/output.
(main): Handle them.
(usage): Document options --stringtable-input/output.
* msgmerge.c (long_options): Add --stringtable-input/output.
(main): Handle them. In update mode, --stringtable-input implies
--stringtable-output.
(usage): Document options --stringtable-input/output.
* msgunfmt.c (long_options): Add --stringtable-output.
(main): Handle it.
(usage): Document option --stringtable-output.
* msguniq.c (long_options): Add --stringtable-input/output.
(main): Handle them.
(usage): Document options --stringtable-input/output.
* x-stringtable.h: New file.
* x-po.c: Include x-stringtable.h.
(extract_stringtable): New function.
* xgettext.c: Include x-stringtable.h.
(long_options): Add --stringtable-output.
(main): Handle it.
(usage): Document options -L NXStringTable and --stringtable-output.
(finalize_header): If --stringtable-output was given, set the charset.
(language_to_extractor): Add support for .strings format.
(extension_to_language): Likewise.
* Makefile.am (noinst_HEADERS): Add read-stringtable.h,
write-stringtable.h, x-stringtable.h.
(COMMON_SOURCE): Add read-stringtable.c.
(libgettextsrc_la_SOURCES): Add write-stringtable.c.
* Makefile.msvc (OBJECTS): Add read-stringtable.obj,
write-stringtable.obj.
(read-stringtable.obj, write-stringtable.obj): New rules.
* Makefile.vms (OBJECTS): Add read-stringtable.obj,
write-stringtable.obj.
(read-stringtable.obj, write-stringtable.obj): New rules.
* FILES: Update.
2003-10-21 Bruno Haible <bruno@clisp.org>
* hostname.c (xgethostname): Add support for native Woe32 API.
2003-10-21 Bruno Haible <bruno@clisp.org>
* message.c (message_list_search): Avoid casting a pointer to a local
variable; it violated strict aliasing.
2003-10-21 Bruno Haible <bruno@clisp.org>
* write-java.c (mkdir): Redefine on mingw.
2003-10-12 Bruno Haible <bruno@clisp.org>
Improved ObjectiveC support.
* x-c.h (extract_objc): New declaration.
(SCANNERS_C): For ObjectiveC, use extract_objc.
* x-c.c (objc_extensions): New variable.
(enum token_type_ty): New item token_type_objc_special.
(phase5_get): Recognize '@' for ObjectiveC.
(phase8b_get, phase8b_unget): New functions. Handle
token_type_white_space and token_type_eoln here instead of in x_c_lex.
(phase8c_get, phase8c_unget): New functions.
(phase8_get): Rely on phase8c, not phase8a. No more need to care about
token_type_white_space and token_type_eoln.
(x_c_lex): Drop handling of token_type_white_space and token_type_eoln.
(extract_whole_file): Renamed from extract_c.
(extract_c, extract_objc): New functions.
2003-10-20 Bruno Haible <bruno@clisp.org>
* x-java.c (phase3_getc): Fix typo: Use phase2_ungetc, not phase2_getc.
2003-10-20 Bruno Haible <bruno@clisp.org>
Portability to AIX with cc.
* xgettext.h (struct flag_context_ty): Define the bitfields of type
'unsigned int'.
2003-10-20 Bruno Haible <bruno@clisp.org>
Portability to Solaris with cc.
* x-java.c (string_buffer_append): Avoid aggregate initializer
containing non-constant expressions.
* xgettext.c (flag_context_list_iterator): Likewise.
(language_to_extractor): Likewise.
2003-10-11 Bruno Haible <bruno@clisp.org>
* xgettext.c (main): Drop suffix ".in" from input file name, if
present, before looking at the file extension.
2003-10-09 Bruno Haible <bruno@clisp.org>
* format-awk.c: Include xalloc.h instead of xmalloc.h.
* format-c.c: Likewise.
* format-elisp.c: Likewise.
* format-gcc-internal.c: Likewise.
* format-java.c: Likewise.
* format-librep.c: Likewise.
* format-lisp.c: Likewise.
* format-pascal.c: Likewise.
* format-perl.c: Likewise.
* format-perl-brace.c: Likewise.
* format-php.c: Likewise.
* format-python.c: Likewise.
* format-sh.c: Likewise.
* format-tcl.c: Likewise.
* format-ycp.c: Likewise.
* gettext-po.c: Likewise.
* hostname.c: Likewise.
* message.c: Likewise.
* msgexec.c: Likewise.
* msgfilter.c: Likewise.
* msgfmt.c: Likewise.
* msggrep.c: Likewise.
* msginit.c: Likewise.
* msgl-cat.c: Likewise.
* msgl-english.c: Likewise.
* msgl-iconv.c: Likewise.
* msgmerge.c: Likewise.
* open-po.c: Likewise.
* po-gram-gen.y: Likewise.
* po-hash-gen.y: Likewise.
* po-lex.c: Likewise.
* read-mo.c: Likewise.
* read-po-abstract.c: Likewise.
* read-po.c: Likewise.
* read-properties.c: Likewise.
* str-list.c: Likewise.
* write-java.c: Likewise.
* write-mo.c: Likewise.
* write-po.c: Likewise.
* write-properties.c: Likewise.
* write-tcl.c: Likewise.
* x-awk.c: Likewise.
* x-c.c: Likewise.
* x-elisp.c: Likewise.
* x-glade.c: Likewise.
* x-java.c: Likewise.
* x-librep.c: Likewise.
* x-lisp.c: Likewise.
* x-perl.c: Likewise.
* x-php.c: Likewise.
* x-po.c: Likewise.
* x-python.c: Likewise.
* x-rst.c: Likewise.
* x-sh.c: Likewise.
* x-smalltalk.c: Likewise.
* x-tcl.c: Likewise.
* x-ycp.c: Likewise.
* xgettext.c: Likewise.
2003-10-07 Bruno Haible <bruno@clisp.org>
More reliable subprocess cleanup.
* msgexec.c (process_string): Pass slave_process = true to
create_pipe_out() and wait_subprocess().
* msgfilter.c (process_string): Pass slave_process = true to
create_pipe_bidi() and wait_subprocess().
* msggrep.c (is_string_selected): Pass slave_process = true to
create_pipe_out() and wait_subprocess().
* msginit.c (project_id, project_id_version, get_user_email,
language_team_address): Pass slave_process = true to create_pipe_in()
and wait_subprocess().
* read-java.c (execute_and_read_po_output): Likewise.
* read-tcl.c (msgdomain_read_tcl): Likewise.
* urlget.c (execute_it, fetch): Pass slave_process = true to execute().
2003-10-05 Bruno Haible <bruno@clisp.org>
* write-java.c: Include fatal-signal.h, not signal.h.
(uninstall_handlers): Remove function.
(cleanup): Remove signal argument. Don't execute the signal's default
action; leave that to the caller.
(install_handlers, init_signal_set, block, unblock): Remove functions.
(msgdomain_write_java): Invoke at_fatal_signal instead of
install_handlers/uninstall_handlers. Invoke [un]block_fatal_signals
instead of [un]block.
2003-10-05 Bruno Haible <bruno@clisp.org>
* xgettext.c (substring_match): Remove variable.
(long_options): Remove --keyword-substring option.
(main): Remove handling of --keyword-substring option.
2003-10-05 Bruno Haible <bruno@clisp.org>
* message.h (enum is_format): New item yes_according_to_context.
* message.c (possible_format_p): Handle also yes_according_to_context.
* write-po.c (make_format_description_string): Likewise.
* xgettext.h (struct flag_context_ty): New type.
(null_context, passthrough_context): New declarations.
(inherited_context): New declaration.
(struct flag_context_list_ty): New type.
(struct flag_context_list_iterator_ty): New type.
(null_context_list_iterator, passthrough_context_list_iterator): New
declarations.
(flag_context_list_iterator): New declaration.
(flag_context_list_iterator_advance): New declaration.
(flag_context_list_table_ty): New type.
(flag_context_list_table_lookup): New declaration.
(xgettext_record_flag): New declaration.
(remember_a_message, remember_a_message_plural): Add context argument.
* xgettext.c: Include alloca.h.
(flag_table_c, flag_table_gcc_internal, flag_table_sh,
flag_table_python, flag_table_lisp, flag_table_elisp,
flag_table_librep, flag_table_java, flag_table_awk, flag_table_ycp,
flag_table_tcl, flag_table_perl, flag_table_php): New variables.
(long_options): Add option --flag.
(extractor_func): Add argument flag_table.
(struct extractor_ty): New type.
(main): Use type 'extractor_ty' instead of 'extractor_func'.
Invoke init_flag_table_c(), init_flag_table_gcc_internal(),
init_flag_table_sh(), init_flag_table_python(), init_flag_table_lisp(),
init_flag_table_elisp(), init_flag_table_librep(),
init_flag_table_java(), init_flag_table_awk(), init_flag_table_ycp(),
init_flag_table_tcl(), init_flag_table_perl(), init_flag_table_php().
Implement option --flag.
(usage): Rename a section to "Language specific options". Document
the languages to which --extract-all, --keyword, --trigraphs are
applicable. Document option --flag.
(null_context): New variable.
(passthrough_context): New variable.
(inherited_context): New function.
(null_context_list_iterator): New variable.
(passthrough_context_circular_list, passthrough_context_list_iterator):
New variables.
(flag_context_list_iterator): New function.
(flag_context_list_iterator_advance): New function.
(flag_context_list_table_lookup): New function.
(xgettext_record_flag): New function.
(extract_from_file): Change argument type to 'extractor_ty' instead of
'extractor_func'. Set current_formatstring_parser{1,2} before invoking
the extractor.
(set_format_flags_from_context): New function.
(remember_a_message): Add context argument. Set some *-format flag if
the context specifies it.
(remember_a_message_plural): Likewise.
(language_to_extractor): Change return type to 'extractor_ty' instead
of 'extractor_func'.
* x-awk.h (SCANNERS_AWK): Refer to flag_table_awk.
(extract_awk): Add argument flag_table.
(init_flag_table_awk): New declaration.
* x-awk.c (init_flag_table_awk): New function.
(enum token_type_ty): New enum item token_type_semicolon.
(x_awk_lex): Recognize semicolon.
(flag_context_list_table): New variable.
(extract_parenthesized): Add arguments outer_context, context_iter.
Implement context handling depending on symbol before '('. Also
recognize argument lists that start without '(', but only up to the
next semicolon.
(extract_awk): Add argument flag_table. Initialize
flag_context_list_table.
* x-c.h (SCANNERS_C): Refer to flag_table_c, flag_table_gcc_internal.
(extract_c): Add argument flag_table.
(init_flag_table_c): New declaration.
(init_flag_table_gcc_internal): New declaration.
* x-c.c (init_flag_table_c): New function.
(init_flag_table_gcc_internal): New function.
(enum xgettext_token_type_ty): New item xgettext_token_type_other.
(x_c_lex): For token_type_name, put the string into the resulting
token instead of freeing it. Return token type
xgettext_token_type_other instead of xgettext_token_type_symbol in
some cases.
(flag_context_list_table): New variable.
(extract_parenthesized): Add arguments outer_context, context_iter.
Implement context handling depending on symbol before '('.
(extract_c): Add argument flag_table. Initialize
flag_context_list_table.
* x-elisp.h (SCANNERS_ELISP): Refer to flag_table_elisp.
(extract_elisp): Add argument flag_table.
(init_flag_table_elisp): New declaration.
* x-elisp.c (init_flag_table_elisp): New function.
(flag_context_list_table): New variable.
(read_object): Add argument outer_context. Implement context handling
depending on first symbol after '('.
(extract_elisp): Add argument flag_table. Initialize
flag_context_list_table.
* x-glade.h (SCANNERS_GLADE): Update.
(extract_glade): Add argument flag_table.
* x-glade.c (start_element_handler, end_element_handler): Pass null
context to remember_a_message.
(extract_glade): Add argument flag_table.
* x-java.h (SCANNERS_JAVA): Refer to flag_table_java.
(extract_java): Add argument flag_table.
(init_flag_table_java): New declaration.
* x-java.c (init_flag_table_java): New function.
(flag_context_list_table): New variable.
(extract_parenthesized): Add arguments outer_context, context_iter.
Implement context handling depending on symbol before '('.
(extract_java): Add argument flag_table. Initialize
flag_context_list_table.
* x-librep.h (SCANNERS_ELISP): Refer to flag_table_librep.
(extract_librep): Add argument flag_table.
(init_flag_table_librep): New declaration.
* x-librep.c (init_flag_table_librep): New function.
(flag_context_list_table): New variable.
(read_object): Add argument outer_context. Implement context handling
depending on first symbol after '('.
(extract_librep): Add argument flag_table. Initialize
flag_context_list_table.
* x-lisp.h (SCANNERS_LISP): Refer to flag_table_lisp.
(extract_lisp): Add argument flag_table.
(init_flag_table_lisp): New declaration.
* x-lisp.c (init_flag_table_lisp): New function.
(flag_context_list_table): New variable.
(read_object): Add argument outer_context. Implement context handling
depending on first symbol after '('.
(extract_lisp): Add argument flag_table. Initialize
flag_context_list_table.
* x-perl.h (SCANNERS_PERL): Refer to flag_table_perl.
(extract_perl): Add argument flag_table.
(init_flag_table_perl): New declaration.
* x-perl.c (init_flag_table_java): New function.
(flag_context_list_table): New variable.
(extract_variable): Update. Implement context handling depending on
symbol before '{'...'}'.
(interpolate_keywords): Implement context handling depending on symbol
before '->' or '{'...'}'.
(extract_balanced): Add arguments outer_context, context_iter.
Implement context handling depending on symbol before '('. Also
recognize argument lists that start without '('.
(extract_perl): Add argument flag_table. Initialize
flag_context_list_table.
* x-php.h (SCANNERS_PHP): Refer to flag_table_php.
(extract_php): Add argument flag_table.
(init_flag_table_php): New declaration.
* x-php.c (init_flag_table_php): New function.
(flag_context_list_table): New variable.
(extract_parenthesized): Add arguments outer_context, context_iter.
Implement context handling depending on symbol before '('.
(extract_php): Add argument flag_table. Initialize
flag_context_list_table.
* x-po.h (SCANNERS_PO): Update.
(extract_po): Add argument flag_table.
* x-properties.h (SCANNERS_PROPERTIES): Update.
(extract_properties): Add argument flag_table.
* x-po.c (extract_po): Add argument flag_table.
(extract_properties): Add argument flag_table.
* x-python.h (SCANNERS_PYTHON): Refer to flag_table_python.
(extract_python): Add argument flag_table.
(init_flag_table_python): New declaration.
* x-python.c (init_flag_table_python): New function.
(flag_context_list_table): New variable.
(extract_parenthesized): Add arguments outer_context, context_iter.
Implement context handling depending on symbol before '('.
(extract_python): Add argument flag_table. Initialize
flag_context_list_table.
* x-rst.h (SCANNERS_RST): Update.
(extract_rst): Add argument flag_table.
* x-rst.c (extract_rst): Add argument flag_table.
* x-sh.h (SCANNERS_SH): Refer to flag_table_sh.
(extract_sh): Add argument flag_table.
(init_flag_table_sh): New declaration.
* x-sh.c (init_flag_table_sh): New function.
(flag_context_list_table): New variable.
(read_word): Add context argument.
(read_command): Add outer_context argument. Implement context handling
depending on first symbol of command.
(read_command_list): Add outer_context argument.
(extract_sh): Add argument flag_table. Initialize
flag_context_list_table.
* x-smalltalk.h (SCANNERS_SMALLTALK): Update.
(extract_smalltalk): Add argument flag_table.
* x-smalltalk.c (extract_smalltalk): Add argument flag_table.
* x-tcl.h (SCANNERS_TCL): Refer to flag_table_tcl.
(extract_tcl): Add argument flag_table.
(init_flag_table_tcl): New declaration.
* x-tcl.c (init_flag_table_tcl): New function.
(flag_context_list_table): New variable.
(accumulate_word): Add context argument.
(read_word): Add context argument.
(read_command): Add outer_context argument. Implement context handling
depending on first symbol of command.
(read_command_list): Add outer_context argument.
(extract_tcl): Add argument flag_table. Initialize
flag_context_list_table.
* x-ycp.h (SCANNERS_YCP): Refer to flag_table_ycp.
(extract_ycp): Add argument flag_table.
(init_flag_table_ycp): New declaration.
* x-ycp.c (init_flag_table_ycp): New function.
(flag_context_list_table): New variable.
(extract_parenthesized): New function, split off from extract_ycp.
Implement context handling depending on symbol before '('.
(extract_ycp): Add argument flag_table. Initialize
flag_context_list_table. Call extract_parenthesized to do the work.
* po-lex.c (mbfile_getc, control_sequence): Remove explicit marking of
strings as c-format, now done by xgettext.
2003-09-23 Bruno Haible <bruno@clisp.org>
* x-awk.c (extract_parenthesized): Remove optimization of the
extract_all case.
* x-c.c (extract_parenthesized): Likewise.
* x-elisp.c (read_object): Likewise.
* x-librep.c (read_object): Likewise.
* x-lisp.c (read_object): Likewise.
* x-perl.c (x_perl_prelex, extract_balanced): Likewise.
* x-php.c (extract_parenthesized): Likewise.
* x-python.c (extract_parenthesized): Likewise.
* x-sh.c (read_command): Likewise.
2003-10-08 Bruno Haible <bruno@clisp.org>
* msgmerge.c (main): Make option -N work.
Reported by Liu Garfield <jackliu9999@hotmail.com>.
2003-10-04 Bruno Haible <bruno@clisp.org>
New Java backend.
* x-java.c: New file.
* x-java.l: Remove file.
* Makefile.am (xgettext_SOURCES): Add x-java.c, remove x-java.l.
(x-java.c): Remove rule.
* FILES: Update.
2003-09-22 Bruno Haible <bruno@clisp.org>
* x-glade.c (start_element_handler): Implement extract_all behaviour.
2003-10-04 Bruno Haible <bruno@clisp.org>
* x-glade.c (do_extract_glade): Initialize stack_depth.
* x-perl.c (extract_perl): Initialize linesize and linepos.
* x-python.c (phase2_getc): Set last_comment_line.
(phase5_get): Set last_non_comment_line.
2003-10-04 Bruno Haible <bruno@clisp.org>
* x-glade.c: Don't include msgl-ascii.h and msgl-iconv.h.
* x-python.c: Likewise.
* x-tcl.c: Likewise.
2003-10-06 Guido Flohr <guido@imperia.net>
Bruno Haible <bruno@clisp.org>
* x-perl.c (enum symbol_type_ty): New enum.
(struct token_ty): Rename field string_type to sub_type and change its
type to 'int'.
(extract_quotelike_pass3, interpolate_keywords): Update.
(x_perl_prelex): Set sub_type also for symbol tokens.
(x_perl_lex): Special handling of prototype argument lists.
Reported by Crispin Flowerday <cflowerday@zeus.com>.
2003-09-22 Bruno Haible <bruno@clisp.org>
* x-sh.c (read_word): Warn about $"...".
2003-09-18 Bruno Haible <bruno@clisp.org>
* gettext-po.h (po_file_domain_header, po_header_field,
po_message_is_obsolete, po_message_is_fuzzy, po_message_is_format): New
declarations.
* gettext-po.c (po_file_domain_header, po_header_field,
po_message_is_obsolete, po_message_is_fuzzy, po_message_is_format): New
functions.
* Makefile.am (LTV_CURRENT, LTV_REVISION, LTV_AGE): Bump to 1:0:1.
2003-09-14 Bruno Haible <bruno@clisp.org>
* plural-count.c: Include plural-count.h.
* x-po.c: Include x-properties.h.
* x-java.l (append_strings): Change argument type to 'const char *'.
2003-09-14 Bruno Haible <bruno@clisp.org>
* msgfmt.c (check_plural_eval): Mark some strings as c-format.
(msgfmt_add_message): Make static.
* po-lex.c (mbfile_getc, control_sequence): Mark some strings as
c-format.
2003-09-18 Bruno Haible <bruno@clisp.org>
* FILES: Update.
2003-09-14 Bruno Haible <bruno@clisp.org>
More reliable checking for read errors.
* po-lex.c (mbfile_getc): Diagnose read errors also in the middle of
multibyte characters.
(lex_getc): Diagnose read errors also right after backslash.
* x-rst.c (extract_rst): Diagnose read errors also inside ConstName
and immediately after #.
2003-09-14 Bruno Haible <bruno@clisp.org>
* write-mo.c: Include fwriterror.h.
(msgdomain_write_mo): Use fwriteerror, to get right errno value in
error message about write error.
* write-po.c: Include fwriterror.h.
(msgdomain_list_print): Use fwriteerror, to get right errno value in
error message about write error.
* write-java.c: Include fwriterror.h.
(msgdomain_write_java): Use fwriteerror, to get right errno value in
error message about write error.
* write-tcl.c: Include fwriterror.h.
(msgdomain_write_tcl): Use fwriteerror, to get right errno value in
error message about write error.
2003-09-18 Bruno Haible <bruno@clisp.org>
* xgettext.c (from_current_source_encoding): Use multiline_error,
for a prettier error message.
* x-perl.c (extract_quotelike_pass1): Store counter_delim instead of
EOF as delimiter, to avoid error during from_current_source_encoding.
Reported by Crispin Flowerday <cflowerday@zeus.com>.
2003-09-13 Bruno Haible <bruno@clisp.org>
* format-sh.c (INVALID_SHELL_SYNTAX,
INVALID_CONTEXT_DEPENDENT_VARIABLE): New macros.
(format_parse): Reject constructs like ${variable-default} and $?.
2003-09-13 Bruno Haible <bruno@clisp.org>
Fix behaviour of "<program> --help > /dev/full".
* hostname.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msgattrib.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msgcat.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msgcmp.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msgcomm.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msgconv.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msgen.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msgexec.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msgfilter.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msgfmt.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msggrep.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msginit.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msgmerge.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msgunfmt.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* msguniq.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* urlget.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* xgettext.c: Include closeout.h.
(main): Register close_stdout for execution at program exit.
* write-po.c (msgdomain_list_print): Don't fclose (stdout) here.
2003-09-11 Bruno Haible <bruno@clisp.org>
* po-lex.c (mbfile_getc): Handle unexpected return value of
u8_mbtouc(). Reported by Jochen Hein <jochen@jochen.org>.
2003-09-09 Bruno Haible <bruno@clisp.org>
* read-properties.c (phase4_getuc): Cast line_number to 'unsigned long'
before outputting it.
2003-09-09 Bruno Haible <bruno@clisp.org>
* po-lex.c: Test HAVE_DECL_GETC_UNLOCKED instead of HAVE_GETC_UNLOCKED.
* write-po.c: Test HAVE_DECL_PUTC_UNLOCKED instead of
HAVE_PUTC_UNLOCKED.
2003-09-09 Guido Flohr <guido@imperia.net>
* x-perl.c (extract_quotelike_pass3): Change \l handling to no longer
eat up non-uppercase characters; likewise for \u. Also make \l and \u
work on characters written using hex or octal escape sequence. Fix \Q
handling. With option --extract-all, avoid "invalid variable
interpolation" warnings.
(x_perl_prelex): With option --extract-all, keep variables inside
double-quoted strings untouched.
2003-09-03 Bruno Haible <bruno@clisp.org>
* x-sh.h: New file.
* x-sh.c: New file.
* xgettext.c: Include x-sh.h.
(main): Call x_sh_extract_all, x_sh_keyword.
(usage): Mention Shell language.
(language_to_extractor): Add Shell rule.
(extension_to_language): Add Shell rule.
* Makefile.am (noinst_HEADERS): Add x-sh.h.
(xgettext_SOURCES): Add x-sh.c.
* Makefile.msvc (xgettext_OBJECTS): Add x-sh.obj.
(x-sh.obj): New rule.
* Makefile.vms (xgettext_OBJECTS): Add x-sh.obj.
(x-sh.obj): New rule.
2003-08-31 Bruno Haible <bruno@clisp.org>
* format-sh.c: New file.
* message.h (format_sh): New enum value.
(NFORMATS): Increment.
* format.h (formatstring_sh): New declaration.
* format.c (formatstring_parsers): Add entry for sh.
* message.c (format_language, format_language_pretty): Likewise.
* Makefile.am (FORMAT_SOURCE): Add format-sh.c.
* Makefile.msvc (OBJECTS): Add format-sh.obj.
(format-sh.obj): New rule.
* Makefile.vms (OBJECTS): Add format-sh.obj.
(format-sh.obj): New rule.
2003-08-31 Bruno Haible <bruno@clisp.org>
* format-gcc-internal.c (isdigit): Remove unused macro.
* format-perl-brace.c (isdigit): Likewise.
2003-09-01 Guido Flohr <guido@imperia.net>
* x-perl.c (extract_balanced): Access the global last_token.
Initialize last_token and prefer_division_over_regexp here.
(extract_perl): Not here.
2003-08-29 Bruno Haible <bruno@clisp.org>
* x-perl.c: Include getline.h.
2003-08-24 Bruno Haible <bruno@clisp.org>
* Makefile.msvc (format.obj, msgmerge.obj, xgettext.obj, msgattrib.obj,
msgcat.obj, msgcomm.obj, msgconv.obj, msgen.obj, msgfilter.obj,
msggrep.obj, msguniq.obj): Compile these in C++ mode. This works around
the "non-constant initializer" error that we get for addresses of
variables in DLLs in C mode.
2003-08-24 Bruno Haible <bruno@clisp.org>
* msgfilter.c (process_message): Cast xrealloc() result.
2003-08-24 Bruno Haible <bruno@clisp.org>
* msgfilter.c: On Windows, include <io.h> instead of <unistd.h>.
* msggrep.c: Likewise.
2003-08-24 Bruno Haible <bruno@clisp.org>
* plural-count.h: New file.
* plural-count.c: New file, extracted from msgmerge.c.
* msgmerge.c: Include plural-count.h instead of plural-exp.h.
(match_domain): Use function get_plural_count().
* Makefile.am (noinst_HEADERS): Add plural-count.h.
(msgmerge_SOURCES): Add plural-count.c.
* Makefile.msvc (msgmerge_OBJECTS): Add plural-count.obj.
(plural-count.obj): New rule.
* Makefile.vms (msgmerge_OBJECTS): Add plural-count.obj.
(plural-count.obj): New rule.
2003-08-24 Bruno Haible <bruno@clisp.org>
Support for building DLLs on Windows.
* format.h (formatstring_c, formatstring_python, formatstring_lisp,
formatstring_elisp, formatstring_librep, formatstring_smalltalk,
formatstring_java, formatstring_awk, formatstring_pascal,
formatstring_ycp, formatstring_tcl, formatstring_perl,
formatstring_perl_brace, formatstring_php, formatstring_gcc_internal,
formatstring_parsers): Add DLL_VARIABLE attribute.
* message.h (format_language, format_language_pretty): Likewise.
* msgl-cat.h (more_than, less_than, use_first, msgcomm_mode,
omit_header): Likewise.
* plural-table.h (plural_table, plural_table_size): Likewise.
* po-charset.h (po_charset_ascii, po_charset_utf8, po_lex_charset,
po_lex_iconv, po_lex_weird_cjk): Likewise.
* po-lex.h (gram_pos, gram_pos_column, gram_max_allowed_errors,
pass_obsolete_entries): Likewise.
* read-po.h (line_comment, allow_duplicates, input_syntax): Likewise.
* write-mo.h (alignment, no_hash_table): Likewise.
* Makefile.am (po-gram-gen2.h): Likewise.
2003-08-24 Bruno Haible <bruno@clisp.org>
* Makefile.msvc (gettext-po.obj, gettextpo.lib, gettextpo.res): New
rules.
(all): Depend on gettextpo.lib.
(install, installdirs, uninstall): Install/uninstall gettext-po.h,
gettextpo.dll and gettextpo.lib.
* Makefile.vms (gettext-po.obj, gettextpo.olb): New rules.
(all): Depend on gettextpo.olb.
(install, installdirs, uninstall): Install/uninstall gettext-po.h,
gettextpo.olb.
2003-08-24 Bruno Haible <bruno@clisp.org>
* dir-list.h: Make this file includable in C++ mode: add extern "C".
* file-list.h: Likewise.
* format.h: Likewise.
* message.h: Likewise.
* msgl-ascii.h: Likewise.
* msgl-cat.h: Likewise.
* msgl-charset.h: Likewise.
* msgl-english.h: Likewise.
* msgl-equal.h: Likewise.
* msgl-iconv.h: Likewise.
* open-po.h: Likewise.
* po-charset.h: Likewise.
* po-lex.h: Likewise.
* po-time.h: Likewise.
* read-po-abstract.h: Likewise.
* str-list.h: Likewise.
* write-po.h: Likewise.
* xgettext.h: Likewise.
* read-po.h: Likewise.
(this): Redefine to a different symbol.
* xgettext.c: Add extern "C" around all "x-*.h" includes.
2003-08-22 Bruno Haible <bruno@clisp.org>
* format-awk.c: Include error-progname.h instead of progname.h.
* format-c.c: Likewise.
* format-elisp.c: Likewise.
* format-gcc-internal.c: Likewise.
* format-java.c: Likewise.
* format-librep.c: Likewise.
* format-lisp.c: Likewise.
* format-pascal.c: Likewise.
* format-perl.c: Likewise.
* format-perl-brace.c: Likewise.
* format-php.c: Likewise.
* format-python.c: Likewise.
* format-tcl.c: Likewise.
* format-ycp.c: Likewise.
* po-lex.h: Likewise.
* read-properties.c: Likewise.
* write-po.c: Likewise.
* x-awk.c: Likewise.
* x-c.c: Likewise.
* x-perl.c: Likewise.
* x-python.c: Likewise.
* x-rst.c: Likewise.
* hostname.c: Include error-progname.h.
* msgattrib.c: Likewise.
* msgcat.c: Likewise.
* msgcmp.c: Likewise.
* msgcomm.c: Likewise.
* msgconv.c: Likewise.
* msgen.c: Likewise.
* msgexec.c: Likewise.
* msgfilter.c: Likewise.
* msgfmt.c: Likewise.
* msggrep.c: Likewise.
* msginit.c: Likewise.
* msgmerge.c: Likewise.
* msgunfmt.c: Likewise.
* msguniq.c: Likewise.
* urlget.c: Likewise.
* xgettext.c: Likewise.
* po-lex.c: Include error-progname.h and pos.h.
2003-08-15 Bruno Haible <bruno@clisp.org>
* msginit.c (catalogname_for_locale): Add entries for Aragonese,
Haitian, Sichuan Yi, Limburgish.
(englishname_of_language): Likewise.
2003-08-08 Bruno Haible <bruno@clisp.org>
* format-gcc-internal.c: New file.
* message.h (format_gcc_internal): New enum value.
(NFORMATS): Increment.
* format.h (formatstring_gcc_internal): New declaration.
* format.c (formatstring_parsers): Add entry for gcc_internal.
* message.c (format_language, format_language_pretty): Likewise.
* x-c.h (SCANNERS_C): Add an entry for GCC-source.
* xgettext.c (usage): Mention GCC-source language.
* Makefile.am (FORMAT_SOURCE): Add format-gcc-internal.c.
* Makefile.msvc (OBJECTS): Add format-gcc-internal.obj.
(format-gcc-internal.obj): New rule.
* Makefile.vms (OBJECTS): Add format-gcc-internal.obj.
(format-gcc-internal.obj): New rule.
2003-08-04 Bruno Haible <bruno@clisp.org>
* x-perl.c (extract_quotelike_pass3): Fix \x handling.
Reported by Guido Flohr.
2003-07-05 Bruno Haible <bruno@clisp.org>
* format-perl-brace.c: Renamed from format-perl-bracket.c. Recognize
braces instead of brackets.
* format.h (formatstring_perl_brace): Renamed from
formatstring_perl_bracket.
* format.c (formatstring_parsers): Add formatstring_perl_brace, remove
formatstring_perl_bracket.
* message.h (enum format_type): Add format_perl_brace, remove
format_perl_bracket.
* message.c (format_language, format_language_pretty): Update.
* x-perl.h (SCANNERS_PERL): Update.
* Makefile.am (FORMAT_SOURCE): Add format-perl-brace.c, remove
format-perl-bracket.c.
* Makefile.msvc (OBJECTS): Add format-perl-brace.obj, remove
format-perl-bracket.obj.
(format-perl-brace.obj): Renamed from format-perl-bracket.obj.
* Makefile.vms (OBJECTS): Add format-perl-brace.obj, remove
format-perl-bracket.obj.
(format-perl-brace.obj): Renamed from format-perl-bracket.obj.
2003-07-03 Bruno Haible <bruno@clisp.org>
Support for PHP >= 4.2.0.
* x-php.c (init_keywords): Add ngettext, dngettext, dcngettext to the
built-in keywords.
Reported by A. Sopicki <a.sopicki@gmx.de>.
2003-06-27 Bruno Haible <bruno@clisp.org>
* xgettext.h (from_current_source_encoding): New declaraction.
* xgettext.c (from_current_source_encoding): New function.
(CONVERT_STRING): Use it.
* x-perl.c: Include po-charset.h.
(get_here_document): Convert each line to UTF-8.
(phase2_getc): Convert each comment to UTF-8. Tell xgettext_comment_add
to not convert it.
(extract_quotelike_pass1_utf8): New function.
(extract_quotelike): Use extract_quotelike_pass1_utf8.
(extract_triple_quotelike): Likewise.
(extract_variable): Tell remember_a_message to not convert the string.
(interpolate_keywords): Likewise.
(extract_balanced): Tell remember_a_message, remember_a_message_plural
to not convert the string.
2003-06-23 Guido Flohr <guido@imperia.net>
* x-perl.c (extract_quotelike_pass3): Fix handling of doubled
backslashes in single-quoted strings.
2003-06-23 Bruno Haible <bruno@clisp.org>
* format-perl-bracket.c (format_check): Allow additional bracketed
items in the msgstr.
2003-06-22 Bruno Haible <bruno@clisp.org>
* write-properties.c: Don't include exit.h and gettext.h.
2003-06-22 Bruno Haible <bruno@clisp.org>
* x-php.c (phase3_ungetc): Comment out unused function.
2003-06-21 Bruno Haible <bruno@clisp.org>
* format-perl.c: Complete rewrite.
* format-perl-bracket.c: New file.
* message.h (format_perl_bracket): New enum value.
(NFORMATS): Increment.
* format.h (formatstring_perl_bracket): New declaration.
* format.c (formatstring_parsers): Add entry for perl_bracket.
* message.c (format_language, format_language_pretty): Likewise.
* x-perl.h (SCANNERS_PERL): Use formatstring_perl and
formatstring_perl_bracket.
* Makefile.am (FORMAT_SOURCE): Add format-perl-bracket.c.
* Makefile.msvc (OBJECTS): Add format-perl.obj,format-perl-bracket.obj.
(xgettext_OBJECTS): Add x-perl.obj.
(format-perl.obj, format-perl-bracket.obj, x-perl.obj): New rules.
* Makefile.vms (OBJECTS): Add format-perl.obj, format-perl-bracket.obj.
(xgettext_OBJECTS): Add x-perl.obj.
(format-perl.obj, format-perl-bracket.obj, x-perl.obj): New rules.
* x-perl.c (extract_quotelike_pass3): Don't give an invalid
interpolation error for a backslashed dollar sign.
2003-06-21 Bruno Haible <bruno@clisp.org>
* x-perl.c (extract_quotelike_pass3): Fix handling of double backslash.
2003-06-19 Bruno Haible <bruno@clisp.org>
* x-perl.c (enum string_type_ty): Remove trailing comma.
(interpolate_keywords::enum parser_state): Likewise.
(extract_quotelike_pass3): Cast first argument of u8_uctomb().
2003-06-15 Bruno Haible <bruno@clisp.org>
* x-awk.c: Reorder definitions.
* x-c.c: Reorder definitions.
* x-perl.c: Reorder definitions.
* x-php.c: Reorder definitions.
* x-python.c: Reorder definitions.
* x-smalltalk.c: Reorder definitions.
* x-ycp.c: Reorder definitions.
2003-06-15 Bruno Haible <bruno@clisp.org>
* x-perl.c (struct stack_entry): Remove type.
(struct stack): Remove type.
(struct token_stack_ty): New type.
(token_stack): Change type to 'struct token_stack_ty'.
(token_stack_dump): Renamed from stack_dump. Update.
(token_stack_push): Renamed from stack_unshift. Rewritten.
(token_stack_pop): Renamed from stack_shift. Rewritten.
(token_stack_peek): Renamed from stack_head. Rewritten.
(token_stack_free): Renamed from stack_free. Rewritten.
(x_perl_lex, x_perl_unlex, extract_perl): Update.
2003-06-15 Bruno Haible <bruno@clisp.org>
* x-perl.c (DEBUG_MEMORY): Remove macro.
(remember_a_message_debug, remember_a_message_plural_debug,
xmalloc_debug, xrealloc_debug, xrealloc_static_debug, xstrdup_debug,
free_debug): Remove functions.
(xrealloc_static): Remove macro. Use xrealloc instead.
2003-06-15 Bruno Haible <bruno@clisp.org>
* x-awk.c (phase2_getc, x_awk_lex): Increase bufmax proportionally.
* x-c.c (comment_add, comment_line_end, phase5_get, phase6_get):
Likewise.
* x-elisp.c (comment_add, comment_line_end): Likewise.
* x-librep.c (comment_add, comment_line_end): Likewise.
* x-lisp.c (comment_add, comment_line_end): Likewise.
* x-php.c (comment_add, comment_line_end, x_php_lex): Likewise.
* x-python.c (comment_add, comment_line_end, phase5_get): Likewise.
* x-rst.c (extract_rst): Likewise.
* x-smalltalk.c (comment_add, comment_line_end, phase2_get): Likewise.
* x-tcl.c (comment_add, comment_line_end): Likewise.
* x-ycp.c (phase2_getc, x_ycp_lex): Likewise.
2003-06-15 Bruno Haible <bruno@clisp.org>
* xgettext.c (current_formatstring_parser1,
current_formatstring_parser2): New variables, replacing
current_formatstring_parser.
(remember_a_message, remember_a_message_plural): Try both
formatstring parsers.
(language_to_extractor): Allow two formatstring parsers per language,
not just one.
* x-perl.h (SCANNERS_PERL): Add formatstring_c as secondary format
string parser.
* x-awk.h (SCANNERS_AWK): Update.
* x-c.h (SCANNERS_C): Update.
* x-elisp.h (SCANNERS_ELISP): Update.
* x-glade.h (SCANNERS_GLADE): Update.
* x-java.h (SCANNERS_JAVA): Update.
* x-librep.h (SCANNERS_LIBREP): Update.
* x-lisp.h (SCANNERS_LISP): Update.
* x-php.h (SCANNERS_PHP): Update.
* x-po.h (SCANNERS_PO): Update.
* x-properties.h (SCANNERS_PROPERTIES): Update.
* x-python.h (SCANNERS_PYTHON): Update.
* x-rst.h (SCANNERS_RST): Update.
* x-smalltalk.h (SCANNERS_SMALLTALK): Update.
* x-tcl.h (SCANNERS_TCL): Update.
* x-ycp.h (SCANNERS_YCP): Update.
2003-06-15 Bruno Haible <bruno@clisp.org>
* x-perl.c (case_whitespace): New macro.
(is_whitespace): New function.
(interpolate_keywords): Add lineno argument. Track newlines to update
lineno while processing the string. Use is_whitespace.
(extract_triple_quotelike): Update. Use is_whitespace.
(extract_variable): Simplify: add final NUL byte only when done. Use
is_whitespace.
(x_perl_prelex): Use is_whitespace. After reading a here document, use
line_number+1, not line_number. Fix buffer overrun in <<XYZ handling.
(collect_message): Use is_whitespace.
(extract_balanced): Call free_token at the end of the loop, not at the
beginning.
2003-06-14 Bruno Haible <bruno@clisp.org>
* x-perl.c (enum token_type_ty): Reorder, so as to simplify the
function free_token().
(struct token_ty): Fix comments.
(token2string): Add const.
(token_stack): Make static.
(*_debug, stack_dump): Remove all fflushs.
(linebuf, linesize, linepos, linebuf_size, last_token, here_eaten,
end_of_file): Make static.
(last_string, last_string_finished): Remove unused variables.
(phase1_getc, get_here_document, skip_pod): Test getline() result
for being < 0, not == EOF.
(phase1_ungetc): Signal internal error through abort(), not exit().
(get_here_document): Tweak. Increase bufmax proportionally.
(phase2_getc): Increase bufmax proportionally.
(prefer_division_over_regexp): Fix comment.
(extract_hex, extract_oct): Add const. Simplify.
(extract_quotelike): Add a safety check.
(extract_quotelike_pass1): Increase bufmax proportionally. Fix
insufficient memory allocation at "bufpos + len >= bufmax".
(extract_quotelike_pass3): Increase bufmax proportionally. Make crs
const. After \x{ABC} position crs after the closing brace. Simplify \c
code. Reduce memory allocation when \N{ABC} is seen. Fix bug in \l and
\u. Fix error message when $ or @ is seen.
(extract_variable): Increase bufmax proportionally.
(interpolate_keywords): Likewise. Convert c's value to unsigned char.
(x_perl_prelex): Increase bufmax proportionally. Compute 4th argument
to extract_triple_quotelike completely.
(extract_perl): Initialize token_stack correctly.
2003-06-13 Bruno Haible <bruno@clisp.org>
* msgexec.c (process_string): Pass null_stderr=false.
* msgfilter.c (process_string): Likewise.
* msggrep.c (is_string_selected): Likewise.
* read-java.c (execute_and_read_po_output): Likewise.
* read-tcl.c (msgdomain_read_tcl): Likewise.
* msginit.c (project_id, project_id_version, get_user_email,
language_team_address): Return a default value if the subprocess
fails, instead of exiting.
2003-06-12 Bruno Haible <bruno@clisp.org>
* Makefile.am (noinst_HEADERS): Add x-perl.h.
(FORMAT_SOURCE): Add format-perl.c.
(xgettext_SOURCES): Add x-perl.c.
* message.h (enum format_type): Mention perl between tcl and php.
* message.c (format_language, format_language_pretty): Likewise.
* format.h (formatstring_perl): Likewise.
* format.c (formatstring_parsers): Likewise.
* format-perl.c: Use GNU coding style. Prefer xmalloc over xcalloc.
* x-perl.h: Assume ANSI C.
* x-perl.c: Assume ANSI C. Use GNU coding style. Prefer xmalloc over
xcalloc.
(token_buf): Remove unused variable.
(xcalloc_debug, stack_push, stack_pop): Remove unused functions.
* xgettext.c: Mention perl between tcl and php.
2003-06-11 Guido Flohr <guido@imperia.net>
* message.h (enum format_type): New enum value 'format_perl'.
(NFORMATS): Increment.
* message.c (format_language, format_language_pretty): Add entry
for perl.
* format.h (formatstring_perl): New declaration.
* format-perl.c: New file.
* format.c (formatstring_parsers): Add entry for perl.
* x-perl.h: New file.
* x-perl.c: New file.
* xgettext.c: Include x-perl.h.
(main): Call x_perl_extract_all, x_perl_keyword.
(usage): Mention Perl language.
(language_to_extractor): Add Perl rule.
(extension_to_language): Add Perl rule.
2003-06-08 Bruno Haible <bruno@clisp.org>
* Makefile.vms (LDADD): Take options from .opt files.
(libiconv.opt): New rule.
(msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe, xgettext.exe,
msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe,
msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe):
Depend on it.
* plural-eval.c: Include "eval-plural.h" without a path, rely on the
Makefile's -I options instead.
* read-properties.c (conv_from_java): Change type of q to
'unsigned char *'.
Reported by Jouk Jansen <joukj@hrem.stm.tudelft.nl>.
2003-05-27 Bruno Haible <bruno@clisp.org>
* plural-table.c (plural_table): Correct entry for Slovak.
Reported by Marcel Telka <marcel@telka.sk>.
2003-05-24 Bruno Haible <bruno@clisp.org>
* x-glade.h (EXTENSIONS_GLADE): Also recognize the .glade2 extension.
* x-glade.c (start_element_handler): Also extract strings according to
Glade 2 conventions.
2003-05-22 Bruno Haible <bruno@clisp.org>
* gettext-0.12.1 released.
2003-05-21 Bruno Haible <bruno@clisp.org>
* msggrep.c (main) [Solaris]: Fix syntax error.
Reported by Valery Beaud <valery.beaud@art.alcatel.fr>.
2003-05-21 Bruno Haible <bruno@clisp.org>
* xgettext.c (output_syntax): New variable.
(main): Set it.
(finalize_header): If --properties-output was given, set the charset.
2003-05-18 Bruno Haible <bruno@clisp.org>
* Makefile.msvc (DEBUGFLAGS): New variable.
(gettextsrc.lib): Use it.
(msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe, xgettext.exe,
msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe,
msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe):
Use it, and MFLAGS too.
2003-05-17 Bruno Haible <bruno@clisp.org>
* gettext-0.12 released.
2003-05-17 Bruno Haible <bruno@clisp.org>
* Makefile.msvc (msgcmp.exe, msgfmt.exe, msgmerge.exe, msgunfmt.exe,
msgattrib.exe, msgcat.exe, msgcomm.exe, msgconv.exe, msgen.exe,
msgexec.exe, msgfilter.exe, msggrep.exe, msginit.exe, msguniq.exe):
Link with iconv.lib, needed by intl.lib.
2003-05-12 Bruno Haible <bruno@clisp.org>
* msginit.c (F_OK): Provide a fallback value.
Reported by Perry Rapp.
2003-05-10 Bruno Haible <bruno@clisp.org>
* msgl-iconv.c (iconv_string): Don't return -1 just because the string
is longer than 4 KB.
Reported by Denis Barbier <barbier@linuxfr.org>.
2003-05-04 Bruno Haible <bruno@clisp.org>
* po-lex.h (po_gram_error): Don't use ISO C 99 feature on DEC C.
* po-lex.c (po_gram_error): LIkewise.
2003-05-03 Bruno Haible <bruno@clisp.org>
* msgfilter.c: Include <sys/select.h> also on EMX.
Reported by Andreas Buening <andreas.buening@nexgo.de>.
2003-04-26 Bruno Haible <bruno@clisp.org>
* message.h (msgdomain_list_ty): Add field 'encoding'.
* message.c (msgdomain_list_alloc): Initialize it.
* read-properties.h: New file.
* read-properties.c: New file.
* read-po-abstract.h (abstract_po_reader_class_ty): In
directive_message field, add force_fuzzy argument.
(po_scan_start, po_scan_end): Remove declarations.
(input_syntax_ty): New type.
(po_callback_message): Add force_fuzzy argument.
* read-po-abstract.c (call_directive_message, po_callback_message):
Add force_fuzzy argument.
(po_scan_start, po_scan_end): Make static.
(po_scan): Add support for syntax_properties. Move
error_message_count handling to here.
(po_callback_message): Move po_lex_charset_set invocation away.
* read-po.h (default_po_reader_class_ty): In add_message field, add
force_fuzzy argument.
(default_directive_message, default_add_message): Add force_fuzzy
argument.
(inout_syntax): New declaration.
* read-po.c (call_add_message): Add force_fuzzy argument.
(default_directive_message, default_add_message): Likewise.
(input_syntax): New variable.
(read_po): Pass input_syntax to po_scan(). Set mdlp->encoding if
possible.
* po-gram-gen.y: Pass force_fuzzy = false.
(do_callback_message): New function. Move po_lex_charset_set
invocation to here.
* po-lex.c (lex_end): Move error_message_count handling away.
* write-properties.h: New file.
* write-properties.c: New file.
* write-po.h (message_print_syntax_properties): New declaration.
* write-po.c (use_syntax_properties): New variable.
(message_print_syntax_properties): New function.
(msgdomain_list_print_po): New function, extracted from
msgdomain_list_print.
(msgdomain_list_print): Add check for plural forms. Add support for
writing the .properties format.
(extract_po): Renamed from extract.
* write-java.h (msgdomain_write_java): Add canon_encoding argument.
* write-java.c (msgdomain_write_java): Likewise.
* write-tcl.h (msgdomain_write_tcl): Likewise.
* write-tcl.c (msgdomain_write_tcl): Likewise.
* msgl-cat.c (catenate_msgdomain_list): Use mdlp->encoding if there
is no header entry. Set total_mdlp->encoding if possible.
* msgl-iconv.c (iconv_msgdomain_list): Use mdlp->encoding if there
is no header entry. Set mdlp->encoding.
* msgattrib.c (long_options): Add --properties-input/output.
(main): Handle them.
(usage): Document options -P and -p.
* msgcat.c (long_options): Add --properties-input/output.
(main): Handle them. If option -p is used, convert to UTF-8 and
ignore the to_code.
(usage): Document options -P and -p.
* msgcomm.c (long_options): Add --properties-input/output.
(main): Handle them.
(usage): Document options -P and -p.
* msgconv.c (long_options): Add --properties-input/output.
(main): Handle them. If option -p is used, ignore the to_code.
(usage): Document options -P and -p.
* msgen.c (long_options): Add --properties-input/output.
(main): Handle them.
(usage): Document options -P and -p.
* msgfilter.c (long_options): Add --properties-input/output.
(main): Handle them.
(usage): Document options -P and -p.
* msggrep.c (long_options): Add --properties-input/output.
(main): Handle them.
(usage): Document options -P and -p.
* msginit.c (long_options): Add --properties-input/output.
(main): Handle them.
(usage): Document options -P and -p.
* msgmerge.c (long_options): Add --properties-input/output.
(main): Handle them. In update mode, --properties-input implies
--properties-output.
(usage): Document options -P and -p.
(merge): Set result->encoding if possible.
* msguniq.c (long_options): Add --properties-input/output.
(main): Handle them.
(usage): Document options -P and -p.
* msgcmp.c (long_options): Add --properties-input.
(main): Handle it.
(usage): Document option -P.
* msgexec.c (long_options): Add --properties-input.
(main): Handle it.
(usage): Document option -P.
* msgfmt.c (long_options): Add --properties-input.
(main): Handle it. Pass the known canon_encoding to
msgdomain_write_java and msgdomain_write_tcl.
(usage): Document option -P.
(msgfmt_add_message): Add force_fuzzy argument.
(read_po_file_msgfmt): Pass input_syntax to po_scan().
* msgunfmt.c (long_options): Add --properties-output.
(main): Handle it.
(usage): Document option -p.
* x-properties.h: New file.
* x-po.c (extract_add_message): Add force_fuzzy argument.
(extract): Renamed from extract_po. Pass input_syntax to po_scan().
(extract_po): New function.
(extract_properties): New function.
* xgettext.h: Include read-po.h.
* xgettext.c (long_options): Add --properties-output.
(main): Handle it.
(usage): Document options -L JavaProperties and --properties-output.
(exclude_directive_message): Add force_fuzzy argument.
(read_exclusion_file): Pass input_syntax to po_scan().
(table): Add support for .properties format.
* Makefile.am (noinst_HEADERS): Add read-properties.h,
write-properties.h, x-properties.h.
(COMMON_SOURCE): Add read-properties.c.
(libgettextsrc_la_SOURCES): Add write-properties.c.
* Makefile.msvc (OBJECTS): Add read-properties.obj,
write-properties.obj.
(read-properties.obj, write-properties.obj): New rules.
* Makefile.vms (OBJECTS): Add read-properties.obj,
write-properties.obj.
(read-properties.obj, write-properties.obj): New rules.
* FILES: Update.
2003-04-21 Bruno Haible <bruno@clisp.org>
* read-po-abstract.h (po_scan_file): Remove declaration.
* read-po-abstract.c (po_scan_file): Remove function.
* read-po.c (read_po_file): Call read_po.
* msgfmt.c (read_po_file_msgfmt): Call open_po_file. Invoke po_scan
instead of po_scan_file.
* xgettext.c (read_exclusion_file): Call open_po_file. Invoke po_scan
instead of po_scan_file.
2003-04-20 Bruno Haible <bruno@clisp.org>
* open-po.h (open_po_file): Add argument 'exit_on_error'.
* open-po.c (try_open_po_file): Renamed from open_po_file.
(open_po_file): New function.
* po-lex.h (lex_end): Change return type to void.
(lex_open, lex_close): Remove declarations.
* po-lex.c (lex_end): Change return type to void.
(lex_open, lex_close): Remove functions.
* read-po-abstract.c (po_scan_file): Inline lex_open and lex_close.
Reuse po_scan code.
2003-04-14 Bruno Haible <bruno@clisp.org>
* hostname.c (usage): Split strings: use one string per option
description.
* msgattrib.c (usage): Likewise.
* msgcat.c (usage): Likewise.
* msgcmp.c (usage): Likewise.
* msgcomm.c (usage): Likewise.
* msgconv.c (usage): Likewise.
* msgen.c (usage): Likewise.
* msgexec.c (usage): Likewise.
* msgfilter.c (usage): Likewise.
* msgfmt.c (usage): Likewise.
* msggrep.c (usage): Likewise.
* msginit.c (usage): Likewise.
* msgmerge.c (usage): Likewise.
* msgunfmt.c (usage): Likewise.
* msguniq.c (usage): Likewise.
* urlget.c (usage): Likewise.
* xgettext.c (usage): Likewise.
2003-04-13 Bruno Haible <bruno@clisp.org>
Unify three PO file parsers.
* read-po-abstract.h: Renamed from po.h.
(abstract_po_reader_class_ty): Renamed from po_method_ty.
(abstract_po_reader_ty): Renamed from po_ty.
(ABSTRACT_PO_READER_TY): Renamed from PO_BASE_TY.
(po_reader_alloc): Renamed from po_alloc.
(po_reader_free): Renamed from po_free.
* read-po-abstract.c: Renamed from po.c.
(po_reader_alloc): Renamed from po_alloc.
(po_reader_free): Renamed from po_free.
(call_parse_brief): Renamed from po_parse_brief.
(call_parse_debrief): Renamed from po_parse_debrief.
(call_directive_domain): Renamed from po_directive_domain.
(call_directive_message): Renamed from po_directive_message.
(call_comment): Renamed from po_comment.
(call_comment_dot): Renamed from po_comment_dot.
(call_comment_filepos): Renamed from po_comment_filepos.
(call_comment_special): Renamed from po_comment_special.
* read-po.h: Include read-po-abstract.h.
(default_po_reader_class_ty, default_po_reader_ty): New types.
(ABSTRACT_PO_READER_TY): New macro.
(default_constructor, default_destructor, default_parse_brief,
default_parse_debrief, default_directive_domain,
default_directive_message, default_comment, default_comment_dot,
default_comment_filepos, default_comment_special, default_set_domain,
default_add_message): New declarations.
(default_po_reader_alloc): New declaration.
* read-po.c (default_po_reader_ty): Renamed from readall_class_ty.
Add fields handle_comments, handle_filepos_comments,
allow_domain_directives, allow_duplicates,
allow_duplicates_if_same_msgstr.
(call_set_domain, call_add_message, call_frob_new_message): New
functions.
(default_constructor): Renamed from readall_constructor. Don't set
this->mdlp and this->mlp.
(default_destructor): Renamed from readall_destructor.
(default_parse_brief): Renamed from readall_parse_brief.
(default_parse_debrief): New function.
(default_copy_comment_state, default_reset_comment_state): New
functions.
(default_directive_domain): Renamed from readall_directive_domain.
Call set_domain method.
(default_directive_message): Renamed from readall_directive_message.
Call add_message method.
(default_comment): Renamed from readall_comment.
(default_comment_dot): Renamed from readall_comment_dot.
(default_comment_filepos): Renamed from readall_comment_filepos.
(default_comment_special): Renamed from readall_comment_special.
(default_set_domain, default_add_message): New functions.
(default_methods): Renamed from readall_methods.
(default_po_reader_alloc): New function.
(read_po, read_po_file): Update.
* msgfmt.c: Include read-po.h instead of po.h.
(msgfmt_po_reader_ty): Renamed from msgfmt_class_ty. Inherit
from default_po_reader_ty.
(main): Drop po_lex_pass_comments call, done by default_parse_brief.
(msgfmt_constructor): Renamed from format_constructor. Call superclass
function.
(msgfmt_parse_debrief): Renamed from format_debrief. Call superclass
function.
(format_directive_domain): Remove function.
(msgfmt_set_domain): New function.
(format_directive_message): Remove function.
(msgfmt_add_message, msgfmt_frob_new_message): New functions.
(msgfmt_comment_special): Renamed from format_comment_special.
(msgfmt_methods): Renamed from format_methods.
(read_po_file_msgfmt): Renamed from read_po_file.
* x-po.c: Include read-po.h instead of po.h.
(extract_class_ty, extract_constructor, extract_directive_domain,
extract_directive_message, extract_parse_brief, extract_comment,
extract_comment_dot, extract_comment_filepos, extract_comment_special):
Remove functions.
(extract_add_message): New function.
(extract_methods): Update.
(extract_po): Update.
* xgettext.c: Include read-po-abstract.h instead of po.h.
(exclude_directive_domain, exclude_directive_message, exclude_methods,
read_exclusion_file): Update.
* msgcmp.c: Don't include po.h.
* msgmerge.c: Likewise.
* po-gram-gen.y: Include read-po-abstract.h instead of po.h.
* po-hash-gen.y: Likewise.
(po_parse_comment_filepos): Renamed from po_hash.
* po-hash.h (po_parse_comment_filepos): Renamed from po_hash.
* Makefile.am (noinst_HEADERS): Remove po.h, add read-po-abstract.h.
(COMMON_SOURCE): Remove po.c, add read-po-abstract.c.
* Makefile.msvc (OBJECTS): Remove po.obj, add read-po-abstract.obj.
(read-po-abstract.obj): Renamed from po.obj.
* Makefile.vms (OBJECTS): Remove po.obj, add read-po-abstract.obj.
(read-po-abstract.obj): Renamed from po.obj.
2003-04-13 Bruno Haible <bruno@clisp.org>
* read-po.c (readall_directive_message): Separate accumulation and
reset.
* x-po.c (extract_directive_message): Likewise.
2003-04-13 Bruno Haible <bruno@clisp.org>
* write-po.h (message_print_comment, message_print_comment_dot,
message_print_comment_filepos, message_print_comment_flags): New
declarations.
* write-po.c: Reorder functions.
(message_print_comment, message_print_comment_dot,
message_print_comment_filepos, message_print_comment_flags): New
functions, extracted from message_print.
(message_print): Use them.
(message_print_obsolete): Use message_print_comment.
2003-04-22 Bruno Haible <bruno@clisp.org>
* plural-table.c (plural_table): Add an entry about Faroese.
Reported by Jacob Sparre Andersen <sparre@crs4.it>.
2003-04-13 Bruno Haible <bruno@clisp.org>
* po.h (po_scan_start, po_scan_end): New declarations.
* po.c: Reorder functions.
(po_scan_start, po_scan_end): New functions.
(po_scan, po_scan_file): Use them.
2003-04-12 Bruno Haible <bruno@clisp.org>
* Makefile.vms: New variables ABIFLAGS, DEFS. Avoid rules with no
lines. Don't use the force target. Correct wildcard syntax.
Suggested by Jouk Jansen <joukj@hrem.stm.tudelft.nl>.
2003-04-13 Bruno Haible <bruno@clisp.org>
* xgettext.c (construct_header): Remove spurious comma.
2003-03-30 Bruno Haible <bruno@clisp.org>
* Makefile.vms: New file.
* Makefile.am (EXTRA_DIST): Add Makefile.vms.
(x-java.c): Prepend a few VMS specific lines.
* po-lex.c (mbfile_getc): Change element type of scatchbuf to
'unsigned char'.
* write-java.c (string_hashcode, write_java_string): Cast argument of
u8_mbtouc.
* write-tcl.c (write_tcl_string): Likewise.
* x-python.c (phase7_getuc): Cast argument of unicode_name_character.
* msgfilter.c (write): #undef before redefining it. Needed for VMS.
(select): Likewise.
2003-03-30 Bruno Haible <bruno@clisp.org>
* Makefile.am (noinst_HEADERS): Add po-gram-gen2.h.
(BUILT_SOURCES): Add po-gram-gen2.h.
(DISTCLEANFILES): Remove po-gram-gen2.h.
(po-gram-gen2.h): Simplify rule.
2003-03-17 Bruno Haible <bruno@clisp.org>
Native Woe32/MSVC support.
* Makefile.msvc: New file.
* Makefile.am (EXTRA_DIST): Add it.
* msgfilter.c: Include <sys/time.h> only if it exists.
(process_string): Mark as NYI on Woe32.
* msgfmt.c (sigjmp_buf, sigsetjmp, siglongjmp): Provide fallback
definitions for Woe32.
* msginit.c: Include <fcntl.h>, for F_OK. Include <pwd.h> only if it
exists.
(get_user_pwd, get_user_fullname): Adapt for when <pwd.h> is missing.
(project_id, project_id_version, get_user_email,
language_team_address): Use DEV_NULL instead of "/dev/null".
* msggrep.c (is_string_selected): Likewise.
* read-java.c (execute_and_read_po_output): Likewise.
* read-tcl.c (msgdomain_read_tcl): Likewise.
* write-mo.c: Include <sys/param.h> only if it exists.
2003-03-28 Bruno Haible <bruno@clisp.org>
* msgmerge.c (main): Use copy_file_preserving instead of copy_file.
2003-03-16 Bruno Haible <bruno@clisp.org>
* str-list.h (string_list_join): Comment out.
* str-list.c (string_list_join): Comment out.
2003-03-10 Bruno Haible <bruno@clisp.org>
* msggrep.c (no_pass): Mention option -C.
(usage): Document option -C completely.
Reported by Martin Quinson <Martin.Quinson@tuxfamily.org>.
2003-02-28 Bruno Haible <bruno@clisp.org>
Support for relocatable installation.
* msgattrib.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* msgcat.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* msgcmp.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* msgcomm.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* msgconv.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* msgen.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* msgexec.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* msgfilter.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* msgfmt.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* msggrep.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* msginit.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
(project_id, project_id_version, get_user_email): Relocate LIBDIR
value.
(language_team_address): Relocate LIBDIR and PROJECTSDIR values.
* msgmerge.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* msgunfmt.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* msguniq.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* xgettext.c: Include relocatable.h.
(main): Relocate LOCALEDIR value.
* read-java.c: Include relocatable.h.
(msgdomain_read_java): Relocate GETTEXTJEXEDIR value.
* read-tcl.c: Include relocatable.h.
(msgdomain_read_tcl): Relocate GETTEXTDATADIR value.
* hostname.c: Include relocatable.h.
(main): Relocate LOCALEDIR value. Update copyright year.
* urlget.c: Include relocatable.h.
(main): Relocate LOCALEDIR value. Update copyright year.
(fetch): Relocate GETTEXTJEXEDIR value.
* user-email.in: Relocate $libdir.
* Makefile.am (aliaspath): New variable.
(DEFS): Define LOCALE_ALIAS_PATH.
(msginit_SOURCES): Add .../localealias.c.
(msginit_LDADD): Remove .../localealias.lo.
(msgcmp_CFLAGS, msgfmt_CFLAGS, msgmerge_CFLAGS, msgunfmt_CFLAGS,
xgettext_CFLAGS, msgattrib_CFLAGS, msgcat_CFLAGS, msgcomm_CFLAGS,
msgconv_CFLAGS, msgen_CFLAGS, msgexec_CFLAGS, msgfilter_CFLAGS,
msggrep_CFLAGS, msginit_CFLAGS, msguniq_CFLAGS, hostname_CFLAGS,
urlget_CFLAGS): New variables.
(msgcmp_LDFLAGS, msgfmt_LDFLAGS, msgmerge_LDFLAGS, msgunfmt_LDFLAGS,
xgettext_LDFLAGS, msgattrib_LDFLAGS, msgcat_LDFLAGS, msgcomm_LDFLAGS,
msgconv_LDFLAGS, msgen_LDFLAGS, msgexec_LDFLAGS, msgfilter_LDFLAGS,
msggrep_LDFLAGS, msginit_LDFLAGS, msguniq_LDFLAGS, hostname_LDFLAGS,
urlget_LDFLAGS): New variables.
(install-exec-java-yes): Don't ignore INSTALL_PROGRAM_ENV.
(RELOCATABLE_LIBRARY_PATH, RELOCATABLE_SRC_DIR, RELOCATABLE_BUILD_DIR,
RELOCATABLE_CONFIG_H_DIR): New variables.
2003-03-13 Bruno Haible <bruno@clisp.org>
* msggrep.c (main): On Solaris, prefer /usr/xpg4/bin/grep to
/usr/bin/grep. Needed for Solaris 2.8 and 2.9.
Reported by Sven Utcke <utcke@informatik.uni-hamburg.de>.
2003-03-03 Bruno Haible <bruno@clisp.org>
* msgen.c (usage): Don't say that the entries are marked fuzzy.
Reported by Karl Eichwalder <ke@suse.de>.
2003-02-23 Bruno Haible <bruno@clisp.org>
Improve error messages for invalid format strings.
* format-invalid.h: New file.
* format.h (struct formatstring_parser): Add invalid_reason argument
to 'parse' field.
* format-awk.c: Include c-ctype.h, xerror.h, format-invalid.h.
(format_parse): Add invalid_reason argument.
* format-c.c: Include c-ctype.h, xerror.h, format-invalid.h.
(INVALID_C99_MACRO): New macro.
(format_parse): Add invalid_reason argument.
(get_c99_format_directives): Update.
* format-elisp.c: Include c-ctype.h, xerror.h, format-invalid.h.
(format_parse): Add invalid_reason argument.
* format-java.c: Include xerror.h, format-invalid.h.
(message_format_parse, choice_format_parse, format_parse): Add
invalid_reason argument.
(choice_format_parse): Return false if a choice contains an empty
number part.
* format-librep.c: Include c-ctype.h, xerror.h, format-invalid.h.
(format_parse): Add invalid_reason argument.
* format-lisp.c: Include xerror.h, format-invalid.h.
(check_params, nocheck_params): Add directives, invalid_reason
arguments.
(parse_upto, format_parse): Add invalid_reason argument.
* format-pascal.c: Include xerror.h, format-invalid.h.
(format_parse): Add invalid_reason argument.
* format-php.c: Include c-ctype.h, xerror.h, format-invalid.h.
(format_parse): Add invalid_reason argument.
* format-python.c: Include c-ctype.h, xerror.h, format-invalid.h.
(INVALID_MIXES_NAMED_UNNAMED): New macro.
(format_parse): Add invalid_reason argument.
* format-tcl.c: Include c-ctype.h, xerror.h, format-invalid.h.
(format_parse): Add invalid_reason argument.
* format-ycp.c: Include c-ctype.h, xerror.h, format-invalid.h.
(format_parse): Add invalid_reason argument.
* msgfmt.c (check_pair): Output invalid_reason returned for msgstr.
* msgmerge.c (msgfmt_check_pair_fails): Update.
* xgettext.c (remember_a_message, remember_a_message_plural): Update.
* Makefile.am (FORMAT_SOURCE): Add format-invalid.h.
2003-02-22 Bruno Haible <bruno@clisp.org>
* x-python.c (init_keywords): Add u*gettext variants and plural
handling functions added in Python 2.3.
2003-02-22 Bruno Haible <bruno@clisp.org>
* Makefile.am (installdirs): Remove dependency, redundant with
automake >= 1.6.
2003-02-20 Bruno Haible <bruno@clisp.org>
* Makefile.am (libgettextpo_la_DEPENDENCIES): New variable.
Reported by Jim Meyering <jim@meyering.net>.
2003-02-19 Bruno Haible <bruno@clisp.org>
* Makefile.am (xgettext_LDADD): Mention $(LIBUNINAME) before
libgettextsrc.la, not after it. Needed avoid link error on OSF/1 4.0:
libtool produces a link command line that contains "-lc" where a
shared library was used, and on OSF/1 4.0 "-lc" must not be used
before objects that use integer division.
2003-02-18 Bruno Haible <bruno@clisp.org>
* message.c (msgdomain_list_free): Uncomment this function.
* Makefile.am (libgettextpo_la_LDFLAGS): Add ../lib/libgettextlib.la.
Needed for Solaris 2.7.
2003-02-16 Bruno Haible <bruno@clisp.org>
* msgmerge.c (message_merge): Add support for Report-Msgid-Bugs-To
field.
* xgettext.c (msgid_bugs_address): New variable.
(long_options): Add option --msgid-bugs-address.
(main): Handle option --msgid-bugs-address.
(usage): Document option --msgid-bugs-address.
(construct_header): Add 'Report-Msgid-Bugs-To:' field. Warn if
msgid_bugs_address is empty.
2003-02-15 Bruno Haible <bruno@clisp.org>
* user-email.in: Add support for GNOME evolution, OpenOffice and
StarOffice with nonstandard installation directory.
2003-02-15 Bruno Haible <bruno@clisp.org>
* msgattrib.c (main): Update year in --version output.
* msgcat.c (main): Likewise.
* msgcmp.c (main): Likewise.
* msgcomm.c (main): Likewise.
* msgconv.c (main): Likewise.
* msgen.c (main): Likewise.
* msgexec.c (main): Likewise.
* msgfilter.c (main): Likewise.
* msgfmt.c (main): Likewise.
* msgunfmt.c (main): Likewise.
* msguniq.c (main): Likewise.
* xgettext.c (main): Likewise.
2003-02-12 Bruno Haible <bruno@clisp.org>
Big restructuring.
* gettext.c: Remove file.
* ngettext.c: Remove file.
* Makefile.am (bin_PROGRAMS): Remove gettext, ngettext.
(EXTRA_DIST): Add ChangeLog.0.
(pkgdatadir): Define using 'gettext' instead of @PACKAGE@.
(pkglibdir): Likewise.
(INCLUDES): Refer to intl in gettext-runtime directory.
(gettext_SOURCES, ngettext_SOURCES, gettext_LDADD, ngettext_LDADD):
Remove variables.
(install-exec-local, installdirs-local, uninstall-local,
install-exec-java-yes, installdirs-java-yes, uninstall-java-yes): Use
$(pkglibdir) instead of $(libdir)/$(PACKAGE).
* plural.c: Update for changed directory structure.
* user-email.in: Use 'gettext' instead of @PACKAGE@.
See ChangeLog.0 for earlier changes.