2015-10-06  Daiki Ueno  <ueno@gnu.org>

	* msgfmt.c (msgfmt_desktop_bulk): Distinguish the number of errors
	and the exit status.
	* write-desktop.c (msgdomain_write_desktop_bulk): Don't
	immediately exit when fwriteerror() returns error.

2015-10-06  Daiki Ueno  <ueno@gnu.org>

	msgfmt: Refactor --desktop handling
	* msgfmt.c (get_languages): Avoid redundant memory allocation.
	(msgfmt_operand_list_init): New function.
	(msgfmt_operand_list_destroy): New function.
	(msgfmt_operand_list_append): New function.
	(msgfmt_operand_list_add_directory): New function.
	(msgfmt_desktop_bulk): Rewrite using msgfmt_operand_list_ty.

	* msgfmt.h (msgfmt_operand_ty)
	(msgfmt_operand_list_ty): New type.
	* write-desktop.c (msgdomain_write_desktop_bulk):
	Simplify using msgfmt_operand_list_ty.
	(msgdomain_write_desktop): Simplify using msgfmt_operand_list_ty.
	* write-desktop.h (msgdomain_write_desktop_bulk): Take OPERANDS as
	the first argument, instead of LANGUAGES and MESSAGES.

2015-10-06  Daiki Ueno  <ueno@gnu.org>

	* sentence.c (sentence_end): Assign initial values to local
	variables to suppress compiler warnings with
	-Wmaybe-uninitialized.  This shouldn't address any real bug.

2015-09-11  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19.6 released.

2015-08-24  Daiki Ueno  <ueno@gnu.org>

	* xgettext.c (construct_header): Replace PACKAGE placeholder in
	the header comment.

2015-06-11  Philip Withnall  <philip.withnall@collabora.co.uk>

	xgettext: add support for AppData files
	* x-appdata.h: New file.
	* x-appdata.c: New file.
	* xgettext.c: Include x-appdata.h.
	(language_to_extractor): Add AppData rule.
	(extension_to_language): Add AppData rule.
	* Makefile.am (noinst_HEADERS): Add x-appdata.h.
	(xgettext_SOURCES): Add x-appdata.c.
	* FILES: Update.

2015-08-21  Daiki Ueno  <ueno@gnu.org>

	xgettext: Allow multiple --copyright-holder
	Feature requested by Francesco Poli in:
	<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=682580>.
	* xgettext.c (default_copyright_holder): New constant, renamed
	from copyright_holder.
	(copyright_holder): Define as a variable.
	(main): Allow multiple --copyright-holder options.
	(construct_header): Support multiple --copyright-holder options.

2015-08-15  Daiki Ueno  <ueno@gnu.org>

	* cldr-plurals.c (main): Close FP after use.
	Reported by Denis Denisov.

2015-07-21  Václav Slavík  <vaclav@slavik.io>  (tiny change)

	cldr-plurals: Fix --enable-relocatable compilation
	Compilation of the cldr-plurals tool was broken in the relocatable
	case because of missing CPPFLAGS/LDFLAGS.  Add the same flags used
	by other tools to the makefile.
	* Makefile.am (cldr_plurals_CPPFLAGS)
	(cldr_plurals_LDFLAGS): Adjust for --enable-relocatable
	compilation.

2015-07-10  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19.5 released.

2015-06-29  Daiki Ueno  <ueno@gnu.org>

	* msginit.c (catalogname_for_locale): Remove sr_YU, which were
	removed from ISO 3166-1:1997.  Add comment saying that pap_AN,
	which were removed from ISO 3166-1:2006, can be removed in the
	future.
	Reported by Jakub Wilk in:
	<https://lists.gnu.org/archive/html/bug-gettext/2015-06/msg00057.html>.

2015-06-25  Daiki Ueno  <ueno@gnu.org>

	* x-c.c (literalstring_parse): Bail out if C == NUL.  Also adjust
	the loop invariant in Unicode literal handling.
	Reported by Hanno Boeck in:
	<http://savannah.gnu.org/bugs/?45391>.

2015-06-25  Daiki Ueno  <ueno@gnu.org>

	* x-c.c (literalstring_parse): Add more NUL checks.  Change the
	loop invariant so that C always points to the character previously
	pointed by P.
	Reported by Hanno Boeck in:
	<http://savannah.gnu.org/bugs/?45391>.

2015-06-24  Daiki Ueno  <ueno@gnu.org>

	* x-c.c (literalstring_parse): Check if the next character of a
	backslash is NUL.
	Reported by Hanno Boeck in:
	<http://savannah.gnu.org/bugs/?45391>.

2015-06-23  Daiki Ueno  <ueno@gnu.org>

	* cldr-plurals.c (main): Fix unmatched braces when
	!(DYNLOAD_LIBEXPAT || HAVE_LIBEXPAT).

2015-06-23  Daiki Ueno  <ueno@gnu.org>

	* cldr-plurals.c: Include "basename.h".
	(main): Place optind on the right hand side of the expression, to
	work around build failure on Solaris.

2015-06-23  Daiki Ueno  <ueno@gnu.org>

	* Makefile.am (uninstall-local): Remove cldr-plurals.

2015-06-23  Daiki Ueno  <ueno@gnu.org>

	* Makefile.am (noinst_HEADERS): Add cldr-plural.h and
	cldr-plural-exp.h.

2015-06-22  Daiki Ueno  <ueno@gnu.org>

	msginit: Guess plural rules from Unicode CLDR
	* Makefile.am (noinst_PROGRAMS): Add cldr-plurals.
	(install-exec-local): Install cldr-plurals.
	(BUILT_SOURCES): Add cldr-plural.c and cldr-plural.h.
	(cldr_plural_SOURCES): New variable.
	(cldr_plural_LDADD): New variable.
	* cldr-plural-exp.h: New file.
	* cldr-plural-exp.c: New file.
	* cldr-plural.y: New file.
	* cldr-plurals.c: New file.
	* msginit.c (plural_forms): Call cldr-plurals program if the
	plural rule is not defined in the code.

2015-06-01  Daiki Ueno  <ueno@gnu.org>

	* x-awk.h (EXTENSIONS_AWK): Register file extensions ".gawk" and
	".twjr".  Suggested by Karl Berry in:
	<https://lists.gnu.org/archive/html/bug-gettext/2015-05/msg00032.html>.

2015-05-08  Часлав Илић (Chusslove Illich)  <caslav.ilic@gmx.net>  (tiny change)

	* x-c.c (init_flag_table_kde): New function.
	(additional_keywords_kde): New variable.
	(activate_additional_keywords_kde): New function.
	(init_keywords): Optional addition of KDE-specific keywords.
	* x-c.h (init_flag_table_kde): New function declaration.
	(activate_additional_keywords_kde): New function declaration.
	* xgettext.c (main): Invoke addition of KDE-specific keywords when
	language is C++ with KDE.

2015-03-20  Daiki Ueno  <ueno@gnu.org>

	kde-kuit: Use xmlns to avoid element name conflict
	* format-kde-kuit.c (XML_NS): New macro.
	(format_parse): Add namespace qualifier to the <kuit> tag.

2015-03-12  Daiki Ueno  <ueno@gnu.org>

	* format-kde-kuit.c (format_parse): Remove dead assignment,
	spotted by clang-analyzer.
	* x-c.c (phase5_get): Likewise.

2015-03-11  Daiki Ueno  <ueno@gnu.org>

	msgunfmt: Check allocated size for static segment
	Reported by Max Lin in:
	http://lists.gnu.org/archive/html/bug-gettext/2015-03/msg00005.html
	* read-mo.c (get_sysdep_string): Check if the embedded segment
	size is valid, before adding it to the string length.

2015-03-06  Daiki Ueno  <ueno@gnu.org>

	format-kde: Recognize KUIT markup
	Reported by Chusslove Illich in:
	https://lists.gnu.org/archive/html/bug-gettext/2015-01/msg00017.html
	* format.h (formatstring_kde_kuit): New variable declaration.
	* format.c (formatstring_parsers): Register formatstring_kde_kuit
	as a format string parser.
	* format-kde-kuit.c: New file.
	* message.h (NFORMATS): Increment.
	(enum format_type): New enum value format_kde_kuit.
	* xgettext.c (xgettext_record_flag): Handle format_kde_kuit.
	* Makefile.am (xgettext_SOURCES): Move libexpat-compat.c to...
	(libgettextsrc_la_SOURCES): ...here.
	(xgettext_LDADD): Move @LTLIBEXPAT@ to...
	(libgettextsrc_la_LDFLAGS): ...here.
	(FORMAT_SOURCE): Add format-kde-kuit.c.

2015-03-02  Daiki Ueno  <ueno@gnu.org>

	xgettext: Support message syntax checks
	With this change, xgettext could report common syntactic problems
	in extracted strings.  The current built-in checks are
	ellipsis-unicode, space-ellipsis, and quote-unicode.  Those checks
	can be enabled with --check option of xgettext and disabled with
	special "xgettext:" comment in source files.
	Feature suggested by Philip Withnall in:
	https://savannah.gnu.org/bugs/?44098
	* message.h (enum syntax_check_type): New enum.
	(NSYNTAXCHECKS): New constant.
	(enum is_syntax_check): New enum.
	(struct message_ty): New field 'do_syntax_check'.
	(syntax_check_name): New variable declaration.
	* message.c (syntax_check_name): New variable.
	* msgl-cat.c (catenate_msgdomain_list): Propagate
	mp->do_syntax_check.
	* msgmerge.c (message_merge): Propagate ref->do_syntax_check.
	* msgl-check.h (syntax_check_message_list): New declaration.
	* msgl-check.c (syntax_check_ellipsis_unicode): New function.
	(syntax_check_space_ellipsis): New function.
	(syntax_check_quote_unicode): New function.
	(syntax_check_message): New function.
	(syntax_check_message_list): New function.
	* read-catalog-abstract.h (po_parse_comment_special): Adjust
	function declaration.
	* read-catalog-abstract.c (po_parse_comment_special): Add new
	argument SCP for syntax checking; all callers changed.
	* read-catalog.h (DEFAULT_CATALOG_READER_TY): New field
	'do_syntax_check'.
	* read-catalog.c (default_constructor): Initialize
	this->do_syntax_check.
	(default_copy_comment_state): Propagate this->do_syntax_check.
	* sentence.h: New file.
	* sentence.c: New file.
	* xgettext.c (long_options): Add options --check and --sentence-end.
	(main): Handle options --check and --sentence-end.
	(usage): Document options --check and --sentence-end.
	(remember_a_message): Propagate do_syntax_check value.

2015-02-05  Alex Henrie  <alexhenrie24@gmail.com>  (tiny change)

	xgettext: Wrap location comments to 79 characters
	Previously, messages were wrapped to 79 characters, but location
	comments were wrapped to 78 characters.
	* write-po.c (message_print_comment_filepos): Fix off-by-one in
	calculating line-wrapping width of location comment.

2015-02-03  Daiki Ueno  <ueno@gnu.org>

	msgfilter: Factor out quoted string handling
	For later use in xgettext, separate out the scanner part in
	filter-quote.c into a separate file.  See:
	<https://savannah.gnu.org/bugs/?44098>.
	* quote.h: New file split from filter-quote.c.
	* filter-quote.c: Include "quote.h".
	(convert_quote_callback): New function.
	(convert_ascii_quote_to_unicode): Use scan_quoted from quote.h.
	* Makefile.am (libgettextsrc_la_SOURCES): Add quote.h.

2015-01-29  Daiki Ueno  <ueno@gnu.org>

	msgexec: Add --newline option
	See the commit 96dde0b for the rationale.
	* msgexec.c (newline): New variable.
	(long_options): Add --newline option.
	(main): Handle --newline option.
	(usage): Document --newline option.
	(process_string): Handle --newline option.

2015-01-28  Daiki Ueno  <ueno@gnu.org>

	msgfilter: Add --newline option
	The filter program was supposed to handle translation without a
	newline character at the end of line.  This was causing
	portability problems with standard text processing programs on
	some platforms (BSD sed, for instance) and not friendly towards
	POSIX, where a "text file" is required to have an ending newline.
	The new --newline option controls the behavior.  If it is given,
	both filter input and output are assumed to end with a newline
	character.
	* msgfilter.c (newline): New variable.
	(long_options): Add --newline option.
	(main): Handle --newline option.
	(usage): Document --newline option.
	(process_string_with_newline): New function which wraps
	process_string.
	(process_message): Use process_string_with_newline instead of
	process_string if --newline is specified.

2015-01-24  Daiki Ueno  <ueno@gnu.org>

	xgettext, msgmerge: Avoid undefined non-null argument behavior
	* xgettext.c (remember_a_message): Building with gcc's
	-fsanitize=undefined and running tests triggered:
	  xgettext.c:2425:17: runtime error: null pointer passed as argument \
	    2, which is declared to never be null
	Adjust the argument of strncmp to never be null.
	* msgmerge.c (message_merge): Likewise for memcpy.

2015-01-23  Daiki Ueno  <ueno@gnu.org>

	build: Fix parallel build from git checkout
	Since po-gram-gen2.h depends on po-gram-gen.h, an explicit
	dependency on the YACC rule is needed for parallel compilation.
	* Makefile.am (po-gram-gen.h): Depend on po-gram-gen.c.

2015-01-16  Daiki Ueno  <ueno@gnu.org>

	desktop: Avoid useless warning for group header
	Reported by Marek Černocký at:
	<https://savannah.gnu.org/bugs/?44005>
	* read-desktop.c (desktop_lex): Fix "invalid non-blank
	character" check after reading a group header.

2015-01-13  Daiki Ueno  <ueno@gnu.org>

	* x-c.c (phase5_get): Reset raw_expected at the beginning of the
	function.

2015-01-13  Daiki Ueno  <ueno@gnu.org>

	c++: Make C++11 raw string recognition stricter
	Reported by Vaclav Slavik at:
	<http://savannah.gnu.org/bugs/?43970>.
	* x-c.c (struct token_ty): New field 'escape'.
	(struct xgettext_token_ty): New field 'escape'.
	(phase5_get): Recognize raw strings more strictly.  Set 'escape'
	field of token appropriately for string literals.
	(extract_parenthesized): Respect 'escape' field of token.

2015-01-13  Daiki Ueno  <ueno@gnu.org>

	c++: Differentiate scanning logic from C
	To enable raw string literals only in C++, add a flag indicating
	the current source language is C++.
	Suggested by Vaclav Slavik at:
	<https://savannah.gnu.org/bugs/?43970>.
	* x-c.h (extract_cxx): New declaration.
	(SCANNERS_C): Use extract_cxx for "C++".
	* x-c.c (cxx_extensions): New variable.
	(phase5_get): Respect cxx_extensions and recognize raw string
	literals only when it is set.
	(extract_cxx): New function.
	(extract_c, extract_objc): Reset cxx_extensions.

2014-12-24  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19.4 released.

2014-12-18  Daiki Ueno  <ueno@gnu.org>

	* x-sh.c (read_word): Use phase1 instead of phase2 for Bash ANSI-C
	escape sequences.  Also handle '\"' and '\E'.

2014-12-17  Daiki Ueno  <ueno@gnu.org>

	* x-sh.c (phase2_getc): Fix typo: debackslahificication ->
	debackslashification.

2014-12-12  Daiki Ueno  <ueno@gnu.org>

	* read-desktop.c (desktop_parse): Check and ignore
	token_type_other.

2014-12-12  Daiki Ueno  <ueno@gnu.org>

	* format-lisp.c (make_intersected_list): Don't dereference
	potentially released memory.  'append_repeated_to_initial' may
	release the LIST->element.  Spotted by clang-analyzer.
	* format-scheme.c (make_intersected_list): Likewise.

2014-12-10  Daiki Ueno  <ueno@gnu.org>

	* msgl-check.c (check_header_entry): Don't declare unused variable
	'nrequiredfields'.

2014-12-09  Daiki Ueno  <ueno@gnu.org>

	* xgettext.c (arglist_parser_done): Avoid potential
	null-dereference.  Spotted by clang-analyzer.

2014-12-09  Daiki Ueno  <ueno@gnu.org>

	* msgfmt.c (msgfmt_desktop_bulk): Don't dereference potentially
	uninitialized value.  Spotted by clang-analyzer.

2014-12-09  Daiki Ueno  <ueno@gnu.org>

	* x-vala.c (phase3_get): Factor out the buffer allocation as a
	macro.

2014-12-09  Daiki Ueno  <ueno@gnu.org>

	* read-desktop.c (desktop_lex): Undef the APPEND macro before
	defining.

2014-12-09  Daiki Ueno  <ueno@gnu.org>

	desktop: Simplify the parsing logic
	* read-desktop.h (desktop_reader_class_ty): Rename 'handle_text'
	to 'handle_blank'.
	(desktop_reader_handle_blank): Rename from
	'desktop_reader_handle_text'.
	* read-desktop.c (SIZEOF): New macro.
	(desktop_reader_handle_blank): Rename from
	'desktop_reader_handle_blank'.
	(read_until_newline, read_group_name, read_key_name): Remove.
	Merge into...
	(desktop_lex): ...here.
	(desktop_parse): Call 'desktop_lex' instead of read_*.  Don't
	normalize whitespaces.
	(enum token_type_ty): New enum.
	(struct token_ty): New struct.
	(free_token): New function.
	* write-desktop.c (msgfmt_desktop_handle_blank): Rename from
	'msgfmt_desktop_handle_text'.
	* x-desktop.c: Include "c-ctype.h".
	(extract_desktop_handle_comment): Normalize whitespaces here.
	(extract_desktop_handle_blank): Rename from
	'extract_desktop_handle_text'.

2014-12-07  Daiki Ueno  <ueno@gnu.org>

	vala: Make regex literal handling robuster
	* x-vala.c (token_type_ty): New enumeration values
	'token_type_arithmetic_operator' and 'token_type_question'.
	Remove 'token_type_minus'.
	(phase3_get): Rewrite regex literal handling right after
	arithmetic assignment operators.

2014-12-05  Daiki Ueno  <ueno@gnu.org>

	msgunfmt: Avoid integer overflow using xsize
	* read-mo.c (get_uint32, get_sysdep_string): Use xsum to avoid
	integer overflow, when checking length and offset fields.
	Reported by Jakub Wilk at:
	<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772088>.

2014-12-04  Daiki Ueno  <ueno@gnu.org>

	libgettextsrc: Follow plural.c -> pluralx.c file name change
	* plural-exp.c: Include "../intl/pluralx.c" instead of
	"../intl/plural.c".  Adjust to commit d2d04ba9.

2014-12-03  Daiki Ueno  <ueno@gnu.org>

	intl: Work around LCOV relative base directory resolution
	* plural-exp.c: Include "../intl/plural.c" instead of
	"../../gettext-runtime/intl/plural.c".

2014-12-02  Daiki Ueno  <ueno@gnu.org>

	c: Minor cleanup of the previous commit
	* x-c.c (phase5_get): Remove redundant check of is_prefix; fit
	lines to 80 column.

2014-12-02  Daiki Ueno  <ueno@gnu.org>

	c: Support C++11 string literals
	* x-c.c (phase5_get): Recognize C++ string literals, defined in
	ISO/IEC 9899:2011.  Reported at:
	<https://savannah.gnu.org/bugs/?39499>.

2014-12-01  Daiki Ueno  <ueno@gnu.org>

	c#: Recognize Unicode surrogate character pair
	* x-csharp.c (accumulate_escaped): Change the first argument type
	from 'struct string_buffer *' to 'struct mixed_string_buffer *',
	for Unicode surrogate character pair handling; all callers
	changed.  Reported by Petr Kadlec at:
	<https://savannah.gnu.org/bugs/?32505>.

2014-11-28  Daiki Ueno  <ueno@gnu.org>

	* msgfilter.c (prepare_read): Simplify the last commit 06e206f5,
	by always adding 1 to the buffer size.

2014-11-28  Daiki Ueno  <ueno@gnu.org>

	msgfilter: Fix read buffer allocation for empty input
	* msgfilter.c (prepare_read): Increase allocated buffer size even
	if the original size is < 2.
	Reported by Robin McCorkell at:
	<https://savannah.gnu.org/bugs/?43720>.

2014-11-27  Daiki Ueno  <ueno@gnu.org>

	javascript: Simplify Unicode character escape handling
	ECMA-262 only supports "\uXXXX" style Unicode character escape and
	we don't need extra space for character names.
	* x-javascript.c: Don't include "uniname.h".
	(phase2_pushback): Decrease to 5.  Don't refer to UNINAME_MAX.

2014-11-18  Daiki Ueno  <ueno@gnu.org>

	* read-mo.c: Include "xsize.h".
	(get_string): Use xsum3 to avoid overflow, when checking length
	and offset fields.
	Reported by Jakub Wilk at:
	<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=769901>.

2014-10-28  Daiki Ueno  <ueno@gnu.org>

	xgettext: Allow plural extraction from a single argument function
	The commit 8137d2b4 was a wrong fix since both singular/plural msgids
	may point to the same address for Qt4 plural forms.  This reverts
	the commit and fix the original double-free problem in the right
	way.  Thanks to Jesper Fehrlund for suggestions.
	* xgettext.c (arglist_parser_remember_literal): Don't ignore
	plural argument even if ARGNUM1 equals to ARGNUM2.
	(arglist_parser_done): Make a copy of best_cp->msgid_plural when
	passing it to remember_a_message_plural, if it equals to
	best_cp->msgid.  Also move code conversion logic earlier taking
	into account of the ownership transfer of best_cp->msgid.

2014-10-28  Daiki Ueno  <ueno@gnu.org>

	xgettext: Fix double-free in singular/plural argument extraction
	After commit 6aa7b7ed in 2009, xgettext assumed that ARGNUM1 and
	ARGNUM2 of -k are different.  That could cause an double-free in
	exceptional cases.
	Reported by Johan Liljegren in:
	<https://lists.gnu.org/archive/html/bug-gettext/2014-10/msg00028.html>.
	* xgettext.c (arglist_parser_remember_literal): Don't assume that
	ARGNUM1 and ARGNUM2 are different.

2014-10-15  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19.3 released.

2014-10-08  Daiki Ueno  <ueno@gnu.org>

	* write-po.c (wrap): Report error on incomplete multibyte sequence
	at the end of input bytes.
	Reported by Jakub Wilk at:
	<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763820>.

2014-09-30  Daiki Ueno  <ueno@gnu.org>

	* x-c.c (literalstring_parse): Fix octal character escape handling.
	Reported by Kjartan Maraas at:
	<https://bugzilla.redhat.com/show_bug.cgi?id=1147535>.

2014-09-24  Daiki Ueno  <ueno@gnu.org>

	* x-python.c (x_python_lex): Move 'token3' variable declaration
	out of the internal block.

2014-09-24  Daiki Ueno  <ueno@gnu.org>

	* filter-quote.c (BOLD_START, BOLD_END): Don't use non-portable
	character escape "\e".

2014-08-28  Jonas 'Sortie' Termansen <sortie@maxsi.org>  (tiny change)

	* msginit.c: Include <stdint.h>.
	(get_user_pwd): Cast uid_t value into uintmax_t and print it with
	'%ju' format directive.

2014-08-27  Jonas 'Sortie' Termansen <sortie@maxsi.org>  (tiny change)

	* msgfilter.c (process_message): Use proper format directive for
	printing size_t.
	* msgexec.c (process_message): Likewise.

2014-08-27  Jonas 'Sortie' Termansen <sortie@maxsi.org>  (tiny change)

	* hostname.c: Add guard around #include <sys/param.h>.

2014-07-14  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19.2 released.

2014-07-14  Daiki Ueno  <ueno@gnu.org>

	vala: Fix empty string literal handling
	Similar to the commit 7b2d8d61 on July 11.
	* x-vala.c (phase3_get): Add missing memory allocation for empty
	string literal.

2014-07-14  Daiki Ueno  <ueno@gnu.org>

	build: Fix race in post-install removal of *.a
	There was an implicit dependency between the prerequisites of
	install-exec-local, which may have caused error with make -jN.
	Use install-exec-hook to remove the dependency.
	Reported by Christian Weisgerber in:
	<https://lists.gnu.org/archive/html/bug-gettext/2014-07/msg00008.html>.
	* Makefile.am (install-exec-local): Remove.
	(install-exec-hook): New rule, depend on install-exec-clean.

2014-07-11  Daiki Ueno  <ueno@gnu.org>

	c: Fix empty string literal handling
	Problem reported by Bernhard Voelker in:
	<http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00059.html>.
	* x-c.c (phase5_get): Add missing memory allocation for empty
	string literal.

2014-06-10  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19.1 released.

2014-06-09  Daiki Ueno  <ueno@gnu.org>

	msgmerge: Disable --color option in --update mode
	Suggested by 林Ｖ字龍 at:
	<https://lists.gnu.org/archive/html/bug-gettext/2014-06/msg00017.html>.
	* msgmerge.c (main): Error out when --color and --update are
	specified at the same time.

2014-06-07  Daiki Ueno  <ueno@gnu.org>

	xgettext: Fix misrecognition of character literals in C and Vala
	Problem reported by Paul Eggert at
	<http://lists.gnu.org/archive/html/bug-gettext/2014-06/msg00015.html>.
	* x-c.c (phase5_get): Make sure to skip contents of character constant.
	* x-vala.c (phase3_get): Likewise.

2014-06-03  Daiki Ueno  <ueno@gnu.org>

	desktop: Use logical filename as msgid location
	* read-desktop.c (desktop_parse): Pass logical filename instead of
	real filename to desktop_reader_handle_pair.

2014-06-03  Daiki Ueno  <ueno@gnu.org>

	desktop: Read LINGUAS file even if LINGUAS envvar is set
	* msgfmt.c (get_languages): If the LINGUAS envvar is set, use it
	to restrict the languages list read from the LINGUAS file, not to
	extend the list.
	(add_languages): Take an optional DESIRED_LANGUAGES argument.

2014-06-03  Daiki Ueno  <ueno@gnu.org>

	vala: Don't elide comments while parsing string literal
	* x-vala.c (phase3_get): Use phase1_getc to read characters inside
	a string literal.

2014-06-02  Daiki Ueno  <ueno@gnu.org>

	msgl-check: Treat missing header errors as warnings
	Problem reported by Richard Hughes at
	<https://lists.fedoraproject.org/pipermail/devel/2014-June/199539.html>.
	After <https://savannah.gnu.org/bugs/?40262>, "msgfmt -c" reports
	error on missing PO headers.  However, it turned out to be too strict
	for the projects using Launchpad Translations.  Let's relax the check
	for the moment and wait for one or two release cycles.
	* msgl-check.c (check_header_entry): Report missing
	required headers as warning, instead of error.

2014-06-02  Daiki Ueno  <ueno@gnu.org>

	* gettext 0.19 released.

2014-05-31  Daiki Ueno  <ueno@gnu.org>

	msgexec: Pass previous msgid to the child process
	Suggested by Pavel Kharitonov in:
	<http://lists.gnu.org/archive/html/bug-gettext/2014-05/msg00022.html>.
	* msgexec.c (process_string): Set MSGEXEC_PREV_* envvar.

2014-05-31  Daiki Ueno  <ueno@gnu.org>

	msgfilter: Pass previous msgid to the child process
	Suggested by Pavel Kharitonov in:
	<http://lists.gnu.org/archive/html/bug-gettext/2014-05/msg00022.html>.
	* msgfilter.c (process_message): Set MSGFILTER_PREV_* envvar.

2014-05-19  Daiki Ueno  <ueno@gnu.org>

	* Makefile.am (po-gram-gen2.h): Adjust the directory to which
	po-gram-gen.h, for VPATH build.

2014-05-15  Stanislav Brabec  <sbrabec@suse.cz>  (tiny change)

	msgfilter: Implement plural support
	* msgfilter.c (process_message): Set or unset
	MSGFILTER_MSGID_PLURAL and MSGFILTER_PLURAL_FORM.

2014-05-15  Stanislav Brabec  <sbrabec@suse.cz>  (tiny change)

	msgexec: Implement plural support
	* msgexec.c (process_string): Set or unset MSGEXEC_MSGID_PLURAL.
	(process_message): Set or unset MSGEXEC_PLURAL_FORM.

2014-05-14  Daiki Ueno  <ueno@gnu.org>

	msgfmt: Report error on accelerator mismatch
	* msgl-check.c (check_pair): Increment error count on missing
	accelerator character or too many accelerators.

2014-05-13  Daiki Ueno  <ueno@gnu.org>

	msgfmt: Accumulate errors when parsing the PO header
	Problem reported by Peter Eisentraut at
	<https://savannah.gnu.org/bugs/?40262>.
	* msgl-check.c (check_header_entry): Return the number of errors.
	(check_message): Check the return value of check_header_entry.

2014-05-13  Felipe Sateler <fsateler@debian.org>  (tiny change)

	project-id: Add missing quotes around `pwd` for basename
	Problem reported at <http://bugs.debian.org/654779>.
	* project-id: Quote argument of the basename command.

2014-05-12  Daiki Ueno  <ueno@gnu.org>

	msgfilter: Fix quote handling of doubled grave charaters
	* filter-quote.c (convert_ascii_quote_to_unicode): Fix handling of
	doubled grave characters.

2014-05-12  Daiki Ueno  <ueno@gnu.org>

	* msgfmt.c (add_languages): New function split from get_languages.
	(get_languages): Use add_languages instead of manually parsing
	LINGUAS envvar with strtok_r.

	* x-c.h (literalstring_c): Remove unnecessary DLL_VARIABLE.
	* xgettext.c (arglist_parser_alloc): Use LET_NONE instead of 0.
	(arglist_parser_remember): Likewise.
	* xgettext.h (enum literalstring_escape_type): New enum value
	LET_NONE.

2014-05-10  Guido Flohr  <guido@imperia.net>

	msgattrib: Add --empty option to clear msgstr
	* msgattrib.c (REMOVE_TRANSLATION): New enum value.
	(long_options): Add --empty.
	(main): Set REMOVE_TRANSLATION flag when --empty is given.
	(usage): Show help of --empty.
	(process_message_list): Handle REMOVE_TRANSLATION flag.

2014-05-09  Daiki Ueno  <ueno@gnu.org>

	vala: Interpret string literals lazily
	* x-vala.c (P7_EOF, P7_STRING_END, P7_QUOTES, P7_QUOTE, P7_NEWLINE)
	(UNICODE, IS_UNICODE, UNICODE_VALUE): Remove.
	(phase7_getc): Remove.
	(phase7_ungetc): Remove.
	(phase3_get): Use 'phase2_get' directly to extract string
	literals; use 'arglist_parser_remember_literal' instead of
	'arglist_parser_remember'.
	(literalstring_c): Declare external variable.
	(extract_balanced): Remove the
	'xgettext_current_source_encoding' setting to prevent encoding
	conversion around 'arglist_parser_done'.
	(token_ty): New field 'escape'.
	* x-vala.h (SCANNERS_VALA): Register 'literalstring_c' as a
	literalstring_parser.

2014-05-09  Daiki Ueno  <ueno@gnu.org>

	c: Interpret string literals lazily
	* x-c.c (P7_EOF, P7_STRING_END, P7_QUOTES, P7_QUOTE, P7_NEWLINE)
	(UNICODE, IS_UNICODE, UNICODE_VALUE): Remove.
	(phase7_get): Remove.
	(phase7_ungetc): Remove.
	(phase5_get): Use 'phase3_get' directly to extract string
	literals; use 'arglist_parser_remember_literal' instead of
	'arglist_parser_remember'.
	(literalstring_parse): New function.
	(literalstring_c): New variable.
	(extract_parenthesized): Remove the
	'xgettext_current_source_encoding' setting to prevent encoding
	conversion around 'arglist_parser_done'.
	* x-c.h (SCANNERS_C): Register 'literalstring_c' as a
	literalstring_parser.
	(literalstring_c): New variable declaration.

2014-05-09  Daiki Ueno  <ueno@gnu.org>

	xgettext: Provide a way to interpret string literals lazily
	* xgettext.c (extract_ty): New field 'literalstring_parser'.
	(current_literalstring_parser): New variable.
	(extract_from_file): Set 'current_literalstring_parser'.
	(savable_comment_convert_encoding): New function.
	(arglist_parser_remember_literal): New function.
	(arglist_parser_remember): Call 'arglist_parser_remember_literal'.
	(arglist_parser_done): Call literalstring_parser on msgctxt,
	msgid, and msgid_plural before calling 'remember_a_message';
	convert encoding of msgid_comment.
	* x-*.h: Register 'literalstring_parser' through SCANNER_*.
	* xgettext.h (enum literalstring_escape_type): New enum.
	(struct literalstring_parser): New struct.
	(struct partial_call): New fields 'msgctxt_escape',
	'msgid_escape', and 'msgid_plural_escape'.
	(arglist_parser_remember_literal): New function declaration.
	(savable_comment_convert_encoding): New function declaration.

2014-05-03  Daiki Ueno  <ueno@gnu.org>

	xgettext: Recognize prefixed comment tag
	Reported by Jiang Xin in
	<http://article.gmane.org/gmane.comp.version-control.git/246462>.
	* xgettext.c (remember_a_message): Discard a string prefixed to
	the comment tag from all remaining comment lines.

2014-05-03  Daiki Ueno  <ueno@gnu.org>

	c: Support C99-style Unicode character escapes
	* x-c.c: Include assert.h and po-charset.h.
	(P7_QUOTES, P7_QUOTE, P7_NEWLINE): Redefine as a negative integer.
	(P7_EOF, P7_STRING_END): New definitions.
	(UNICODE): New macro.
	(IS_UNICODE): New macro.
	(UNICODE_VALUE): New macro.
	(phase7_getc): Recognize "\unnnn" and "\Unnnnnnnn".
	(phase5_get): Use mixed_string_buffer for parse string literal.

2014-05-02  Daiki Ueno  <ueno@gnu.org>

	vala: Support C99-style Unicode character escapes
	* x-vala.c: Include assert.h and po-charset.h.
	(P7_QUOTES, P7_QUOTE, P7_NEWLINE): Redefine as a negative integer.
	(P7_EOF, P7_STRING_END): New definitions.
	(UNICODE): New macro.
	(IS_UNICODE): New macro.
	(UNICODE_VALUE): New macro.
	(phase7_getc): Recognize "\unnnn" and "\Unnnnnnnn".
	(phase3_get): Use mixed_string_buffer for parse string literal.

2014-05-02  Daiki Ueno  <ueno@gnu.org>

	xgettext: Factor out commonly used mixed_string_buffer
	* x-python.c (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): Move to...
	* xgettext.c: ...here.
	(mixed_string_buffer_alloc): Rename from init_mixed_string_buffer.
	(mixed_string_buffer_append_to_curr_buffer): Rename from
	mixed_string_buffer_append_byte.
	(mixed_string_buffer_append_to_utf8_buffer): Rename from
	mixed_string_buffer_append_unicode.
	(mixed_string_buffer_grow_utf8_buffer): Rename from
	mixed_string_buffer_append_unicode_grow.
	(mixed_string_buffer_append_char): Split from
	mixed_string_buffer_append.
	(mixed_string_buffer_append_unicode): Split from
	mixed_string_buffer_append.
	(mixed_string_buffer_done): New function merging
	mixed_string_buffer_result and free_mixed_string_buffer.
	* xgettext.h (mixed_string_buffer): New struct moved from
	x-python.c; add logical_file_name and line_number fields.
	(mixed_string_buffer_alloc): New function declaration.
	(mixed_string_buffer_append_char): New function declaration.
	(mixed_string_buffer_append_unicode): New function declaration.
	(mixed_string_buffer_done): New function declaration.
	* x-javascript.c (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): Remove.

2014-04-30  Daiki Ueno  <ueno@gnu.org>

	scheme: Recognize GIMP script-fu extension _"abc"
	* x-scheme.c (read_object): Recognize _"abc".

2014-04-30  Daiki Ueno  <ueno@gnu.org>

	format-python-brace: Limit acceptable format specifiers
	Problem reported by Kovid Goyal at:
	<https://savannah.gnu.org/bugs/?41668>.
	* format-python-brace.c (parse_directive): Only recognize a single
	nested format directive or the standard format specifiers as
	format specifiers.

2014-04-22  Roumen Petrov  <bugtrack@roumenpetrov.info>  (tiny change)

	build: Use Automake 'subdir-objects' option
	* Makefile.am (AUTOMAKE_OPTIONS): Add 'subdir-objects'.

2014-04-21  Daiki Ueno  <ueno@gnu.org>

	msgfilter: Fix single quote handling in the quot filter
	* filter-quote.c (convert_ascii_quote_to_unicode): Fix single
	quote handling to accept multiple quotations in a string.

2014-04-17  Daiki Ueno  <ueno@gnu.org>

	xgettext: Strip multiple ".in" suffixes from the file name.
	* xgettext.c (main): Strip multiple ".in" suffixes.

2014-04-16  Daiki Ueno  <ueno@gnu.org>

	* msgfmt.c (get_languages): Allow any whitespace character as a
	list separator in LINGUAS.

2014-04-15  Daiki Ueno  <ueno@gnu.org>

	msgfilter: Add 'quot' and 'boldquot' built-in filters
	* filter-quote.c: New file.
	* filters.h (ascii_quote_to_unicode, ascii_quote_to_unicode_bold):
	New function declaration.
	* msgfilter.c (main): Handle 'quot' and 'boldquot' filters.
	* Makefile.am (msgfilter_SOURCES): Add filter-quote.c.

2014-04-04  Daiki Ueno  <ueno@gnu.org>

	* xgettext.c (main): Warn user if invalid encoding name is
	specified with the --from-code option.
	Reported by jaroslav.fojtik@evolvsys.cz in
	<https://lists.gnu.org/archive/html/bug-gettext/2014-03/msg00034.html>.

2014-04-04  Daiki Ueno  <ueno@gnu.org>

	msgfmt: Add support for Desktop Entry files
	* write-desktop.h: New file.
	* write-desktop.c: New file.
	* msgfmt.c (desktop_mode, desktop_locale_name)
	(desktop_template_name, desktop_base_directory, desktop_keywords)
	(desktop_default_keywords): New variables.
	(long_options): Add --desktop and --template options for Desktop
	Entry mode.
	(get_languages): New function.
	(msgfmt_desktop_bulk): New function which implements bulk
	operation mode for Desktop Entry mode.
	(main): Handle Desktop Entry mode options; call
	'msgfmt_desktop_bulk' if -d option is seen.
	* Makefile.am (noinst_HEADERS): Add write-desktop.h.
	(msgfmt_SOURCES): Add write-desktop.c

2014-04-04  Daiki Ueno  <ueno@gnu.org>

	xgettext: Add support for Desktop Entry files
	* read-desktop.h: New file.
	* read-desktop.c: New file.
	* x-desktop.h: New file.
	* x-desktop.h: New file.
	* xgettext.c (main): Regiser keywords for Desktop Entry mode.
	(usage): Mention Desktop Entry source language.
	(language_to_extractor): Add Desktop Entry rule.
	(extension_to_language): Add Desktop Entry rule.
	* Makefile.am (noinst_HEADERS): Add read-desktop.h and x-desktop.h.
	(xgettext_SOURCES): Add x-desktop.c.

2014-03-26  Aurélien Gâteau <mail@agateau.com>  (tiny change)

	msgfmt: Add --source option to generate .java file instead of .class
	* msgfmt.c (java_output_source): New variable.
	(long_options, main, usage): Add --source option.
	* write-java.h (msgdomain_write_java): Add OUTPUT_SOURCE argument.
	* write-java.c (msgdomain_write_java): Generate .java file instead
	of .class if OUTPUT_SOURCE argument is given.
	Reported at <https://savannah.gnu.org/bugs/?41766>.

2014-03-25  Daiki Ueno  <ueno@gnu.org>

	Extend --add-location option to suppress line number output
	The --add-location option of msgattrib, msgcat, msgcomm, msgconv,
	msgen, msgfilter, msggrep, msgmerge, msguniq, and xgettext
	commands now got new semantics.  It takes an optional argument
	'never', 'full', or 'file', to control the format of "#: ..."
	comments.
	The default catalog reader changed to always remember file
	positions so the line number part can be suppressed in output
	phase rather than input phase.
	Feature requested in:
	<https://lists.gnu.org/archive/html/bug-gettext/2013-08/msg00039.html>.
	* read-catalog.h (line_comment): Abolish.
	(DEFAULT_CATALOG_READER_TY): Remove handle_filepos_comments field.
	* read-catalog.c (line_comment): Abolish.
	(default_destructor, default_copy_comment_state)
	(default_reset_comment_state, default_comment_filepos): Always
	remember filepos.
	(default_parse_brief, read_catalog_stream): Adjust to the change.
	* write-po.h (enum filepos_comment_type): New enum.
	(message_print_style_filepos): New function declaration.
	(handle_filepos_comment_option): New function declaration.
	* write-po.c (message_print_style_filepos): New function
	(handle_filepos_comment_option): New function.
	(message_print_comment_filepos): Uniquify mp->filepos elements
	ignoring line number if filepos_comment_type is
	filepos_comment_file.
	* msgfmt.c: Adjust to the change.
	* msgattrib.c (long_options, main): Allow --add-location option to
	take an optional format specifier.
	* msgcat.c (long_options, main): Likewise.
	* msgcomm.c (long_options, main): Likewise.
	* msguniq.c (long_options, main): Likewise.
	* xgettext.c (long_options, main): Likewise.
	* msgconv.c (long_options, main): Likewise; add a new option -n as
	an alias of --add-location.
	* msgen.c (long_options, main): Likewise.
	* msgfilter.c (long_options, main): Likewise.
	* msggrep.c (long_options, main): Likewise.
	* msgmerge.c (long_options, main): Likewise.

2014-03-12  Daiki Ueno  <ueno@gnu.org>

	xgettext: Fix infloop on loading Glade files with non-DL expat
	* libexpat-compat.c: Keep the references to
	XML_GetCurrent{Line,Column}Number symbols before including
	libexpat-compat.h, since they are redefined.

2014-03-10  Daiki Ueno  <ueno@gnu.org>

	php: Recognize single and double quotes around heredoc label
	Problem reported by Byrial Jensen in:
	<https://lists.gnu.org/archive/html/bug-gettext/2012-04/msg00001.html>.
	Based on the patch by Andreas Stricker posted as:
	<https://lists.gnu.org/archive/html/bug-gettext/2012-04/msg00002.html>.
	* x-php.c (phase4_get): Strip quotes around heredoc label.

2013-11-20  Daiki Ueno  <ueno@gnu.org>

	xgettext: Add E4X support to JavaScript scanner
	Reported by Piotr Drąg at: <https://savannah.gnu.org/bugs/?40125>.
	* xgettext.h (enum lexical_context_ty): New enumeration items
	lc_xml_open_tag, lc_xml_close_tag, lc_xml_content.
	* x-javascript.c (phase5_scan_xml_markup): New function.
	(phase5_get): Handle '<', '>', '/', '=', '{', and '}' specially
	to support E4X.
	(enum token_type_ty): New enumeration item token_type_equal.
	(xml_element_depth): New variable.
	(inside_embedded_in_xml): New variable.
	(extract_javascript): Initialize those variables.

2013-11-14  Daiki Ueno  <ueno@gnu.org>

	* x-javascript.c (phase3_getc): Make sure to call comment_line_end
	after parsing C++ style comment line.
	Reported by Illimar Tambek at: <http://savannah.gnu.org/bugs/?40572>.

2013-11-14  Daiki Ueno  <ueno@gnu.org>

	* x-javascript.c (comment_line_end): Add missing chars_to_remove
	argument; all callers changed.
	Reported by Illimar Tambek at: <http://savannah.gnu.org/bugs/?40573>.

2013-11-11  Daiki Ueno  <ueno@gnu.org>

	* x-c.c (phase5_get): Fix misuse of a logical operator.
	* x-perl.c (extract_quotelike_pass3): Likewise.
	* x-vala.c (phase3_get): Likewise.
	Reported by David Binderman at: <https://savannah.gnu.org/bugs/?40528>.

2013-10-23  Daiki Ueno  <ueno@gnu.org>

	* read-catalog-abstract.c (catalog_reader_parse): Clear
	error_message_count before parsing, rather than after.  The
	variable may be > 0 before calling the PO parser, when xgettext
	handles mutiple files.
	Problem reported by Emil Wojak in
	<https://lists.gnu.org/archive/html/bug-gettext/2013-10/msg00005.html>.

2013-10-15  Peter Eisentraut  <peter_e@gmx.net>  (tiny change)

	* msgl-check.c (check_header_entry): Adjust the default value of
	PO-Revision-Date to xgettext output.  Reported at
	<https://savannah.gnu.org/bugs/?40261>.

2013-08-29  Daiki Ueno  <ueno@gnu.org>

	* po-gram-gen.y (message): Free memory allocated for
	msgid_pluralform.
	(string_list): Free memory allocated for STRING.
	(prev_string_list): Free memory allocated for PREV_STRING.
	Reported by Alexander Potashev in
	<https://lists.gnu.org/archive/html/bug-gettext/2013-08/msg00043.html>.

2013-08-13  Miguel Angel Arruga Vivas  <rosen644835@gmail.com>

	* x-glade.c (start_element_glade1): Use extract_all variable.
	(start_element_glade2): Ignore --extract-all option.
	(start_element_gtkbuilder): Likewise.
	(start_element_handler): Initialize p->extract_string to false.

2013-08-12  Daiki Ueno  <ueno@gnu.org>

	* xgettext.c (remember_a_message): Handle multi-line extracted
	comments.
	Reported by Gabor Kelemen in
	<http://lists.gnu.org/archive/html/bug-gettext/2013-08/msg00026.html>.

2013-08-09  Daiki Ueno  <ueno@gnu.org>

	* x-gsettings.c (extract_gsettings): Add guard when expat is not
	available at compile time.

2013-08-08  Miguel Angel Arruga Vivas  <rosen644835@gmail.com> (tiny change)

	Fix copyright year in xgettext version string.
	* xgettext.c (main): Update copyright year.

2013-08-06  Daiki Ueno  <ueno@gnu.org>

	xgettext: add support for GSettings schema file
	* x-gsettings.h: New file.
	* x-gsettings.c: New file.
	* xgettext.c: Include x-gsettings.h.
	(flag_table_vala): New variable.
	(usage): Mention GSettings source language.
	(language_to_extractor): Add GSettings rule.
	(extension_to_language): Add GSettings rule.
	* Makefile.am (noinst_HEADERS): Add x-gsettings.h.
	(xgettext_SOURCES): Add x-gsettings.c.
	* FILES: Update.

2013-08-05  Daiki Ueno  <ueno@gnu.org>

	* xgettext.c (main): Allow exntension with multiple
	dots. e.g. .gschema.xml.

2013-03-02  Miguel Angel Arruga Vivas  <rosen644385@gmail.com>

	Extract libexpat compatibility layer.
	* libexpat-compat.h, libexpat-compat.c: Extracted from x-glade.c
	* x-glade.c: Use libexpat-compat.h

2013-07-11  Daiki Ueno  <ueno@gnu.org>

	Fix crash when parsing '..' with non-string argument.
	Reported by Koen Dergent at <http://savannah.gnu.org/bugs/?39458>.
	* x-lua.c (extract_balanced): Skip stray '..'.

2013-06-27  Daiki Ueno  <ueno@gnu.org>

	* x-python.c (phase5_pushback): Increment size to 2.

2013-06-25  Daiki Ueno  <ueno@gnu.org>

	Fix handling of \u escape sequences in Tcl.
	* x-tcl.c (do_getc_escaped): Fix handling of \u.
	Reported by Guido Berhoerster in
	<https://lists.gnu.org/archive/html/bug-gettext/2013-06/msg00022.html>.

2013-06-17  Daiki Ueno  <ueno@gnu.org>

	* x-python.c (init_flag_table_python): Enable python-brace-format
	by default.

2013-06-17  Daiki Ueno  <ueno@gnu.org>

	* x-glade.c (start_element_null): New function.
	(end_element_null): New function.
	(element_parser_null): New variable.
	(start_element_handler): Use element_parser_null if the top-level
	element does not indicate a valid Glade file.
	(do_extract_glade): Initialize element_parser to
	element_parser_null rather than NULL.

2013-06-13  Miguel Angel Arruga Vivas  <rosen644835@gmail.com>
            Daiki Ueno  <ueno@gnu.org>

	Support for GtkBuilder file format in the Glade scanner.
	* x-glade.h (EXTENSIONS_GLADE): Recognize .ui.
	* x-glade.c (element_parser): New struct.
	(start_element_glade1): New function split from start_element_handler.
	(end_element_glade1): New function split from end_element_handler.
	(start_element_glade2): New function split from start_element_handler.
	(end_element_glade2): New function split from end_element_handler.
	(start_element_gtkbuilder): New function.
	(end_element_gtkbuilder): New function.
	(element_parser_glade1): New variable.
	(element_parser_glade2): New variable.
	(element_parser_gtkbuilder): New variable.
	(start_element_handler): Delegate the actual parsing logic to
	specific element_parser.
	(end_element_handler): Likewise.
	Thanks to Miguel Ángel Arruga Vivas for the initial implementation
	and the discussion in
	<https://lists.gnu.org/archive/html/bug-gettext/2013-03/msg00074.html>
	footnote 2.

2013-06-10  Daiki Ueno  <ueno@gnu.org>

	* Makefile.am: Use $(MKDIR_P) instead of $(mkdir_p).
	Suggested by Stefano Lattarini in
	<https://lists.gnu.org/archive/html/bug-gettext/2013-04/msg00044.html>.

2013-06-04  Daiki Ueno  <ueno@gnu.org>

	Support for Vala.
	* x-vala.h: New file.
	* x-vala.c: New file.
	* xgettext.c: Include x-vala.h.
	(flag_table_vala): New variable.
	(main): Invoke init_flag_table_vala, x_vala_extract_all,
	x_vala_keyword.
	(usage): Mention Vala source language.
	(language_to_extractor): Add Vala rule.
	(extension_to_language): Add Vala rule.
	* Makefile.am (noinst_HEADERS): Add x-vala.h.
	(xgettext_SOURCES): Add x-vala.c.
	* FILES: Update.

2013-05-21  Daiki Ueno  <ueno@gnu.org>

	* x-javascript.c (phase7_getuc): Treat non-legitimate character
	escape sequences more strictly.

2013-05-20  Pavel Kharitonov  <ineiev@gnu.org>  (tiny change)

	Add --previous option to msgattrib.
	* msgattrib.c (long_options, main, process_message_list):
	(usage): Add --previous option.

2013-05-12  Daiki Ueno  <ueno@gnu.org>

	Fix end-of-string handling in JavaScript scanner.
	* x-javascript.c (phase7_getuc): Remove unused BACKSLASH_COUNTER
	argument; all callers changed.
	Reported by Andreas Stricker in
	<http://lists.gnu.org/archive/html/bug-gettext/2013-04/msg00051.html>.

2013-05-03  Daiki Ueno  <ueno@gnu.org>

	* user-email.sh.in (lowercase_sed): Don't use non-portable
	character escape in sed 's' command.
	Reported by Ben Fox-Moore in
	<http://lists.gnu.org/archive/html/bug-gettext/2013-05/msg00003.html>
	and thanks to Ineiev for the suggestion.

2013-04-26  Daiki Ueno  <ueno@gnu.org>

	Support for Python brace format.
	* message.h (format_type): New enum value 'format_python_brace.
	(NFORMATS): Increment.
	* message.c (format_language): Add format_python_brace entry.
	(format_language_pretty): Likewise.
	* format.h (formatstring_python_brace): New declaration.
	* format-python-brace.c: New file.
	* format.c (formatstring_parsers): Add formatstring_python_brace.
	* x-python.h (SCANNERS_PYTHON): Refar to formatstring_python_brace.
	* xgettext.c (xgettext_record_flag): Handle format_python_brace.
	* FILES: Update.

2013-04-22  Daiki Ueno  <ueno@gnu.org>

	Make msgfmt --check-header more reliable.
	* msgl-check.c (check_header_entry): Don't use c_strstr to parse
	message header.

2013-04-22  Daiki Ueno  <ueno@gnu.org>

	Support CR/LF line terminators in Python sources even on Unix.
	* x-python.c (phase0_getc, phase0_ungetc): New functions.
	(phase1_getc): Use them instead of calling getc/ungetc directly.

2013-04-22  Daiki Ueno  <ueno@gnu.org>

	Support explicit string concatenation in Python.
	* x-python.c (enum token_type_ty): New enumeration item
	token_type_plus.
	(free_token): New function.
	(phase5_get): Recognize token_type_plus.
	(x_python_lex): Handle string concatenation with '+'.
	(extract_balanced): Handle token_type_plus.

2013-04-18  Daiki Ueno  <ueno@gnu.org>

	* xgettext.c (usage): Wrap long lines in --help output.

2013-04-17  Andreas Stricker  <astricker@futurelab.ch>

	Support for JavaScript.
	* message.h (format_type): New enum value 'format_javascript'.
	(NFORMATS): Increment.
	* message.c (format_language): Add format_javascript entry.
	(format_language_pretty): Likewise.
	* format.h (formatstring_javascript): New declaration.
	* format-javascript.c: New file.
	* format.c (formatstring_parsers): Add formatstring_javascript.
	* x-javascript.h: New file.
	* x-javascript.c: New file.
	* xgettext.c: Include x-javascript.h.
	(flag_table_javascript): New variable.
	(main): Invoke init_flag_table_javascript, x_javascript_extract_all,
	x_javascript_keyword.
	(usage): Mention JavaScript source language.
	(xgettext_record_flag): Handle format_javascript.
	(language_to_extractor): Add JavaScript rule.
	(extension_to_language): Add JavaScript rule.
	* Makefile.am (noinst_HEADERS): Add x-javascript.h.
	(FORMAT_SOURCE): Add format-javascript.c.
	(xgettext_SOURCES): Add x-javascript.c.
	* FILES: Update.

2013-04-16  Ľubomír Remák  <lubomirr@lubomirr.eu>

	Support for escape sequences added in Lua 5.2.
	* x-lua.c (phase3_get): Add \x and \z escape sequences.

2013-04-11  Ľubomír Remák  <lubomirr@lubomirr.eu>

	Support for Lua.
	* message.h (format_type): New enum value 'format_lua'.
	(NFORMATS): Increment.
	* message.c (format_language): Add format_lua entry.
	(format_language_pretty): Likewise.
	* format.h (formatstring_lua): New declaration.
	* format-lua.c: New file.
	* format.c (formatstring_parsers): Add formatstring_lua.
	* x-lua.h: New file.
	* x-lua.c: New file.
	* xgettext.c: Include x-lua.h.
	(flag_table_lua): New variable.
	(main): Invoke init_flag_table_lua, x_lua_extract_all,
	x_lua_keyword.
	(usage): Mention Lua source language.
	(xgettext_record_flag): Handle format_lua.
	(language_to_extractor): Add Lua rule.
	(extension_to_language): Add Lua rule.
	* Makefile.am (noinst_HEADERS): Add x-lua.h.
	(FORMAT_SOURCE): Add format-lua.c.
	(xgettext_SOURCES): Add x-lua.c.
	* FILES: Update.

2013-03-15  Miguel Ángel Arruga Vivas  <rosen644835@gmail.com>
            Daiki Ueno  <ueno@gnu.org>

	Extract msgctxt from Glade input files.
	Reported at <https://savannah.gnu.org/bugs/?34506>
	* x-glade.c (struct element_state): Add field 'extract_context'.
	(start_element_handler): Check "context" attribute if the string
	contains msgctxt.
	(end_element_handler): Extract msgctxt if extract_context is set.

2013-02-25  Daiki Ueno  <ueno@gnu.org>

	* Makefile.am (libgettextsrc_la_CPPFLAGS): Define to specify Woe32
	DLL export flags.

2013-01-09  Andreas Stricker  <astricker@futurelab.ch>  (tiny change)

	* po-xerror.c: Include error.h for error_message_count.
	* read-catalog-abstract.c: Likewise.

2013-01-06  Daiki Ueno  <ueno@gnu.org>

	* msgl-fsearch.c (message_fuzzy_index_ty): Don't use float-derived
	integer SHORT_MSG_MAX to define array.
	(message_fuzzy_index_alloc): Allocate memory for 'short_messages'
	field dynamically.
	(message_fuzzy_index_free): Free it.

2013-01-03  Daiki Ueno  <ueno@gnu.org>

	* xgettext.c (construct_header): Fix memory leak.

2012-12-25  Daiki Ueno  <ueno@gnu.org>

	* gettext-0.18.2 released.

2012-06-03  Jim Meyering  <jim@meyering.net>

	* msginit.c: Spelling fixes.
	* write-catalog.c: Likewise.

2012-05-03  Bruno Haible  <bruno@clisp.org>

	Document msgfmt option --endianness.
	* msgfmt.c (usage): Document the option --endianness.
	Reported by Paul Martin <pm@debian.org> via
	Santiago Vila <sanvila@unex.es>.

2012-01-26  Bruno Haible  <bruno@clisp.org>

	Modernize quoting.
	* hostname.c (usage): Quote 'like this', not `like this', as per the
	recent change to the GNU coding standards.
	* 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, msgfmt_set_domain, msgfmt_frob_new_message):
	Likewise.
	* msggrep.c (usage): Likewise.
	* msginit.c (usage): Likewise.
	* msgl-cat.c (catenate_msgdomain_list): Likewise.
	* msgl-check.c (check_pair, check_header_entry): Likewise.
	* msgmerge.c (usage): Likewise.
	* msgunfmt.c (usage): Likewise.
	* msguniq.c (usage): Likewise.
	* recode-sr-latin.c (usage): Likewise.
	* urlget.c (usage): Likewise.
	* write-po.c (wrap): Likewise.
	* xgettext.c (main, usage, remember_a_message, construct_header,
	language_to_extractor): Likewise.
	* po-gram-gen.y: Likewise.
	* po-error.h: Likewise.
	* po-lex.h: Likewise.
	* read-catalog-abstract.h: Likewise.
	* x-c.c: Likewise.

2011-10-04  Bruno Haible  <bruno@clisp.org>

	xgettext for Scheme: Understand guile 2.0 comment syntax, part 2.
	* x-scheme.c (read_object): Extract and don't ignore block comments.
	Understand the #|...|# syntax of SRFI-30. (Code copied from x-lisp.c.)

2011-10-04  Bruno Haible  <bruno@clisp.org>

	xgettext for Scheme: Understand guile 2.0 comment syntax, part 1.
	* x-scheme.c (read_object): Understand !# as a block comment terminator
	even when not surrounded by newlines.
	Reported by David Pirotte <david@altosw.be>
	via Santiago Vila <sanvila@unex.es>.

2011-07-29  Bruno Haible  <bruno@clisp.org>

	Fix xgettext crash when extracting a message with plural that is
	excluded.
	* xgettext.h (remember_a_message): Document the return value.
	* xgettext.c (arglist_parser_done): Handle the case where
	remember_a_message returned NULL.
	* x-smalltalk.c (extract_smalltalk): Likewise.
	* x-ycp.c (extract_parenthesized): Likewise.
	Reported by Jean-Luc Coulon <jean-luc.coulon@wanadoo.fr> via
	Santiago Vila <sanvila@unex.es>.

2011-06-13  Bruno Haible  <bruno@clisp.org>

	Avoid compilation error on Solaris 7 with cc.
	* msgl-fsearch.c (SHORT_MSG_MAX): Define more directly with SunPRO C.

2011-06-04  Bruno Haible  <bruno@clisp.org>

	Avoid link error when linking statically on AIX 7.
	* Makefile.am (xgettext_LDADD): Add LTLIBICONV.

2011-04-13  Bruno Haible  <bruno@clisp.org>

	* msgcat.c (usage): Fix description of --use-first.
	* msgcomm.c (usage): Fix typo.
	Reported by Matthijs Kooijman.

2011-06-04  Bruno Haible  <bruno@clisp.org>

	Update after __attibute__ is no longer defined by gnulib.
	* msgl-check.c (formatstring_error_logger): Use __attribute__ only with
	compiler versions that support it.

2011-06-02  Bruno Haible  <bruno@clisp.org>

	Use u8_mbtoucr instead of u8_mbtouc in some places.
	* po-lex.c (mbfile_getc): Call u8_mbtoucr instead of u8_mbtouc.
	* x-csharp.c (phase2_getc): Likewise.
	* x-python.c (phase2_getc): Likewise.
	Needed after libunistring changed on 2010-11-13.

2011-06-02  Bruno Haible  <bruno@clisp.org>

	Update after gnulib changed.
	* msgexec.c: Include spawn-pipe.h instead of pipe.h.
	* msginit.c: Likewise.
	* read-csharp.c: Likewise.
	* read-java.c: Likewise.
	* read-resources.c: Likewise.
	* read-tcl.c: Likewise.
	* write-resources.c: Likewise.

2010-11-20  Bruno Haible  <bruno@clisp.org>

	Port to uClibc.
	* write-po.c (wrap): Treat uClibc like a non-glibc platform.
	* format-c-parse.h (HANDLE_I_FLAG): Likewise.
	* po-charset.c (po_lex_charset_set): Likewise.
	* recode-sr-latin.c (process): Likewise.
	* x-python.c (set_current_file_source_encoding): Likewise.
	* xgettext.c (main): Likewise.

2010-11-13  Ihar Hrachyshka  <ihar.hrachyshka@gmail.com>  (tiny change)

	* plural-table.c (plural_table): Added Belarusian, copied from Russian
	and Ukrainian.

2010-11-07  Bruno Haible  <bruno@clisp.org>

	format-c.c: Share code with libintlext.
	* format-c-parse.h: New file, extracted from format-c.c.
	* format-c.c: Include it.
	(format_parse_entrails): Remove function.
	* Makefile.am (FORMAT_SOURCE): Add format-c-parse.h.
	* FILES: Update.

2010-11-07  Bruno Haible  <bruno@clisp.org>

	format-c.c: Prepare for sharing code with libintlext.
	* format-c.c: Move INVALID_* macros.
	(IF_OOM): New macro.
	(SYSDEP_SEGMENTS_PROCESSED): New macro.
	(FAT_BASIC_MASK): New enumeration value.
	(HANDLE_I_FLAG): New macro.
	(format_parse_entrails): New function, extracted from format_parse.
	Use the IF_OOM, SYSDEP_SEGMENTS_PROCESSED, HANDLE_I_FLAG macros. Handle
	I64 as a size specifier on native Win32.
	(format_parse): Rewritten to call format_parse_entrails.

2010-11-07  Bruno Haible  <bruno@clisp.org>

	format-c.c: Prepare for sharing code with libintlext.
	* format-c.c (INVALID_ANGLE_BRACKET, INVALID_IGNORED_ARGUMENT): New
	macros.
	(format_parse): Use them.

2011-06-07  Bruno Haible  <bruno@clisp.org>

	Rely more on libtool.
	* Makefile.am (libgettextsrc_la_LDFLAGS): Use -no-undefined always.
	Don't use @LTNOUNDEF@.

2010-06-06  Bruno Haible  <bruno@clisp.org>

	Bug fixes in libgettextpo.
	* msgl-check.h (check_message_list): Add ignore_untranslated_messages,
	ignore_fuzzy_messages arguments.
	* msgl-check.c (check_plural, check_message_list): Likewise.
	* msgfmt.c (main): Update.

2010-06-04  Bruno Haible  <bruno@clisp.org>

	* gettext-0.18.1 released.

2010-06-03  Bruno Haible  <bruno@clisp.org>

	xgettext: Recognize language of files ending in .perl.
	* x-perl.h (EXTENSIONS_PERL): Recognize .perl.
	Suggested by Ævar Arnfjörð Bjarmason <avarab@gmail.com>.

2010-06-03  Bruno Haible  <bruno@clisp.org>

	urlget: Don't attempt to run the Java program if we don't install it.
	* Makefile.am (USEJAVA): New variable.
	(DEFS): Define USEJAVA.
	* urlget.c (fetch): Don't try to use Java is USEJAVA is 0.

2010-05-19  Bruno Haible  <bruno@clisp.org>

	Link with libunistring, if it exists.
	* Makefile.am (LDADD, libgettextsrc_la_LDFLAGS): Add LTLIBUNISTRING.

2010-05-18  Bruno Haible  <bruno@clisp.org>

	Correct program dependencies.
	* Makefile.am (OTHERPROGDEPENDENCIES): New variable.
	(recode_sr_latin_LDADD): Remove redundant variable.
	(recode_sr_latin_DEPENDENCIES): Use OTHERPROGDEPENDENCIES.
	(hostname_DEPENDENCIES, urlget_DEPENDENCIES): New variables.

2010-05-09  Bruno Haible  <bruno@clisp.org>

	* gettext-0.18 released.

2010-05-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.

2010-04-25  Bruno Haible  <bruno@clisp.org>

	Update support of object-pascal-format strings.
	* format-pascal.c: Update description of format strings.
	(enum format_arg_type): Remove FAT_INTEGER64.
	(format_parse): Accept an empty digit sequence before ':'. Treat 'd',
	'u', 'x' the same way.
	(main): Update.

2010-04-05  Bruno Haible  <bruno@clisp.org>

	Interoperability with mono versions >= 2009-02-27.
	* write-csharp.c (write_csharp_code): Emit a TableInitialized field.
	Change ReadResources so that it may be called multiple times, even
	concurrently.
	Reported by Guido Flohr  <guido@imperia.net>

2010-03-31  Guido Flohr  <guido@imperia.net>

	Improve how xgettext handles Perl syntax ambiguities.
	* x-perl.c(enum token_type_ty): New enumeration items
	token_type_number, token_type_object.
	(struct token_ty): New field 'last_type'.
	(token2string): Handle token_type_number, token_type_object.
	(free_token): Likewise.
	(prefer_division_over_regexp): Remove variable.
	(extract_variable): Recognize token of type token_type_object.
	(prefer_regexp_over_division): New function.
	(last_token_type): Renamed from last_token.
	(x_perl_prelex): Assign the token's last_type. Recognize token of type
	token_type_number. Don't special-case "grep" and "split". Invoke
	prefer_regexp_over_division for disambiguation.
	(token_stack_dump): Handle token_type_number, token_type_object.
	(x_perl_lex): Assign the token's last_type. Update last_token_type
	intelligently.
	(collect_message): Invoke prefer_regexp_over_division for
	disambiguation.
	(extract_balanced): Don't set last_token_type here. Handle
	token_type_number, token_type_object.
	(extract_perl): Initialize last_token_type here.
	Reported by Guillem Jover <guillem@debian.org> via Santiago Vila.

	* x-perl.c (x_perl_prelex): Clarify interpolate_keywords arguments.

	* x-perl.c (eaten_here): Renamed from here_eaten.
	(phase1_getc, get_here_document, skip_pod, extract_perl): Update.

2010-03-13  Bruno Haible  <bruno@clisp.org>

	New options --color, --style for many programs.
	* msgattrib.c: Include color.h.
	(long_options): Add options --color, --style.
	(main): Implement them.
	(usage): Document them.
	* msgcomm.c: Include color.h.
	(long_options): Add options --color, --style.
	(main): Implement them.
	(usage): Document them.
	* msgconv.c: Include color.h.
	(long_options): Add options --color, --style.
	(main): Implement them.
	(usage): Document them.
	* msgen.c: Include color.h.
	(long_options): Add options --color, --style.
	(main): Implement them.
	(usage): Document them.
	* msgfilter.c: Include color.h.
	(long_options): Add options --color, --style.
	(main): Implement them.
	(usage): Document them.
	* msggrep.c: Include color.h.
	(long_options): Add options --color, --style.
	(main): Implement them.
	(usage): Document them.
	* msginit.c: Include color.h.
	(long_options): Add options --color, --style.
	(main): Implement them.
	(usage): Document them.
	* msgmerge.c: Include color.h.
	(long_options): Add options --color, --style.
	(main): Implement them.
	(usage): Document them.
	* msgunfmt.c: Include color.h.
	(long_options): Add options --color, --style.
	(main): Implement them.
	(usage): Document them.
	* msguniq.c: Include color.h.
	(long_options): Add options --color, --style.
	(main): Implement them.
	(usage): Document them.
	* xgettext.c: Include color.h.
	(long_options): Add options --color, --style.
	(main): Implement them.
	(usage): Document them.
	Reported by Kalle Olavi Niemitalo <kon@iki.fi>
	via Santiago Vila <sanvila@unex.es>.

2010-02-20  Bruno Haible  <bruno@clisp.org>

	* plural-table.c (plural_table): Add Bulgarian.
	Reported by Roumen Petrov <transl@roumenpetrov.info>.

2010-02-20  Bruno Haible  <bruno@clisp.org>

	* plural-table.c (plural_table): Sort in the same order as
	gettext.texi.

2010-02-17  Bruno Haible  <bruno@clisp.org>

	Fix error in conversion of large PO file (> 4000 msgs) to Java class.
	* write-java.c: Include minmax.h.
	(write_java1_init_statements, write_java2_init_statements): New
	functions, extracted from write_java_code.
	(write_java_code): If there are many messages, split the initialization
	code into several static methods.
	Reported by sasha <predator@savannah.gnu.org>.

2009-12-21  Bruno Haible  <bruno@clisp.org>

	* lang-table.c (language_table): Add Mapudungun, Lower Sorbian,
	Upper Sorbian, Mohawk, Yakut, Southern Sami, Lule Sami, Inari Sami,
	Skolt Sami.
	* msginit.c (catalogname_for_locale): Add Mapudungun, Lower Sorbian,
	Upper Sorbian, Yakut, Inari Sami, Skolt Sami.

2009-12-12  Bruno Haible  <bruno@clisp.org>

	* *.h, *.c, *.y: Untabify.

2009-11-28  Bruno Haible  <bruno@clisp.org>

	* x-perl.c (extract_variable): Fix tp->type when returning at EOF.
	Reported by Guido Flohr <guido@imperia.bg>.

2009-11-15  Bruno Haible  <bruno@clisp.org>

	* x-python.c: Update comments regarding PEP 0263.

2009-09-05  Bruno Haible  <bruno@clisp.org>

	* write-po.c (wrap): Remove unused initialization.
	* x-glade.c (comment_handler): Likewise.
	* xgettext.c (flag_context_list_table_insert): Add comment.
	Found by clang's static analyzer.

2009-08-30  Bruno Haible  <bruno@clisp.org>

	Accommodate the Solaris iconv_open function, which cannot convert
	directly between many pairs of encodings.
	* msgl-iconv.h (convert_string_directly): Renamed from convert_string.
	* msgl-iconv.c: Include xstriconveh.h.
	(convert_string_directly): Renamed from convert_string.
	(convert_string): New function.
	(convert_string_list, convert_prev_msgid, convert_msgid,
	iconvable_string_list, iconvable_prev_msgid, iconvable_msgid): Change
	argument type to 'const iconveh_t *'.
	(convert_msgstr, iconvable_string, iconvable_msgstr): Likewise. Invoke
	xmem_cd_iconveh instead of xmem_cd_iconv.
	(iconv_message_list_internal, is_message_list_iconvable): Invoke
	iconveh_open, iconveh_close instead of iconv_open, iconv_close.
	* xgettext.c (from_current_source_encoding): Update.

2009-08-16  Bruno Haible  <bruno@clisp.org>

	Reduce dependency on project-id heuristic.
	* msginit.c (project_id): Add header argument. Return first part of
	Project-Id-Version field if present.
	(fill_header): Update.

2009-08-13  Bruno Haible  <bruno@clisp.org>

	* msgexec.c: Include msgl-charset.h.
	(main): Invoke compare_po_locale_charsets.
	(process_string): Add comment.
	* msgfilter.c (process_message): Likewise.

2009-08-10  Bruno Haible  <bruno@clisp.org>

	Avoid a gcc warning.
	* msgfilter.c (sub_argv): Change type to 'const char **'.
	(main): Update.

2009-08-10  Bruno Haible  <bruno@clisp.org>

	Use type 'ucs4_t' more often. Avoids gcc warnings on Cygwin.
	* po-lex.c (struct mbchar): Change type of 'uc'.
	(mb_width): Update.
	* read-properties.c (read_escaped_string): Change type of local
	variable 'uc'.
	* read-stringtable.c (phase2_getc): Likewise.
	* write-properties.c (conv_to_java, write_escaped_string): Change type
	of local variables 'uc', 'uc1', 'uc2'.
	* write-java.c (string_hashcode, write_java_string): Likewise.
	* write-csharp.c (construct_class_name, write_csharp_string): Change
	type of local variable 'uc'.
	* write-tcl.c (write_tcl_string): Likewise.
	* write-qt.c (conv_to_iso_8859_1, conv_to_utf16): Likewise.
	* x-python.c (phase2_getc, mixed_string_buffer_append): Likewise.
	(mixed_string_buffer_append_unicode): Change argument type to 'ucs4_t'.
	* x-java.c (string_buffer_append): Change type of local variable 'uc'.
	(string_buffer_append_unicode): Change argument type to 'ucs4_t'.
	* x-csharp.c (phase2_getc): Change type of local variable 'uc'.

2009-08-04  Bruno Haible  <bruno@clisp.org>

	Port msgfilter to Woe32 platforms.
	* msgfilter.c: Don't include errno.h, fcntl.h, io.h, sys/select.h,
	pipe.h, wait-process.h. Include pipe-filter.h instead.
	(HAVE_SELECT): Remove undefine.
	(nonintr_close, nonintr_read, nonintr_write, nonintr_select): Remove
	functions.
	(O_NONBLOCK): Remove fallback.
	(IS_EAGAIN): Remove macro.
	(struct locals): New type.
	(prepare_write, done_write, prepare_read, done_read): New functions.
	(generic_filter): Implement using pipe_filter_ii_execute.

2009-07-27  Часлав Илић (Chusslove Illich)  <caslav.ilic@gmx.net>

	Extend recode-sr-latin to also transform letters with accents.
	* filter-sr-latin.c (table): Add entries for letters with accents.
	(IS_UPPERCASE_CYRILLIC): Recognize also U+04E2, U+04EE.
	(serbian_to_latin): Update.

2009-06-06  Bruno Haible  <bruno@clisp.org>

	* x-perl.c (x_perl_prelex): Recognize the perl 5.10 operator '//'.
	Reported by Kevin Ryde <user42@zip.com.au>.

2009-05-29  Bruno Haible  <bruno@clisp.org>

	Improve msgfmt error message about format directive mismatches
	in msgstr[i].
	* format.h (struct formatstring_parser): Add pretty_msgid argument to
	'check' member.
	* format-awk.c (format_check): Add pretty_msgid argument.
	* format-boost.c (format_check): Likewise.
	* 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-gfc-internal.c (format_check): Likewise.
	* format-java.c (format_check): Likewise.
	* format-kde.c (format_check): Likewise.
	* format-librep.c (format_check): Likewise.
	* format-lisp.c (format_check): Likewise.
	* format-pascal.c (format_check): Likewise.
	* format-perl-brace.c (format_check): Likewise.
	* format-perl.c (format_check): Likewise.
	* format-php.c (format_check): Likewise.
	* format-python.c (format_check): Likewise.
	* format-qt.c (format_check): Likewise.
	* format-qt-plural.c (format_check): Likewise.
	* format-scheme.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_i): Pass either "msgid" or
	"msgid_plural" as pretty_msgid argument.

2009-05-23  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (libgettextsrc_la_LINK, msgattrib_LINK, msgcat_LINK,
	msgcomm_LINK, msgconv_LINK, msgen_LINK, msgfilter_LINK, msggrep_LINK,
	msgmerge_LINK, msguniq_LINK, xgettext_LINK): Add $(AM_V_lt) flag.

2009-05-16  Bruno Haible  <bruno@clisp.org>

	Extract comments meant for translators from Glade input files.
	* xgettext.h (remember_a_message): Add 'extracted_comment' argument.
	* xgettext.c (remember_a_message): Likewise.
	(arglist_parser_done): Update.
	* x-glade.c (struct element_state): Add field 'extracted_comment'.
	(start_element_handler): Fill it.
	(end_element_handler): Pass it to 'remember_a_message', free it.
	* x-awk.c (extract_parenthesized): Update.
	* x-c.c (extract_parenthesized): Update.
	* x-csharp.c (extract_parenthesized): Update.
	* x-elisp.c (read_object): Update.
	* x-java.c (extract_parenthesized): Update.
	* x-librep.c (read_object): Update.
	* x-lisp.c (read_object): Update.
	* x-perl.c (extract_variable, interpolate_keywords, extract_balanced):
	Update.
	* x-php.c (extract_balanced): Update.
	* x-python.c (extract_balanced): Update.
	* x-rst.c (extract_rst): Update.
	* x-scheme.c (read_object): Update.
	* x-sh.c (read_word, read_command): Update.
	* x-smalltalk.c (extract_smalltalk): Update.
	* x-tcl.c (read_command): Update.
	* x-ycp.c (extract_parenthesized): Update.
	Reported by <sandro.bonazzola@gmail.com>
	at <https://savannah.gnu.org/bugs/?26570>.

2009-03-29  Bruno Haible  <bruno@clisp.org>

	* message.h (format_type): New enum value 'format_gfc_internal'.
	(NFORMATS): Increment.
	* message.c (format_language): Add format_gfc_internal entry.
	(format_language_pretty): Likewise.
	* format.h (formatstring_gfc_internal): New declaration.
	* format-gfc-internal.c: New file.
	* format.c (formatstring_parsers): Add formatstring_gfc_internal.
	* x-c.h (SCANNERS_C): In language GCC-source, also keep track of
	gfc-internal-format format strings.
	* x-c.c (init_flag_table_gcc_internal): Also register flags for
	gfc-internal-format.
        * xgettext.c (xgettext_record_flag): Store gfc-internal-format flags in
	flag_table_gcc_internal.
        * Makefile.am (FORMAT_SOURCE): Add format-gfc-internal.c.
        * FILES: Update.
	Reported by Göran Uddeborg <goeran@uddeborg.se>.

2009-01-27  Bruno Haible  <bruno@clisp.org>

	* message.h (format_type): New enum value 'format_qt_plural'.
	(NFORMATS): Increment.
	* message.c (format_language): Add format_qt_plural entry.
	(format_language_pretty): Likewise.
	* format.h (formatstring_qt_plural): New declaration.
	* format-qt-plural.c: New file.
	* format.c (formatstring_parsers): Add formatstring_qt_plural.
	* xgettext.h (struct flag_context_ty): Add fields is_format3,
	pass_format3.
	* xgettext.c (struct extractor_ty): Add field formatstring_parser3.
	(inherited_context, flag_context_list_table_insert): Handle the new
	flag_context_ty fields.
	(xgettext_record_flag): Handle format_qt_plural.
	(current_formatstring_parser3): New variable.
	(extract_from_file): Initialize it.
	(set_format_flags_from_context): Handle the new flag_context_ty fields.
	(remember_a_message, remember_a_message_plural): Handle
	current_formatstring_parser3. Avoid adding a c-format flag to a message
	already flagged as qt-plural-format.
	(arglist_parser_remember): Allow argnum1 and argnum2 in the call shape
	to be the same.
	(arglist_parser_done): Add special recognition of qt-plural-format
	strings.
	(language_to_extractor): Set the formatstring_parser3 in the result.
	* Makefile.am (FORMAT_SOURCE): Add format-qt-plural.c.
	* FILES: Update.

2009-01-27  Bruno Haible  <bruno@clisp.org>

	* plural-table.c (plural_table): Put Turkish under nplurals=2.
	Reported by Sertaç Ö. Yıldız <sertacyildiz@gmail.com>.
	
2009-01-26  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.
	* urlget.c (main): Likewise.

2009-01-25  Bruno Haible  <bruno@clisp.org>

	Fix bug introduced on 2005-10-01.
	* msgl-charset.c (compare_po_locale_charsets): Fix recognition of
	header entry.

2009-01-25  Bruno Haible  <bruno@clisp.org>

	Fix bug introduced on 2008-10-04.
	* read-catalog-abstract.c (po_parse_comment_special): Initialize
	*rangep.
	Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.

2009-01-18  Bruno Haible  <bruno@clisp.org>

	* msgfmt.c: Include str-list.h.
	(main): When --statistics and --verbose are both specified, output the
	input file name in front of the statistics line.
	Suggested by Vincent Lefevre <vincent@vinc17.org>.

2009-01-18  Bruno Haible  <bruno@clisp.org>

	Allow multiple levels of verbosity in 'msgfmt'.
	* msgfmt.h (verbose): Change from 'bool' to 'int'.
	* msgfmt.c (verbose): Likewise.
	(main): Increment 'verbose' for each --verbose option.
	* write-java.c (msgdomain_write_java): Update.
	* write-csharp.c (msgdomain_write_csharp): Update.
	* write-resources.c (msgdomain_write_csharp_resources): Update.

2009-01-18  Bruno Haible  <bruno@clisp.org>

	* str-list.h (string_list_join): Change the separator argument,
	allowing an entire separator string.
	* str-list.c (string_list_join): Likewise.

2009-01-18  Bruno Haible  <bruno@clisp.org>

	Fix a '(null)' in an error message. Bug present since gettext-0.16.
	* read-catalog.h (DEFAULT_CATALOG_READER_TY): Add a file_name field.
	* read-catalog.c (read_catalog_stream): Initialize it.
	* x-po.c (extract): Likewise.
	* msgfmt.c (read_catalog_file_msgfmt): Likewise.
	(msgfmt_parse_debrief): Use the file_name field from the catalog reader
	instead of gram_pos.file_name.

2009-01-17  Bruno Haible  <bruno@clisp.org>

	Update after gnulib changed.
	* Makefile.am (RELOCATABLE_STRIP): New variable.

2008-12-07  Bruno Haible  <bruno@clisp.org>

	* write-po.c (message_print_comment_filepos): Use a 'const' pointer
	where possible.
	* write-stringtable.c (write_message): Likewise.

2008-12-07  Bruno Haible  <bruno@clisp.org>

	Avoid gcc -Wredundant-decls warnings.
	* x-awk.c: Don't include the specification header file twice.
	* x-c.c: Likewise.
	* x-csharp.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-scheme.c: Likewise.
	* x-sh.c: Likewise.
	* x-smalltalk.c: Likewise.
	* x-tcl.c: Likewise.
	* x-ycp.c: Likewise.

2008-11-14  Bruno Haible  <bruno@clisp.org>

	* msgfilter.c: Include xvasprintf.h, xsetenv.h.
	(process_message): Set the environment variables MSGFILTER_MSGCTXT,
	MSGFILTER_MSGID, MSGFILTER_LOCATION.

2008-10-28  Bruno Haible  <bruno@clisp.org>

	* msgmerge.c (match_domain): Remove space between '#' and 'pragma' for
	OpenMP.
	Reported by Lamarque Eric <eric.lamarque@free.fr>.

2008-10-04  Bruno Haible  <bruno@clisp.org>

	* plural-distrib.h (struct plural_distribution): New field 'histogram'.
	* format.h (check_msgid_msgstr_format_i, check_msgid_msgstr_format):
	Add range argument.
	* format.c (check_msgid_msgstr_format_i): Add range argument. Set
	strict_checking to false if, due to the range, the plural forms applies
	to only one value of n.
	(check_msgid_msgstr_format): Add range argument.
	* msgl-check.c (plural_expression_histogram): New function.
	(check_plural_eval, check_plural): Update.
	(check_pair): Pass the range to check_msgid_msgstr_format.
	(check_message_list): Update.
	* msgmerge.c (message_merge): Pass the range to
	check_msgid_msgstr_format_i.
	Reported by Anatoly Techtonik <techtonik@gmail.com>
	via <https://savannah.gnu.org/bugs/?24433>.

2008-10-04  Bruno Haible  <bruno@clisp.org>

	* message.h (struct argument_range): New type.
	(has_range_p): New macro.
	(struct message_ty): Add field 'range'.
	* message.c (message_alloc): Initialize the 'range' field.
	(message_copy): Copy the 'range' field.
	* read-catalog-abstract.h (po_parse_comment_special): Add 'rangep'
	argument.
	* read-catalog-abstract.c: Include <limits.h>.
	(po_parse_comment_special): Add 'rangep' argument. Parse the range
	description syntax.
	* read-catalog.h (DEFAULT_CATALOG_READER_TY): Add 'range' field.
	* read-catalog.c (default_constructor): Initialize the 'range' field.
	(default_copy_comment_state): Copy the 'range' field into the new
	message.
	(default_reset_comment_state): Clear the 'range' field.
	(default_comment_special): Update.
	* write-po.h (make_range_description_string): New declaration.
	* write-po.c (make_range_description_string): New function.
	(message_print_comment_flags): Also print the range.
	* write-stringtable.c (write_message): Likewise.
	* msgl-cat.c: Include <limits.h>.
	(catenate_msgdomain_list): Fill in the range of the resulting messages.
	* msgl-equal.c (message_equal): Compare also the ranges.
	* msgmerge.c (message_merge): Fill in the range of the resulting
	message. Set it fuzzy if a range was introduced or extended.
	* xgettext.c (remember_a_message): Set the range of the new message.

2008-10-03  Bruno Haible  <bruno@clisp.org>

	* plural-distrib.h: New file.
	* format.h: Include plural-distrib.h.
	(check_msgid_msgstr_format_i, check_msgid_msgstr_format): Replace
	plural_distribution, plural_distribution_length arguments with a single
	distribution argument.
	* format.c (check_msgid_msgstr_format_i, check_msgid_msgstr_format):
	Likewise.
	* msgl-check.h: Include plural-distrib.h.
	(check_plural_eval, check_message): Replace plural_distribution,
	plural_distribution_length arguments with a single distribution
	argument.
	* msgl-check.c (check_plural_eval): Likewise. Free array in case of
	error.
	(check_plural): Replace plural_distribution, plural_distribution_length
	arguments with a single distribution argument. Don't store a
	distribution result when there are errors.
	(check_pair, check_message): Replace plural_distribution,
	plural_distribution_length arguments with a single distribution
	argument.
	(check_message_list): Update.
	* msgmerge.c (message_merge: Replace plural_distribution,
	plural_distribution_length arguments with a single distribution
	argument.
	(match_domain): Update.
	* Makefile.am (noinst_HEADERS): Add plural-distrib.h.
	* FILES: Mention plural-distrib.h.

2008-09-28  Bruno Haible  <bruno@clisp.org>

	* write-catalog.c (msgdomain_list_print): Open the output stream in
	binary mode, for consistency with the term_styled_ostream or fd_stream
	based case.

2008-09-28  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (msg*_DEPENDENCIES, xgettext_DEPENDENCIES,
	recode_sr_latin_DEPENDENCIES): Add $(WOE32_LDADD).

2008-09-28  Bruno Haible  <bruno@clisp.org>

	* msgexec.c (process_string): Don't die from SIGPIPE if the subprocess
	does not want our input.
	Reported by Rainer Tammer <tammer@tammer.net>.

2008-09-28  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (msgcmp_LDADD): Add MSGMERGE_LIBM.
	Reported by Rainer Tammer <tammer@tammer.net>.

2008-09-27  Bruno Haible  <bruno@clisp.org>

	* lang-table.c (language_table): Add Asturian, Crimean Tatar, Friulian,
	Papiamento.
	* msginit.c (catalogname_for_locale): Add Asturian, Friulian,
	Papiamento.

2008-09-26  Bruno Haible  <bruno@clisp.org>

	* write-catalog.c (cmp_by_msgid, cmp_by_filepos): Compare the msgctxt
	fields if the msgid fields are the same.
	Reported by Rainer Tammer <tammer@tammer.net>.

2008-09-15  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (msg*_DEPENDENCIES, xgettext_DEPENDENCIES,
	recode_sr_latin_DEPENDENCIES): New variables.

2008-09-15  Bruno Haible  <bruno@clisp.org>

	* msgl-fsearch.h: Include stdbool.h.
	(message_fuzzy_index_search): Add 'heuristic' argument.
	* msgl-fsearch.c (message_fuzzy_index_search): Likewise. If !heuristic,
	consider all messages.
	* msgmerge.c (struct definitions_ty): Add fields 'curr_findex',
	'curr_findex_init_lock'.
	(definitions_init): Initialize them.
	(definitions_set_current_list): Clear the previous curr_findex.
	(definitions_init_curr_findex): New function.
	(definitions_search_fuzzy): Do fuzzy matching by calling
	message_fuzzy_index_search on a hashed index, rather than through
	message_list_search_fuzzy.
	(definitions_destroy): Update.
	(merge): Determine the definitions' canonical encoding.
	* msgcmp.c: Include xmalloca.h, po-charset.h, msgl-fsearch.h.
	(match_domain): Add defmlp_findex, def_canon_charset arguments. Do
	fuzzy matching by calling message_fuzzy_index_search on a hashed
	index, rather than through message_list_search_fuzzy.
	(compare): Determine the definitions' canonical encoding. Prepare room
	for a lazily allocated hashed index.
	* Makefile.am (msgcmp_SOURCES): Add msgl-fsearch.c.

2008-09-15  Bruno Haible  <bruno@clisp.org>

	* msgcmp.c (use_fuzzy_matching): New variable.
	(long_options): Add option -N/--no-fuzzy-matching.
	(main, match_domain): Implement it.
	(usage): Document it.

2008-09-14  Bruno Haible  <bruno@clisp.org>

	* msgl-fsearch.h (message_fuzzy_index_search): Add 'lower_bound'
	argument.
	* msgl-fsearch.c (message_fuzzy_index_search): Likewise.
	* msgmerge.c (definitions_search_fuzzy): Use the result of the fuzzy
	search in the current list as a lower bound for the fuzzy search in the
	compendiums.

2008-09-14  Bruno Haible  <bruno@clisp.org>

	* message.h (message_list_search_fuzzy, FUZZY_THRESHOLD): Clarify
	documentation.

	* msgmerge.c (struct definitions_ty): Rename field 'findex' to
	'comp_findex', and 'findex_init_lock' to 'comp_findex_init_lock'.
	(definitions_init): Update.
	(definitions_init_comp_findex): Renamed from definitions_init_findex.
	Update.
	(definitions_search_fuzzy, definitions_destroy): Update.

	* msgmerge.c (definitions_current_list, definitions_set_current_list):
	Move functions.

2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
            Bruno Haible  <bruno@clisp.org>

	* message.h (fuzzy_search_goal_function): Add 'lower_bound' argument.
	* message.c (fuzzy_search_goal_function): Likewise. Use fstrcmp_bounded
	instead of fstrcmp.
	(message_list_search_fuzzy_inner): Pass fuzzy_search_goal_function the
	best weight known so far, to shortcut computations.
	* msgl-fsearch.c (message_fuzzy_index_search): Likewise.
	* msgmerge.c (definitions_search_fuzzy): Update
	fuzzy_search_goal_function calls.

2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
            Bruno Haible  <bruno@clisp.org>

	* xgettext.c: Include concat-filename.h.
	(main, xgettext_open): Use xconcatenated_filename instead of
	concatenated_filename.

2008-09-01  Bruno Haible  <bruno@clisp.org>

	* color.c: Include concat-filename.h.
	(style_file_lookup, style_file_prepare): Use xconcatenated_filename
	instead of concatenated_filename.
	* msginit.c: Include concat-filename.h instead of filename.h.
	(project_id, project_id_version): Use xconcatenated_filename instead of
	concatenated_filename.
	* open-catalog.c: Include concat-filename.h.
	(try_open_catalog_file): Use xconcatenated_filename instead of
	concatenated_filename.
	* read-csharp.c: Include concat-filename.h instead of filename.h.
	(msgdomain_read_csharp): Use xconcatenated_filename instead of
	concatenated_filename.
	* read-resources.c: Include concat-filename.h instead of filename.h.
	(read_resources_file): Use xconcatenated_filename instead of
	concatenated_filename.
	* read-tcl.c: Include concat-filename.h instead of filename.h.
	(msgdomain_read_tcl): Use xconcatenated_filename instead of
	concatenated_filename.
	* write-resources.c: Include concat-filename.h instead of filename.h.
	(msgdomain_write_csharp_resources): Use xconcatenated_filename instead of
	concatenated_filename.
	* write-csharp.c: Include concat-filename.h instead of filename.h.
	(msgdomain_write_csharp): Use xconcatenated_filename instead of
	concatenated_filename.
	* write-java.c: Include concat-filename.h instead of filename.h.
	(msgdomain_write_java): Use xconcatenated_filename instead of
	concatenated_filename.
	* write-tcl.c: Include concat-filename.h instead of filename.h.
	(msgdomain_write_tcl: Use xconcatenated_filename instead of
	concatenated_filename.

2008-08-31  Bruno Haible  <bruno@clisp.org>

	* msgexec.c: Include <signal.h>.
	(main): Block SIGPIPE for the duration of the processing.

2008-08-23  Bruno Haible  <bruno@clisp.org>

	Fix behaviour of "msgmerge --update" when sorting is requested and
	obsolete messages are present.
	* write-catalog.h (struct catalog_output_format): New field
	'sorts_obsoletes_to_end'.
	* write-po.c (output_format_po): Initialize it to true.
	* write-properties.c (output_format_properties): Initialize it to false.
	* write-stringtable.c (output_format_stringtable): Likewise.
	* msgmerge.c (msgdomain_list_stablesort_by_obsolete): New function.
	(main): Before testing whether the result is the same as the old
	contents, sort the result using msgdomain_list_stablesort_by_obsolete.
	Reported by Vincent Danjean <vdanjean.abo@free.fr>
	via <http://savannah.gnu.org/bugs/?24123>.

2008-08-16  Bruno Haible  <bruno@clisp.org>

	* x-python.c (enum token_type_ty): New values token_type_lbracket,
	token_type_rbracket.
	(phase5_get): Recognize also token_type_lbracket, token_type_rbracket.
	(extract_balanced): Renamed from extract_parenthesized. Add 'delim'
	argument. Handle token_type_lbracket and token_type_rbracket.
	(extract_python): Update.
	Reported by Claude Paroz <claude@2xlibre.net>
	via <http://savannah.gnu.org/bugs/?23824>.

2008-08-16  Bruno Haible  <bruno@clisp.org>

	* x-php.c (extract_balanced): Fix small bug in 2007-03-17 commit.

2008-08-15  Bruno Haible  <bruno@clisp.org>

	* format-python.c (format_parse): For %.0s and %.0r, set the type to
	FORMAT_ANY.
	(format_check): When strict equality is not desired, compare FORMAT_ANY
	as matching any type.
	Reported by Alexander Dupuy <alex.dupuy@mac.com> in
	<http://savannah.gnu.org/bugs/?24025>.

2008-08-14  Bruno Haible  <bruno@clisp.org>

	* format-python.c (format_parse): For '%', set the type to FAT_NONE.

2008-08-14  Bruno Haible  <bruno@clisp.org>

	* format-python.c (format_check): Require the same number of unnamed
	arguments also when !equality.
	Reported by Alexander Dupuy <alex.dupuy@mac.com> in
	<http://savannah.gnu.org/bugs/?24025>.

2008-08-14  Bruno Haible  <bruno@clisp.org>

	* msgmerge.c: Include "glthread/lock.h" instead of "lock.h".

2008-08-03  Bruno Haible  <bruno@clisp.org>

	* x-python.c (mixed_string_buffer_append): Replace a lone high
	surrogate with U+FFFD.
	Reported by Yann <asterix@lagaule.org>
	via Santiago Vila <sanvila@unex.es>.

2008-07-19  Bruno Haible  <bruno@clisp.org>

	* gnu/gettext/GetURL.java: Don't output anything to standard error.
	Instead, set exit code to indicate failure reason.
	* urlget.c (verbose): New variable.
	(long_options): Add --quiet, --silent option.
	(main): Implement --quiet, --silent option.
	(usage): Document --quiet, --silent option.
	(java_exitcode): New variable.
	(execute_it): Set it. Return false also when the exit code is 2.
	(fetch): Implement verbosity to standard error here.
	Reported by 宋浩 <baritono.tux@gmail.com>.

2008-06-10  Bruno Haible  <bruno@clisp.org>

	* msgexec.c (process_string): Update for changed signature of
	wait_subprocess().
	* msgfilter.c (generic_filter): Likewise.
	* msginit.c (project_id, project_id_version, get_user_email,
	language_team_address): Likewise.
	* read-csharp.c (execute_and_read_po_output): Likewise.
	* read-java.c (execute_and_read_po_output): Likewise.
	* read-resources.c (execute_and_read_po_output): Likewise.
	* read-tcl.c (msgdomain_read_tcl): Likewise.
	* write-resources.c (execute_writing_input): Likewise.
	* urlget.c (execute_it, fetch): Update for changed signature of
	execute().

2008-05-26  Bruno Haible  <bruno@clisp.org>

	* msginit.c (get_field, put_field): Recognize a field also if there is
	no space after the ':'.
	Reported by Nacho <nacho.resa@gmail.com>.

2008-05-16  Bruno Haible  <bruno@clisp.org>

	* msgl-iconv.c (iconvable_prev_msgid): Fix typo.
	Reported by Karl Eichwalder <ke@novell.com>
	via Philipp Thomas <pth@novell.com>
	at <https://bugzilla.novell.com/show_bug.cgi?id=391372>.

2008-05-10  Bruno Haible  <bruno@clisp.org>

	* write-po.c: Include unilbrk.h instead of linebreak.h.
	(wrap): Update.
	* po-lex.c: Don't include linebreak.h.

2008-04-25  Bruno Haible  <bruno@clisp.org>

	* lang-table.c (language_table): Add Beja. Remove Adangme, Banda,
	Batak. Update Scottish Gaelic, Central Khmer, Romansh.
	* msginit.c (catalogname_for_locale: Add Beja. Remove Banda, Batak.
	Update Scottish Gaelic, Central Khmer, Romansh.

2008-04-20  Bruno Haible  <bruno@clisp.org>

	Improve error message.
	* xgettext.h (lexical_context_ty): New type.
	(non_ascii_error_message): New declaration.
	(from_current_source_encoding): Add lcontext argument.
	* xgettext.c (non_ascii_error_message): New function.
	(from_current_source_encoding): Add lcontext argument. Use
	non_ascii_error_message.
	(CONVERT_STRING): Add lcontext argument.
	(remember_a_message, remember_a_message_plural): Update.
	* x-csharp.c (lexical_context): New variable.
	(phase2_getc): Use non_ascii_error_message.
	(comment_start, comment_line_end, phase6_get): Set lexical_context.
	(extract_csharp): Initialize lexical_context.
	* x-java.c (struct string_buffer): Add lcontext field.
	(init_string_buffer): Add lcontext argument.
	(string_buffer_flush_curr_buffer): Update from_current_source_encoding
	call.
	(comment_start): Set lcontext.
	(phase5_get): Pass lcontext argument.
	* x-perl.c (get_here_document, phase2_getc,
	extract_quotelike_pass1_utf8): Pass lcontext argument.
	* x-python.c (lexical_context): New variable.
	(phase2_getc): Use non_ascii_error_message.
	(comment_start, comment_line_end, phase6_get): Set lexical_context.
	(struct mixed_string_buffer): Add lcontext field.
	(init_mixed_string_buffer): Add lcontext argument.
	(mixed_string_buffer_flush_curr_buffer): Update
	from_current_source_encoding call.
	(phase5_get): Set lexical_context. Pass lcontext argument.
	(extract_python): Initialize lexical_context.
	Reported by Mark Weyer.

2008-04-20  Bruno Haible  <bruno@clisp.org>

	* xgettext.c (usage): Clarify single-letter options that take an
	optional argument: -c, -k, -m, -M.

2008-04-16  Bruno Haible  <bruno@clisp.org>

	* msginit.c (catalogname_for_locale): Add entries for Maori, Uighur.

2008-02-20  Jakub Jelinek  <jakub@redhat.com>
            Bruno Haible  <bruno@clisp.org>

	* format-gcc-internal.c: Update for GCC 4.3.
	(FAT_TREE_STATEMENT): New enum item.
	(format_parse): Recognize %K.
	(format_print): Update.

2008-02-04  Bruno Haible  <bruno@clisp.org>

	* msgmerge.c (match_domain): Remove the prev_msgid fields also from
	the untranslated messages.
	Reported by Yukiko Bando <ybando@k6.dion.ne.jp> via
	Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>.

2008-02-04  Bruno Haible  <bruno@clisp.org>

	* msgmerge.c (message_merge): Store the prev_msgid field also if the
	resulting message is not fuzzy: it might be marked as fuzzy later.
	(match_domain): Remove the prev_msgid fields from the non-fuzzy
	messages.

2008-01-29  Bruno Haible  <bruno@clisp.org>

	* write-po.c (wrap): Change the severity of the "should not contain
	escape sequence" message from PO_SEVERITY_ERROR to PO_SEVERITY_WARNING.
	Reported by Kerb <ykerb2@free.fr>.

2008-01-13  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (noinst_headers): Add msgl-header.h.

2007-12-24  Bruno Haible  <bruno@clisp.org>

	Introduce 'Language' header field.
	* xgettext.c (construct_header): Add an empty 'Language' field.
	* msginit.c (language_value): New function.
	(fields): Add 'Language'.
	* msgmerge.c: Include lang-table.h.
	(catalogname): New variable.
	(long_options): Add --lang option.
	(main): Handle --lang option.
	(usage): Document --lang option.
	(message_merge): Set the 'Language' field if --lang was specified or
	if it is missing and can be inferred from the 'Language-Team' field.
	* msgl-header.h: New file.
	* msgl-header.c: New file.
	* msgcat.c: Include msgl-header.h.
	(long_options): Add --lang option.
	(main): Handle --lang option.
	(usage): Document --lang option.
	* msgen.c: Include msgl-header.h.
	(long_options): Add --lang option.
	(main): Handle --lang option.
	(usage): Document --lang option.
	* msgl-check.c (plural_help): Look at the 'Language' field before
	looking at the 'Language-Team' field.
	(check_header_entry): Fix comparison with default value. When the
	'Language' field is missing, signal a warning.
	* Makefile.am (libgettextsrc_la_SOURCES): Add msgl-header.c.
	(msgmerge_SOURCES): Add lang-table.c.
	* FILES: Update.

2007-12-22  Bruno Haible  <bruno@clisp.org>

	* write-po.c (wrap): Avoid breaking line in the middle of a format
	directive.
	Reported by Dwayne Bailey <dwayne@translate.org.za>.

2007-11-07  Jim Meyering  <meyering@redhat.com>
            Bruno Haible  <bruno@clisp.org>

	* write-catalog.c (msgdomain_list_print): Fix open() call.

2007-11-07  Bruno Haible  <bruno@clisp.org>

	* gettext-0.17 released.

2007-10-28  Bruno Haible  <bruno@clisp.org>

	* color.c (style_file_lookup): New function.
	(style_file_prepare): Use it.

2007-10-21  Bruno Haible  <bruno@clisp.org>

	Normalize the leading space of every comment line during input, not
	during output.
	* read-catalog-abstract.c (po_callback_comment_dispatcher): Before
	calling po_callback_comment or po_callback_comment_dot, drop the
	leading space.
	* write-po.c (message_print_comment, message_print_comment_dot): Don't
	remove the leading space of every comment line.
	* write-stringtable.c (write_message): Likewise.
	Suggested by Dwayne Bailey <dwayne@translate.org.za>.

2007-10-20  Bruno Haible  <bruno@clisp.org>

	* msgmerge.c (message_merge): Set the fuzzy flag if the msgid_plural
	changed.
	Suggested by Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>.

2007-10-20  Bruno Haible  <bruno@clisp.org>

	Make msgmerge's introduction of fuzzy markers more consistent with
	msgfmt's --check-format.
	* format.h (check_msgid_msgstr_format_i): New declaration.
	* format.c (check_msgid_msgstr_format_i): New function, extracted from
	check_msgid_msgstr_format.
	(check_msgid_msgstr_format): Use it.
	* msgl-check.h: Include plural-eval.h.
	(check_plural_eval): New declaration.
	* msgl-check.c (check_plural_eval): Add const to first parameter. Make
	non-static.
	(check_plural): Update.
	* msgmerge.c: Include plural-exp.h, msgl-check.h, po-xerror.h.
	(msgfmt_check_pair_fails): Remove function.
	(silent_error_logger, silent_xerror): New functions.
	(message_merge): Add plural_distribution, plural_distribution_length
	arguments. Call check_msgid_msgstr_format_i instead of
	msgfmt_check_pair_fails.
	(match_domain): Extract not only the plural count, but also the
	plural expression from the header entry. Determine the plural
	distribution from it. Pass it to message_merge.
	Reported by Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>.

2007-10-20  Bruno Haible  <bruno@clisp.org>

	* msgl-check.c (check_plural): If there is no header entry, or if the
	header entry does not contain plural= and nplurals=, return a plural
	distribution corresponding to the Germanic plural.

2007-10-20  Bruno Haible  <bruno@clisp.org>

	* format.h (check_msgid_msgstr_format): Add plural_distribution_length
	argument.
	* format.c (check_msgid_msgstr_format): Likewise.
	* msgl-check.h (check_message): Likewise.
	* msgl-check.c (check_plural_eval, check_plural, check_pair,
	check_message): Likewise.
	(check_message_list): Update.

2007-10-18  Bruno Haible  <bruno@clisp.org>

	* plural-count.c (get_plural_count): Adapt to changed prototype of
	extract_plural_expression.
	* write-csharp.c (write_csharp_expression): Add const to parameter.
	(write_csharp_code): Adapt to changed prototype of
	extract_plural_expression.
	* write-java.c (write_java_expression): Add const to parameter.
	(write_java_code): Adapt to changed prototype of
	extract_plural_expression.

2007-10-07  Bruno Haible  <bruno@clisp.org>

	* hostname.c (main): In the --version output, say GPLv3+.
	* msgattrib.c (main): Likewise.
	* 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.
	* recode-sr-latin.c (main): Likewise.
	* urlget.c (main): Likewise.
	* xgettext.c (main): Likewise.

2007-09-30  Bruno Haible  <bruno@clisp.org>

	* xgettext.c (package_name, package_version): New variables.
	(long_options): Add --package-name, --package-version.
	(main): Handle options --package-name, --package-version.
	(usage): Document them.
	(construct_header): Use package_name if present.
	* msginit.c (project_id_version): Take a header argument. Return the
	old value if already present.
	(fields): Update.

2007-09-30  Bruno Haible  <bruno@clisp.org>

	* message.h (format_type): New enum value 'format_kde'.
	(NFORMATS): Increment.
	* message.c (format_language): Add format_kde entry.
	(format_language_pretty): Likewise.
	* format.h (formatstring_kde): New declaration.
	* format-kde.c: New file.
	* format.c (formatstring_parsers): Add formatstring_kde.
	* x-c.c (init_flag_table_c): Also register flags for qt-format and
	kde-format.
	* xgettext.c (flag_table_cxx_kde): New variable.
	(recognize_format_kde): New variable.
	(main): Handle --kde option.
	(usage): Document --kde option.
	(xgettext_record_flag): Also fill flag_table_cxx_kde.
	(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
	kde-format.
	(language_to_extractor): Use a flag_table_cxx_kde that is different
	from flag_table_c.
	* Makefile.am (FORMAT_SOURCE): Add format-kde.c.
	* FILES: Update.

2007-09-09  Bruno Haible  <bruno@clisp.org>

	Add support for Qt 4 format strings.
	* format-qt.c (struct spec): Increase args_used field size to 100.
	Add 'simple' field.
	(format_parse): Update for Qt 4 syntax. Remove error message when the
	same format argument is used more than once.
	(format_check): Add check: If the msgid is simple, the msgstr must be
	simple as well.
	Reported by Chusslove Illich <caslav.ilic@gmx.net>.

2007-09-02  Bruno Haible  <bruno@clisp.org>

	Correct handling of different libexpat ABIs.
	* x-glade.c: Include <stdint.h>.
	(p_XML_GetCurrentLineNumber, p_XML_GetCurrentColumnNumber): New
	variables.
	(is_XML_LARGE_SIZE_ABI, GetCurrentLineNumber, GetCurrentColumnNumber):
	New functions.
	(XML_GetCurrentLineNumber, XML_GetCurrentColumnNumber): Redefine.
	(XML_Expat_Version, XML_FeatureEnum, XML_Feature): New types.
	(p_XML_ExpatVersionInfo, p_XML_GetFeatureList): New variables.
	(p_XML_GetCurrentLineNumber, p_XML_GetCurrentColumnNumber): Change
	type to 'void *'.
	(XML_ExpatVersionInfo, XML_GetFeatureList): New macros.
	(XML_Size_ABI): New type.
	(get_XML_Size_ABI): New function.
	(XML_GetCurrentLineNumber, XML_GetCurrentColumnNumber): New functions.
	(load_libexpat): Try both version 2 and version 1. Initialize
	p_XML_ExpatVersionInfo, p_XML_GetFeatureList.

2007-09-02  Bruno Haible  <bruno@clisp.org>

	Implement msgctxt for C# ResourceManagers.
	* x-csharp.c (init_keywords): Also register GetParticularString and
	GetParticularPluralString.
	(init_flag_table_csharp): Update accordingly.
	* write-csharp.c: Include xmalloca.h.
	(write_csharp_msgid): New function.
	(write_csharp_code): Use it instead of write_csharp_string.
	(msgdomain_write_csharp): Remove error message if mlp has entries with
	context.
	* msgunfmt.cs (DumpResource.DumpMessage): Emit an msgctxt line
	if the message contain the context separator.

2007-09-01  Bruno Haible  <bruno@clisp.org>

	Implement msgctxt for Java ResourceBundles.
	* x-java.c (init_keywords): Also register pgettext and npgettext.
	(init_flag_table_java): Update accordingly.
	* write-java.c (msgid_hashcode): New function.
	(compute_hashsize, compute_table_items): Use it instead of
	string_hashcode.
	(write_java_msgid): New function.
	(write_java_code): Use it instead of write_java_string.
	(msgdomain_write_java): Remove error message if mlp has entries with
	context.
	* gnu/gettext/DumpResource.java (dumpMessage): Emit an msgctxt line
	if the message contain the context separator.
	Suggested by Felix Berger.

2007-09-01  Bruno Haible  <bruno@clisp.org>

	* po-lex.c: Include uniwidth.h.

2007-06-19  Bruno Haible  <bruno@clisp.org>

	* x-c.c (phase8_get): Call free_token, so that the reference to
	tmp.comment gets dropped.

2007-08-27  Bruno Haible  <bruno@clisp.org>

	* x-python.c (phase7_getuc): Interpret octal and hexadecimal escapes
	as Unicode code points inside Unicode strings.
	Reported and patch by Jakub Wilk <ubanus@users.sf.net>.

2007-08-23  Bruno Haible  <bruno@clisp.org>

	* file-list.c: Don't include getline.h.
	* format-awk.c: Likewise.
	* format-boost.c: Likewise.
	* format-c.c: Likewise.
	* format-csharp.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-brace.c: Likewise.
	* format-perl.c: Likewise.
	* format-php.c: Likewise.
	* format-python.c: Likewise.
	* format-qt.c: Likewise.
	* format-scheme.c: Likewise.
	* format-sh.c: Likewise.
	* format-tcl.c: Likewise.
	* format-ycp.c: Likewise.
	* msginit.c: Likewise.
	* x-perl.c: Likewise.

2007-08-18  Bruno Haible  <bruno@clisp.org>

	* write-csharp.c (msgdomain_write_csharp): Don't recommend to use
	--verbose if it is already in use.
	* write-java.c (msgdomain_write_java): Likewise.
	Reported by Karsten Kousgaard <karsten@f-kousgaard.dk>.

2007-07-07  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (AM_CPPFLAGS): Remove reference to libuniname directory.
	(LIBUNINAME): Remove variable.
	(xgettext_LDADD): Update.

2007-07-04  Bruno Haible  <bruno@clisp.org>

	Recognize the PHP string concatenation operator.
	* x-php.c (enum token_type_ty): New elements token_type_dot,
	token_type_operator1, token_type_operator2.
	(struct token_ty): Add comment field.
	(free_token): Drop reference to comment field.
	(phase4_pushback, phase4_pushback_length): New variables.
	(phase4_get): Renamed from x_php_lex. Return last pushed-back token if
	available. Recognize tokens '.', '+', '-', '*', '/', '%', '++', '--',
	'!', '~', '@'. Fill in tp->comment.
	(phase4_unget): New function.
	(phase5_last): New variable.
	(x_php_lex): New function.
	(extract_balanced): Handle the new token types. Pass token's comment
	to remember_a_message.
	(extract_php): Initialize phase5_last.
	Reported by Jan Engelhardt <jengelh@computergmbh.de>.

2007-06-30  Bruno Haible  <bruno@clisp.org>

	* hostname.c (main): Use the standard --version output, see
	<http://lists.gnu.org/archive/html/bug-gnulib/2007-03/msg00302.html>.
	* msgattrib.c (main): Likewise.
	* 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.
	* recode-sr-latin.c (main): Likewise.
	* urlget.c (main): Likewise.
	* xgettext.c (main): Likewise.

2007-06-30  Bruno Haible  <bruno@clisp.org>

	* lang-table.c (language_table): Fix entry for Javanese.

2007-06-28  Bruno Haible  <bruno@clisp.org>

	* format-gcc-internal.c (format_parse): Tweak an error message.
	Reported by Karl Eichwalder.

2007-06-28  Bruno Haible  <bruno@clisp.org>

	* lang-table.h (language_variant_table, language_variant_table_size):
	New declarations.
	* lang-table.c (language_variant_table, language_variant_table_size):
	New variables.
	* msginit.c (language_team_englishname): New function.
	(language_team): Use it instead of englishname_of_language.
	Reported by Li Daobing <lidaobing@gmail.com>.

2007-06-25  Bruno Haible  <bruno@clisp.org>

	Change boundary of extracted comments.
	* x-perl.c (struct token_ty): Add comment field.
	(free_token): Release tp->comment.
	(extract_quotelike): Fill in tp->comment.
	(x_perl_prelex): Set or release tp->comment when constructing tokens.
	(x_perl_lex): Likewise.
	(extract_balanced): Pass token's comment to remember_a_message.

2007-06-18  Bruno Haible  <bruno@clisp.org>

	Change boundary of extracted comments.
	* x-ycp.c (struct token_ty): Add comment field.
	(free_token): New function.
	(phase5_get): Fill in tp->comment.
	(phase8_get): Use free_token.
	(extract_parenthesized): Pass token's comment to remember_a_message.
	Use free_token.
	Reported by Karl Eichwalder <ke@suse.de>.

2007-06-09  Bruno Haible  <bruno@clisp.org>

	* format-java.c: Include xmalloca.h instead of xallocsa.h.
	(message_format_parse): Use xmalloca/freea instead of xallocsa/freesa.
	* message.c: Include xmalloca.h instead of xallocsa.h.
	(message_list_hash_insert_entry, message_list_search): Use
	xmalloca/freea instead of xallocsa/freesa.
	* msggrep.c: Include xmalloca.h instead of xallocsa.h.
	(is_message_selected_no_invert): Use xmalloca/freea instead of
	xallocsa/freesa.
	* msginit.c: Include xmalloca.h instead of xallocsa.h.
	(subst_string): Use xmalloca/freea instead of xallocsa/freesa.
	* msgl-cat.c: Include xmalloca.h instead of xallocsa.h.
	(catenate_msgdomain_list): Use xmalloca/freea instead of
	xallocsa/freesa.
	* msgl-charset.c: Include xmalloca.h instead of xallocsa.h.
	(compare_po_locale_charsets): Use xmalloca/freea instead of
	xallocsa/freesa.
	* msgl-iconv.c: Include xmalloca.h instead of xallocsa.h.
	(iconv_message_list_internal, is_message_list_iconvable): Use
	xmalloca/freea instead of xallocsa/freesa.
	* msgmerge.c: Include xmalloca.h instead of xallocsa.h.
	(merge): Use xmalloca/freea instead of xallocsa/freesa.
	* po-charset.c: Include xmalloca.h instead of xallocsa.h.
	(po_lex_charset_set): Use xmalloca/freea instead of xallocsa/freesa.
	* read-tcl.c: Include xmalloca.h instead of xallocsa.h.
	(msgdomain_read_tcl): Use xmalloca/freea instead of xallocsa/freesa.
	* write-java.c: Include xmalloca.h instead of xallocsa.h.
	(compute_hashsize, msgdomain_write_java): Use xmalloca/freea instead of
	xallocsa/freesa.
	* write-mo.c: Include xmalloca.h instead of xallocsa.h.
	(write_table): Use xmalloca/freea instead of xallocsa/freesa.
	* write-po.c: Include xmalloca.h instead of xallocsa.h.
	(msgdomain_list_print_po): Use xmalloca/freea instead of
	xallocsa/freesa.
	* write-tcl.c: Include xmalloca.h instead of xallocsa.h.
	(msgdomain_write_tcl): Use xmalloca/freea instead of xallocsa/freesa.
	* xgettext.c: Include xmalloca.h instead of xallocsa.h.
	(flag_context_list_table_insert): Use xmalloca/freea instead of
	xallocsa/freesa.

2007-06-08  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.
	* recode-sr-latin.c (main): Likewise.
	* hostname.c (main): Likewise.
	* urlget.c (main): Likewise.

2007-06-08  Bruno Haible  <bruno@clisp.org>

	* msginit.c: Include localename.h.
	(_nl_locale_name): Remove declaration.
	(main): Use gl_locale_name instead of _nl_locale_name.
	* Makefile.am (msginit_LDADD): Remove localename object file.

2007-05-28  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (WOE32_LDADD): New variable.
	(LDADD, 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, msginit_LDADD, msguniq_LDADD, recode_sr_latin_LDADD):
	Include it.
	(gettext.res): New rule.
	(MOSTLYCLEANFILES): Add gettext.res.

2007-05-27  Bruno Haible  <bruno@clisp.org>

	Avoid link error; u16_mbtouc_aux is no longer a public API.
	* x-java.c (string_buffer_append): Use u16_mbtouc instead of
	u16_mbtouc_aux.
	* x-python.c (mixed_string_buffer_append): Likewise.

2007-05-13  Bruno Haible  <bruno@clisp.org>

	* write-java.c (mkdir): Remove definition. Now done by gnulib.
	* write-csharp.c (mkdir): Remove definition. Now done by gnulib.

2007-05-13  Bruno Haible  <bruno@clisp.org>

	* msgl-check.c: Include stdio.h instead of vasprintf.h.
	* po-lex.c: Don't include vasprintf.h.

2007-03-27  Bruno Haible  <bruno@clisp.org>

	* hostname.c (usage): Ask translators to specify a translation bug
	report address.
	* 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.
	* recode-sr-latin.c (usage): Likewise.
	* urlget.c (usage): Likewise.
	* xgettext.c (usage): Likewise.

2007-03-24  Bruno Haible  <bruno@clisp.org>

	* po-lex.c: Include unistr.h instead of utf8-ucs4.h.
	* read-properties.c: Include unistr.h instead of utf16-ucs4.h,
	ucs4-utf8.h.
	* x-java.c: Likewise.
	* read-stringtable.c: Include unistr.h instead of utf8-ucs4.h,
	ucs4-utf8.h.
	* x-csharp.c: Likewise.
	* write-csharp.c: Include unistr.h instead of utf8-ucs4.h.
	* write-java.c: Likewise.
	* write-properties.c: Likewise.
	* write-qt.c: Likewise.
	* write-tcl.c: Likewise.
	* x-perl.c: Likewise.
	* x-python.c: Include unistr.h instead of utf8-ucs4.h, utf16-ucs4.h,
	ucs4-utf8.h.
	* x-tcl.c: Include unistr.h instead of ucs4-utf8.h.

2007-03-17  Bruno Haible  <bruno@clisp.org>

	* x-php.c (enum token_type_ty): New values token_type_lbracket,
	token_type_rbracket.
	(x_php_lex): Recognize also token_type_lbracket, token_type_rbracket.
	(extract_balanced): Renamed from extract_parenthesized. Add 'delim'
	argument. Handle token_type_lbracket and token_type_rbracket.
	(extract_php): Update.
	Reported by Robert Vock <RobertVock@gmx.de>.

2007-03-10  Bruno Haible  <bruno@clisp.org>

	* msginit.c (get_user_fullname): Reduce scope of local variables.

2007-03-04  Bruno Haible  <bruno@clisp.org>

	Moved --enable-relocatable infrastructure to gnulib.
	* Makefile.am: Remove SET_RELOCATABLE invocation.

2007-02-25  Bruno Haible  <bruno@clisp.org>

	* color.c: Include filename.h instead of pathname.h.
	(style_file_prepare): Update.
	* msginit.c: Include filename.h instead of pathname.h.
	(project_id, project_id_version): Update.
	* open-catalog.c: Include filename.h instead of pathname.h.
	(try_open_catalog_file): Update.
	* read-csharp.c: Include filename.h instead of pathname.h.
	(msgdomain_read_csharp): Update.
	* read-resources.c: Include filename.h instead of pathname.h.
	(read_resources_file): Update.
	* read-tcl.c: Include filename.h instead of pathname.h.
	(msgdomain_read_tcl): Update.
	* write-csharp.c: Include filename.h instead of pathname.h.
	(msgdomain_write_csharp): Update.
	* write-java.c Include filename.h instead of pathname.h.
	(msgdomain_write_java): Update.
	* write-resources.c: Include filename.h instead of pathname.h.
	(msgdomain_write_csharp_resources): Update.
	* write-tcl.c: Include filename.h instead of pathname.h.
	(msgdomain_write_tcl): Update.
	* xgettext.c: Include filename.h instead of pathname.h.
	(main, xgettext_open): Update.

2007-02-19  Bruno Haible  <bruno@clisp.org>

	* file-list.c: Don't include exit.h.
	* hostname.c: Likewise.
	* 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.
	* msgl-cat.c: Include <stdlib.h> instead of exit.h.
	* msgl-charset.c: Likewise.
	* msgl-check.c: Don't include exit.h.
	* msgmerge.c: Likewise.
	* msgunfmt.c: Likewise.
	* msguniq.c: Likewise.
	* po-lex.c: Likewise.
	* po-xerror.c: Likewise.
	* read-csharp.c: Likewise.
	* read-java.c: Likewise.
	* read-mo.c: Likewise.
	* read-resources.c: Likewise.
	* read-tcl.c: Likewise.
	* recode-sr-latin.c: Likewise.
	* urlget.c: Likewise.
	* write-mo.c: Likewise.
	* write-qt.c: Likewise.
	* write-resources.c: Likewise.
	* write-tcl.c: Include <stdlib.h> instead of exit.h.
	* x-awk.c: Don't include exit.h.
	* x-c.c: Likewise.
	* x-csharp.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-python.c: Likewise.
	* x-rst.c: Include <stdlib.h> instead of exit.h.
	* x-scheme.c: Don't include exit.h.
	* x-sh.c: Likewise.
	* x-smalltalk.c: Likewise.
	* x-tcl.c: Likewise.
	* x-ycp.c: Likewise.
	* xgettext.c: Likewise.

2007-01-28  Bruno Haible  <bruno@clisp.org>

	* x-java.c (string_buffer_append_lone_surrogate): New function.
	(string_buffer_flush_utf16_surr, string_buffer_append): Use it.

2007-01-28  Bruno Haible  <bruno@clisp.org>

	* x-java.c (string_buffer_flush_utf16_surr): Give a warning when
	converting a surrogate code point to U+FFFD.
	(string_buffer_append): Convert a lone high surrogate code point to
	U+FFFD, and give a warning.

2007-01-26  Bruno Haible  <bruno@clisp.org>

	* msgfilter.c: Include <sys/time.h> unconditionally.

2007-01-26  Bruno Haible  <bruno@clisp.org>

	* msginit.c: Don't include strpbrk.h, use <string.h> instead.

2007-01-26  Bruno Haible  <bruno@clisp.org>

	* msgmerge.c: Don't include stpncpy.h, use <string.h> instead.

2007-01-26  Bruno Haible  <bruno@clisp.org>

	* msgfmt.c: Don't include stpcpy.h, use <string.h> instead.
	* msgmerge.c: Likewise.

2007-01-21  Bruno Haible  <bruno@clisp.org>

	* msgl-iconv.c (convert_string, convert_msgstr, iconvable_string,
	iconvable_msgstr): Update for changed calling convention of
	xmem_cd_iconv.
	* recode-sr-latin.c (process): Likewise.

2007-01-07  Bruno Haible  <bruno@clisp.org>

	* msgmerge.c (message_merge): Copy the obsolete bit from the ref
	message.
	Reported by Leonardo Fontenelle <leo.fontenelle@gmail.com>.

2006-12-24  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (AM_CXXFLAGS): New variable.

2006-12-23  Bruno Haible  <bruno@clisp.org>

	* color.c (print_color_test): Print labels before the hue/saturation
	rectangle. Show also a few lines that mix colors and attributes.

2006-12-03  Bruno Haible  <bruno@clisp.org>

	* msgcat.c: Include color.h.
	(long_options): Add --color, --style options.
	(main): Handle them. Invoke print_color_test when --color=test was
	given.
	(usage): Document --color, --style options.

2006-12-01  Bruno Haible  <bruno@clisp.org>

	Add styling support to the PO output routines.
	* color.h: New file.
	* color.c: New file.
	* write-catalog.h (struct catalog_output_format): Add field
	'supports_color'.
	* write-catalog.c: Include fcntl.h, unistd.h, styled-ostream.h,
	term-styled-ostream.h, html-styled-ostream.h, fd-ostream.h, color.h,
	po-charset.h, msgl-iconv.h.
	(STDOUT_FILENO): New macro.
	(ENABLE_COLOR): New macro.
	(msgdomain_list_print): Use a styled_ostream_t that uses the
	style_file_name.
	* write-po.c: Include format.h, styled-ostream.h.
	(is_stylable, begin_css_class, end_css_class): New functions or macros.
	(class_header, class_translated, class_untranslated, class_fuzzy,
	class_obsolete, class_comment, class_translator_comment,
	class_extracted_comment, class_reference_comment, class_reference,
	class_flag_comment, class_flag, class_fuzzy_flag,
	class_previous_comment, class_previous, class_msgid, class_msgstr,
	class_keyword, class_string, class_text, class_escape_sequence,
	class_format_directive, class_invalid_format_directive): New variables.
	(ATTR_ESCAPE_SEQUENCE, ATTR_FORMAT_DIRECTIVE,
	ATTR_INVALID_FORMAT_DIRECTIVE): New enum items.
	(message_print_comment, message_print_comment_dot,
	message_print_comment_filepos, message_print_comment_flags): Call
	begin/end_css_class.
	(memset_small): New function.
	(wrap): Add css_class argument. Determine the extent of format
	string directives. Call begin/end_css_class.
	(print_blank_line): Call begin/end_css_class.
	(message_print, message_print_obsolete): Likewise. Pass a css_class
	argument to 'wrap'.
	(msgdomain_list_print_po): Call begin/end_css_class.
	(output_format_po): Update.
	* write-properties.c (output_format_properties): Update.
	* write-stringtable.c (output_format_stringtable): Update.
	* Makefile.am (noinst_HEADERS): Add color.h.
	(libgettextsrc_la_SOURCES): Add color.c.

2006-11-26  Bruno Haible  <bruno@clisp.org>

	* write-po.c (make_format_description_string,
	make_c_width_description_string): Strip off the leading space.
	(message_print_comment_flags): Print the space here.
	* write-stringtable.c (write_message): Print the space here.

2006-11-26  Bruno Haible  <bruno@clisp.org>

	* write-po.c: Include write-catalog.h instead of write-properties.h,
	write-stringtable.h.

2006-11-26  Bruno Haible  <bruno@clisp.org>

	* format.h (FMTDIR_START, FMTDIR_END, FMTDIR_ERROR): New enum values.
	(FDI_SET): New macro.
	(struct formatstring_parser): Add fdi argument to 'parse' method.
	* format.c (check_msgid_msgstr_format): Update.
	* format-awk.c (format_parse): Add fdi argument. Invoke FDI_SET.
	* format-boost.c (format_parse): Likewise.
	* format-c.c (format_parse): Add fdi argument. Invoke FDI_SET.
	(format_c_parse, format_objc_parse): Add fdi argument.
	(get_sysdep_c_format_directives): Update.
	* format-csharp.c (format_parse): Add fdi argument. Invoke FDI_SET.
	* format-elisp.c (format_parse): Likewise.
	* format-gcc-internal.c (format_parse): Likewise.
	* format-java.c (message_format_parse): Add fdi argument. Invoke
	FDI_SET.
	(choice_format_parse): Update.
	(format_parse): Add fdi argument.
	* format-librep.c (format_parse): Add fdi argument. Invoke FDI_SET.
	* format-lisp.c (parse_upto): Add fdi argument. Invoke FDI_SET.
	(format_parse): Add fdi argument.
	* format-pascal.c (format_parse): Add fdi argument. Invoke FDI_SET.
	* format-perl.c (format_parse): Likewise.
	* format-perl-brace.c (format_parse): Likewise.
	* format-php.c (format_parse): Likewise.
	* format-python.c (format_parse): Add fdi argument. Invoke FDI_SET.
	(get_python_format_unnamed_arg_count): Update.
	* format-qt.c (format_parse): Add fdi argument. Invoke FDI_SET.
	* format-scheme.c (parse_upto): Add fdi argument. Invoke FDI_SET.
	(format_parse): Add fdi argument.
	* format-sh.c (format_parse): Add fdi argument. Invoke FDI_SET.
	* format-tcl.c (format_parse): Likewise.
	* format-ycp.c (format_parse): Likewise.
	* msgmerge.c (msgfmt_check_pair_fails): Update.
	* read-mo.c (read_mo_file): Update.
	* xgettext.c (set_format_flags_from_context, remember_a_message,
	remember_a_message_plural): Update.

2006-11-25  Bruno Haible  <bruno@clisp.org>

	* message.h (message_list_copy, msgdomain_list_copy): New declarations.
	* message.c (message_list_copy, msgdomain_list_copy): New functions.

2006-11-25  Bruno Haible  <bruno@clisp.org>

	* msgl-iconv.h (iconv_msgdomain_list): Add update_header argument.
	* msgl-iconv.c (iconv_message_list_internal): Renamed from
	iconv_msgdomain_list. Add update_header argument.
	(iconv_message_list): New function.
	(iconv_msgdomain_list): Add update_header argument.
	* msgcmp.c (compare): Update iconv_msgdomain_list call.
	* msgconv.c (main): Likewise.
	* msgfilter.c (main): Likewise.
	* msgmerge.c (merge): Likewise.
	* xgettext.c (main): Likewise.

2006-11-23  Bruno Haible  <bruno@clisp.org>

	* write-catalog.h: Include ostream.h. Don't include <stdio.h>.
	(struct catalog_output_format): Use ostream_t instead of 'FILE *'.
	* write-catalog.c: Include ostream.h, file-ostream.h.
	(msgdomain_list_print): Open a temporary file_ostream_t.
	* write-po.h: Include ostream.h. Don't include <stdio.h>.
	(message_print_comment, message_print_comment_dot,
	message_print_comment_filepos, message_print_comment_flags): Replace
	'FILE *' argument with an 'ostream_t' argument.
	* write-po.c: Include ostream.h.
	(message_print_comment, message_print_comment_dot,
	message_print_comment_filepos, message_print_comment_flags, wrap,
	print_blank_line, message_print, message_print_obsolete,
	msgdomain_list_print_po): Replace 'FILE *' argument with an 'ostream_t'
	argument.
	* write-properties.c: Include ostream.h.
	(write_escaped_string, write_message, write_properties,
	msgdomain_list_print_properties): Replace 'FILE *' argument with an
	'ostream_t' argument.
	* write-stringtable.c: Include ostream.h, xvasprintf.h. Don't include
	<stdio.h>.
	(write_escaped_string, write_message, write_stringtable,
	msgdomain_list_print_stringtable): Replace 'FILE *' argument with an
	'ostream_t' argument.

2006-11-12  Bruno Haible  <bruno@clisp.org>

	* write-po.c (wrap): Indent by use of spaces, not tabs.

2006-11-03  Bruno Haible  <bruno@clisp.org>

	Simplify xmalloc expressions. Add overflow check in xmalloc arguments.
	* filter-sr-latin.c (serbian_to_latin): Use XNMALLOC instead of xmalloc.
	* format-awk.c (format_parse): Use XMALLOC instead of xmalloc.
	* format-boost.c (format_parse): Likewise.
	* format-c.c (format_parse): Use XMALLOC, XNMALLOC instead of xmalloc.
	(get_sysdep_c_format_directives): Use XNMALLOC instead of xmalloc.
	* format-csharp.c (format_parse): Use XMALLOC instead of xmalloc.
	* 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 (copy_list): Use XMALLOC, XNMALLOC instead of xmalloc.
	(make_unconstrained_list): Likewise.
	(make_empty_list): Use XMALLOC instead of xmalloc.
	(rotate_loop): Use XNMALLOC instead of xmalloc.
	(make_intersected_list): Use XMALLOC instead of xmalloc.
	(make_union_list): Use XMALLOC, XNMALLOC instead of xmalloc.
	(make_repeated_list_of_lists): Likewise.
	(make_repeated_list): Likewise.
	(format_parse): Use XMALLOC instead of xmalloc.
	* format-pascal.c (format_parse): Likewise.
	* format-perl.c (format_parse): Likewise.
	* format-perl-brace.c (format_parse): Use XMALLOC, XNMALLOC instead of
	xmalloc.
	* format-php.c (format_parse): Use XMALLOC instead of xmalloc.
	* format-python.c (format_parse): Use XMALLOC, XNMALLOC instead of
	xmalloc.
	* format-qt.c (format_parse): Use XMALLOC instead of xmalloc.
	* format-scheme.c (copy_list): Use XMALLOC, XNMALLOC instead of xmalloc.
	(make_unconstrained_list): Likewise.
	(make_empty_list): Use XMALLOC instead of xmalloc.
	(rotate_loop): Use XNMALLOC instead of xmalloc.
	(make_intersected_list): Use XMALLOC instead of xmalloc.
	(make_union_list): Use XMALLOC, XNMALLOC instead of xmalloc.
	(make_repeated_list_of_lists): Likewise.
	(make_repeated_list): Likewise.
	(format_parse): Use XMALLOC instead of xmalloc.
	* format-sh.c (format_parse): Use XMALLOC, XNMALLOC instead of xmalloc.
	* format-tcl.c (format_parse): Use XMALLOC instead of xmalloc.
	* format-ycp.c (format_parse): Likewise.
	* message.c (message_alloc, message_list_list_alloc, msgdomain_alloc):
	Use XMALLOC instead of xmalloc.
	(msgdomain_list_alloc): Use XMALLOC, XNMALLOC instead of xmalloc.
	* msgexec.c (main): Use XNMALLOC instead of xmalloc.
	* msgfilter.c (main, generic_filter, process_message): Likewise.
	* msgfmt.c (add_mo_suffix): Likewise.
	(new_domain): Use XMALLOC instead of xmalloc.
	* msginit.c (catalogname_for_locale, language_of_locale,
	get_user_fullname, get_field, put_field, subst_string,
	update_msgstr_plurals): Use XNMALLOC instead of xmalloc.
	* msgl-cat.c (catenate_msgdomain_list): Likewise.
	* msgl-check.c (check_plural_eval): Use XCALLOC instead of xcalloc.
	* msgl-english.c (msgdomain_list_english): Use XNMALLOC instead of
	xmalloc.
	* msgl-fsearch.c (new_index): Likewise.
	(message_fuzzy_index_alloc): Use XMALLOC instead of xmalloc.
	(mult_index_list_accumulate): Use XNMALLOC instead of xmalloc.
	* msgl-iconv.c (iconv_message_list): Likewise.
	* msgmerge.c (message_merge, match_domain): Likewise.
	* po-gram-gen.y (plural_form_list): Likewise.
	* read-catalog-abstract.c (po_parse_comment_filepos,
	po_parse_comment_solaris_filepos): Likewise.
	* read-mo.c (get_sysdep_string): Likewise.
	* read-properties.c (conv_from_iso_8859_1, read_escaped_string):
	Likewise.
	* read-stringtable.c (conv_from_ucs4): Likewise.
	* str-list.c (string_list_alloc): Use XMALLOC instead of xmalloc.
	(string_list_concat, string_list_join): Use XNMALLOC instead of xmalloc.
	* write-csharp.c (construct_class_name, msgdomain_write_csharp):
	Likewise.
	* write-java.c (compute_hashsize, compute_table_items): Likewise.
	* write-mo.c: Include xsize.h.
	(write_table): Use XNMALLOC instead of xmalloc. Use xsum, xtimes in
	xmalloc argument.
	* write-po.c (wrap): Use XNMALLOC instead of xmalloc.
	* write-properties.c (conv_to_java): Likewise.
	* write-qt.c (conv_to_iso_8859_1, conv_to_utf16): Likewise.
	* x-elisp.c (init_token, string_of_object): Likewise.
	(read_object): Use XMALLOC instead of xmalloc.
	* x-librep.c (init_token, string_of_object): Use XNMALLOC instead of
	xmalloc.
	(read_object): Use XMALLOC instead of xmalloc.
	* x-lisp.c (x_lisp_keyword, init_token, string_of_object): Use XNMALLOC
	instead of xmalloc.
	(read_object): Use XMALLOC instead of xmalloc.
	* x-perl.c (get_here_document, extract_quotelike_pass1,
	extract_quotelike_pass3): Use XNMALLOC instead of xmalloc.
	(x_perl_lex): Use XMALLOC instead of xmalloc.
	* x-po.c (strextract_add_message, extract): Use XNMALLOC instead of
	xmalloc.
	* x-python.c (try_to_extract_coding): Use XNMALLOC instead of xmalloc.
	* x-scheme.c (init_token, string_of_object): Use XNMALLOC
	instead of xmalloc.
	(read_object): Use XMALLOC instead of xmalloc.
	* x-sh.c (init_token, string_of_token, string_of_word): Use XNMALLOC
	instead of xmalloc.
	(read_word): Use XMALLOC instead of xmalloc.
	* x-smalltalk.c (phase2_get): Use XNMALLOC instead of xmalloc.
	* x-tcl.c (init_token, string_of_word): Use XNMALLOC instead of xmalloc.
	(read_word): Use XMALLOC instead of xmalloc.
	* xgettext.c: Include xsize.h.
	(split_keywordspec): Use XNMALLOC instead of xmalloc.
	(insert_keyword_callshape): Use XMALLOC instead of xmalloc. Use xsum,
	xtimes to avoid overflow.
	(flag_context_list_table_insert): Use XMALLOC instead of xmalloc.
	(savable_comment_add): Likewise.
	(remember_a_message_plural): Use XNMALLOC instead of xmalloc.
	(arglist_parser_alloc, arglist_parser_clone): Use xsum, xtimes.
	(arglist_parser_done): Use XNMALLOC instead of xmalloc.
	(finalize_header): Likewise.

2006-10-30  Bruno Haible  <bruno@clisp.org>

	* plural-eval.h [C++]: Define functions without name mangling.

2006-10-29  Bruno Haible  <bruno@clisp.org>

	Clean up libgettextpo exports in C++ mode.
	* po-gram.h: Wrap declarations in extern "C".

2006-10-29  Bruno Haible  <bruno@clisp.org>

	Make it compile in C++ mode.
	* dir-list.c (dir_list_restore): Add cast.
	* format-c.c (format_arg_type_t): New type. Use it instead of
	'enum format_arg_type'.
	* format-gcc-internal.c (format_arg_type_t): New type. Use it instead of
	'enum format_arg_type'.
	* format-perl.c (format_arg_type_t): New type. Use it instead of
	'enum format_arg_type'.
	* format-lisp.c (struct segment): Move out of the scope of struct
	format_arg_list.
	* format-scheme.c (struct segment): Likewise.
	* message.h (struct altstr): Move out of the scope of struct message_ty.
	* msgl-equal.c (msgstr_equal_ignoring_potcdate): Cast memchr results.
	* po-lex.c (mb_copy): Rename arguments to new_mbc, old_mbc.
	* read-mo.c (enum mo_endianness): Move out of the scope of struct
	binary_mo_file.
	* read-po.c (this): New macro.
	* read-properties.c (this): New macro.
	* write-mo.c (write_table): Cast alloca result.
	* x-glade.c (load_libexpat): Cast dlsym results.
	* x-perl.c (get_here_document): Use xmalloc instead of
	xrealloc (NULL...). Cast its result.
	* x-po.c (extract_add_message): Limit the scope of variable
	'charsetstr'.
	* x-smalltalk.c (phase2_get): Cast xmalloc results.

2006-10-29  Bruno Haible  <bruno@clisp.org>

	* x-awk.h: Make includable without prerequisites.
	* x-c.h: Likewise.
	* x-csharp.h: Likewise.
	* x-elisp.h: Likewise.
	* x-glade.h: Likewise.
	* x-java.h: Likewise.
	* x-librep.h: Likewise.
	* x-lisp.h: Likewise.
	* x-perl.h: Likewise.
	* x-php.h: Likewise.
	* x-po.h: Likewise.
	* x-properties.h: Likewise.
	* x-python.h: Likewise.
	* x-rst.h: Likewise.
	* x-scheme.h: Likewise.
	* x-sh.h: Likewise.
	* x-smalltalk.h: Likewise.
	* x-stringtable.h: Likewise.
	* x-tcl.h: Likewise.
	* x-ycp.h: Likewise.
	* x-awk.c: Include x-awk.h.
	* x-c.c: Include x-c.h.
	* x-csharp.c: Include x-csharp.h.
	* x-elisp.c: Include x-elisp.h.
	* x-glade.c: Include x-glade.h.
	* x-java.c: Include x-java.h.
	* x-librep.c: Include x-librep.h.
	* x-lisp.c: Include x-lisp.h.
	* x-perl.c: Include x-perl.h.
	* x-php.c: Include x-php.h.
	* x-po.c: Include x-po.h, x-properties.h, x-stringtable.h.
	* x-python.c: Include x-python.h.
	* x-rst.c: Include x-rst.h.
	* x-scheme.c: Include x-scheme.h.
	* x-sh.c: Include x-sh.h.
	* x-smalltalk.c: Include x-smalltalk.h.
	* x-tcl.c: Include x-tcl.h.
	* x-ycp.c: Include x-ycp.h.
	* xgettext.c: Remove extern "C" around x-*.h includes.

2006-10-29  Bruno Haible  <bruno@clisp.org>

	* format-awk.c (format_parse): Fix bug with unnumbered argument in
	precision field.

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.
