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

	* gettext 0.19.6 released.

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

	* gettextize.in: Check if AM_GNU_GETTEXT_VERSION is used.
	* autopoint.in: Respect AM_GNU_GETTEXT_REQUIRE_VERSION.

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

	* gettextize.in (archive_version): New variable, set to
	ARCHIVE_VERSION.  Use it as the argument of
	AM_GNU_GETTEXT_VERSION.

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

	gettextize: Use a crafted version string
	Reported by Max Lin in:
	<https://lists.gnu.org/archive/html/bug-gettext/2015-07/msg00024.html>.
	* gettextize.in: Replace AM_GNU_GETTEXT_VERSION invocation with
	"$gettext_version" rather than "$version".  This makes it easier
	to maintain a minor release without being affected by the actual
	version number generated by git-version-gen.
	(gettext_version): New variable.

2015-07-27  Peter Eisentraut  <peter@eisentraut.org>  (tiny change)

	po-mode: Fix to accept four-part msgfmt version number
	* po-mode.el (po-msgfmt-version-check): Accept four-part version
	number.

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

	* gettext 0.19.5 released.

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

	* autopoint.in: Update for 0.19.5.

2015-04-24  Manuel Uberti  <manuel@boccaperta.com>  (tiny change)

	* po-mode.el (po-keep-mo-file): New user option.
	(po-validate): Respect po-keep-mo-file.  Fix comment indentation.

2015-01-21  Peter Eisentraut  <peter@eisentraut.org>  (tiny change)

	* po-mode.el (po-font-lock-keywords): Support all possible length
	modifiers in C89/C99 format strings.

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

	* gettext 0.19.4 released.

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

	* po-mode.el (po-mode-version-string): Bump to 0.23.

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

	* gettext 0.19.3 released.

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

	* autopoint.in: Update for 0.19.3.

2014-10-10  Eric Blake  <eblake@redhat.com>

	autopoint: Fix infinite recursion when tracing configure.ac
	Reported by Andreas Henriksson at:
	<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764580>
	* autopoint.in (func_trace_autoconf): Temporarily redefine
	built-in macros, instead of undefining.
	* gettextize.in: Likewise.

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

	* convert-archive.in: Don't use non-portable 'if ! COMMAND'.
	Reported by Stefano Lattarini in:
	<https://lists.gnu.org/archive/html/bug-gettext/2011-07/msg00002.html>.

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

	* gettext 0.19.2 released.

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

	autopoint: Fix the last change
	* autopoint.in: Use func_trace_sed for AM_GNU_GETTEXT and
	AM_GNU_GETTEXT_VERSION, as they are not an Autoconf trace.

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

	autopoint: Select macro tracing method by Autoconf version
	Reported and analyzed by Pádraig Brady in:
	<http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00071.html>.
	* autopoint.in (func_trace_autoconf): Rename from func_trace.
	($func_trace): Set to func_trace_autoconf if Autoconf >= 2.69 is
	available, otherwise to func_trace_sed.
	* gettextize.in: Likewise.

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

	* gettext 0.19.1 released.

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

	* gettext 0.19 released.

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

	autopoint: Unset variables known to interfere with common tools
	Reported by Jan Cholasta at:
	<https://bugzilla.redhat.com/show_bug.cgi?id=801374>.
	* autopoint.in: Unset CDPATH, CLICOLOR_FORCE, and GREP_OPTIONS.
	* gettextize.in: Unset CLICOLOR_FORCE and GREP_OPTIONS.

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

	* autopoint.in: Rename gettext_dir to gettext_datadir.
	* gettextize.in: Likewise.

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

	autopoint: Use SED-based trace for non-standard Autoconf macros
	Reported by Sean McGovern in <https://savannah.gnu.org/bugs/?41913>.
	* autopoint.in (func_trace_sed): New function; use it to trace
	AM_GNU_GETTEXT and AM_GNU_GETTEXT_VERSION.
	* gettextize.in (func_trace_sed): New function; use it to trace
	AM_GNU_GETTEXT.

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

	* autopoint.in: Allow user to specify the directory in which
	archive belongs, through $gettext_dir envvar.
	* gettextize.in: Likewise.

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

	* autopoint.in (func_trace): Allow user to specify autom4te
	executable name through $AUTOM4TE envvar.
	* gettextize.in (func_trace): Likewise.
	Suggested by Eric Blake at
	<https://lists.gnu.org/archive/html/bug-gettext/2013-12/msg00006.html>.

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

	* autopoint.in (func_trace): Disable m4_include and m4_esyscmd.
	* gettextize.in (func_trace): Likewise.
	Reported by Bernhard Voelker
	<https://lists.gnu.org/archive/html/bug-gettext/2013-11/msg00011.html>
	and suggested by Eric Blake at <https://savannah.gnu.org/bugs/?40083>.

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

	* autopoint.in: Use 'm4' as the default macro directory if it is
	not specified in configure.ac nor Makefile.am.
	Reported by Michał Górny in
	<http://savannah.gnu.org/bugs/?40278>.

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

	* autopoint.in (func_trace): Discard stderr of autom4te.
	* gettextize.in (func_trace): Likewise.
	Reported by Gary V. Vaughan in
	<http://savannah.gnu.org/bugs/?40083>.

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

	* autopoint.in: Recognize multiple arguments of AM_GNU_GETTEXT
	when tracing.
	* gettextize.in: Likewise.
	Reported by Gary V. Vaughan in
	<http://savannah.gnu.org/bugs/?40082>.

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

	autopoint: make macro trace in autom4te robuster
	* autopoint.in (func_trace): Ignore M4sugar macros which may abort
	autom4te and read gettext.m4 to trace AM_GNU_GETTEXT_* macros.
	* gettextize.in (func_trace): New function ported from autopoint.in.
	Reported by Sami Kerola in
	<https://lists.gnu.org/archive/html/bug-gettext/2013-07/msg00002.html>.

2013-07-29  Jan Djärv  <jan.h.d@swipnet.se>  (tiny change)

	* po-mode.el (po-send-mail): Don't include original uncompressed
	text in the mail.

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

	* autopoint.in (omitintl): Don't set it 'no' when no
	AM_GNU_GETTEXT call is found.
	Reported by Sebastien Helleu in <http://savannah.gnu.org/bugs/?39536>.

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

	* autopoint.in (func_trace): New function; use it all in places
	where Autoconf macro trace is needed.
	(func_version): Bump copyright year.
	* gettextize.in (func_version): Bump copyright year.

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

	* po-mode.el (po-font-lock-keywords): Properly highlight C format
	strings with parameter positions.
	Reported at
	<https://savannah.gnu.org/bugs/index.php?33552>.

2013-03-05  Ævar Arnfjörð Bjarmason  <avarab@gmail.com>  (tiny change)

	* po-mode.el (po-auto-update-file-header): New user option.
	(po-check-file-header): Respect 'po-auto-update-file-header'.

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

	* autopoint.in: Handle macro directories specified in configure.ac.
	Reported by Pavel Raiskup in
	<http://lists.gnu.org/archive/html/bug-gettext/2013-02/msg00017.html>.

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

	* gettextize.in: Use autoconf trace to detect auxdir and m4dir.

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

	* gettextize.in: Don't add redundant "-I m4" if
	AC_CONFIG_MACRO_DIR{,S} is not specified.

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

	* gettextize.in: Handle macro directories specified in configure.ac.
	Reported by Pavel Raiskup in
	<http://lists.gnu.org/archive/html/bug-gettext/2013-02/msg00017.html>.

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

	* autopoint.in (gettext_dir): Substitute PATH_SEPARATOR at
	configure time.
	* gettextize.in (gettext_dir): Substitute PATH_SEPARATOR at
	configure time.
	Suggested by Stefano Lattarini in
	<http://lists.gnu.org/archive/html/bug-gettext/2012-12/msg00066.html>.

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

	* autopoint.in: Extract version number from configure.ac in a more
	robust way.
	Reported by Tom G. Christensen in
	<http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00053.html>.

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

	* autopoint.in: Update for 0.18.2.

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

	* gettext-0.18.2 released.

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

	Improve interopability with Emacs 23.
	* po-compat.el (po-find-file-coding-system-guts): Don't use codepages
	API in Emacs >= 23.
	* po-mode.el (po-mode-version-string): Bump to 2.21.
	(po-ediff-buffers-exit-recursive, po-send-mail): Use
	insert-buffer-substring instead of insert-buffer.

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

	New options --with-xz and --with-bzip2 for compressing the archive.
	* autopoint.in: Handle the archive formats dirgz, dirbz2, dirxz instead
	of dir.
	* convert-archive.in: Handle the archive formats dirgz, dirbz2, dirxz
	like dir. Format 'dir' is now without compression.
	* Makefile.am (MOSTLYCLEANFILES): New variable.
	(CLEANFILES): Add archive.dir.tar.gz, archive.dir.tar.bz2,
	archive.dir.tar.xz.
	(EXTRA_DIST): Add archive.dir.tar. Remove archive.dir.tar.gz.
	(ARCHIVE_dirgz, ARCHIVE_dirbz2, ARCHIVE_dirxz, ARCHIVE_git,
	ARCHIVE_cvs): New variables.
	(gettextsrc_DATA): Use them.
	(archive.dir.tar): Renamed from archive.dir.tar.gz. Look for an
	installed .tar.bzip2 or .tar.xz as well.
	(archive.dir.tar.gz, archive.dir.tar.bz2, archive.dir.tar.xz): New
	rules.
	(archive.git.tar.gz, archive.cvs.tar.gz): Update.
	* add-to-archive: Read and write an uncompressed archive.dir.tar.

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

	Make 'convert-archive' less verbose.
	* convert-archive.in: Avoid all output from "git commit".

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

	* gettext-0.18.1 released.

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

	Don't assume GNU tar.
	* convert-archive.in (TAR, TAR_OPTIONS): New variables.
	Reported by Ryan Schmidt <ryandesign@macports.org>.

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

	* autopoint.in: Update for 0.18.1.

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

	Deprecate the --with-cvs option.
	* autopoint.in: Update comments.
	* add-to-archive: Update archive.dir.tar.gz, not archive.cvs.tar.gz.
	* Makefile.am (CLEANFILES): Add archive.cvs.tar.gz instead of
	archive.dir.tar.gz.
	(EXTRA_DIST): Add archive.dir.tar.gz instead of archive.cvs.tar.gz.
	(archive.dir.tar.gz): Adapted from archive.cvs.tar.gz rule.
	(archive.git.tar.gz, archive.cvs.tar.gz): Generate from
	archive.dir.tar.gz.

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

	Interoperability with newer versions of 'cvs'.
	* autopoint.in: Unset some more environment variables. Set
	CVS_SIGN_COMMITS to empty.
	* convert-archive.in: Likewise.

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

	convert-archive: Don't publicize the builder's name and email.
	* convert-archive.in: Unset GIT_CONFIG and set dummy user.name and
	user.email parameters.
	Reported by Santiago Vila <sanvila@unex.es>.

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

	Avoid keyword substitution in cvs archives created by convert-archive.
	* convert-archive.in: When creating a cvs archive, use "cvs admin -ko"
	on all files.

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

	Make convert-archive more robust.
	* convert-archive.in: Report a fatal error in many error conditions.
	Reported by Santiago Vila <sanvila@unex.es>.

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

	* convert-archive.in: Remove known 'rlog' warning from error output.
	(func_version): Update copyright years.

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

	* gettext-0.18 released.

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

	* autopoint.in: Update for 0.18.

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

	* autopoint.in (func_version): Bump copyright year.

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

	* po-mode.el (po-mode-version-string): Bump to 2.2.

2010-05-08  Noritada Kobayashi  <nori1@dolphin.c.u-tokyo.ac.jp>

	po-mode: Fix bug in po-previous-translated-entry function.
	* po-mode.el (po-previous-translated-entry): Use correct regular
	expression.
	Reported via Santiago Vila in
	<http://lists.gnu.org/archive/html/bug-gnu-utils/2008-08/msg00039.html>.

2010-05-08  Noritada Kobayashi  <nori1@dolphin.c.u-tokyo.ac.jp>
            Bruno Haible  <bruno@clisp.org>

	po-mode: Optionally delete previous untranslated comment when editing.
	* po-mode.el (po-auto-delete-previous-msgid): New customizable
	variable.
	(po-any-previous-msgctxt-regexp, po-any-previous-msgid-regexp,
	po-any-previous-msgid_plural-regexp): New variables.
	(po-msgid-to-msgstr, po-kill-msgstr, po-yank-msgstr, po-subedit-exit):
	Invoke po-maybe-delete-previous-untranslated after po-set-msgstr-form.
	(po-unfuzzy): Invoke po-maybe-delete-previous-untranslated.
	(po-previous-untranslated-region-for, po-previous-untranslated-regions,
	po-delete-previous-untranslated, po-maybe-delete-previous-untranslated):
	New functions.
	Reported in
	<http://lists.gnu.org/archive/html/bug-gnu-utils/2008-05/msg00032.html>.

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

	po-mode: Fix po-msgid-to-msgstr on plural entries.
	* po-mode.el (po-get-msgid_plural): New function.
	(po-msgid-to-msgstr): Use it.

2010-05-08  Noritada Kobayashi  <nori1@dolphin.c.u-tokyo.ac.jp>
            Bruno Haible  <bruno@clisp.org>

	po-mode: Fix po-get-msgid function in plural entries.
	* po-mode.el (po-get-msgid): Use po-start-of-msgid_plural as end
	pointer, if it is set.
	Reported in
	<http://lists.gnu.org/archive/html/bug-gnu-utils/2008-05/msg00031.html>.

2010-05-08  Noritada Kobayashi  <nori1@dolphin.c.u-tokyo.ac.jp>
            Bruno Haible  <bruno@clisp.org>

	po-mode: Determine position of "msgid_plural" line in current entry.
	* po-mode.el (po-start-of-msgid_plural): New variable.
	(po-any-msgid_plural-regexp): New variable.
	(po-mode): Make po-start-of-msgid_plural buffer-local.
	(po-find-span-of-entry): Set also po-start-of-msgid_plural.
	Based on patch in
	<http://lists.gnu.org/archive/html/bug-gnu-utils/2008-05/msg00031.html>.

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

	* po-mode.el (po-get-msgstr-flavor): Preserve the point's position.

2010-05-08  Noritada Kobayashi  <nori1@dolphin.c.u-tokyo.ac.jp>

	Fix failure of po-msgid-to-msgstr just after opening a buffer.
	* po-mode.el (po-msgstr-form-flavor): Remove variable.
	(po-get-msgstr-form): Do not call po-get-msgstr-flavor.
	(po-set-msgstr-form): Call po-get-msgstr-flavor function here.
	Reported in
	<http://lists.gnu.org/archive/html/bug-gnu-utils/2008-05/msg00028.html>.

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

	* po-mode.el (po-edit-string): Assign major mode text-mode to the
	subedit buffer.
	Reported by Kenichi Handa <handa@m17n.org>.

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

	* gettexize.in: Warn about use of --intl option.
	(func_usage): Mark it as deprecated.
	(func_version): Bump copyright year.

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

	* gettextize.in (m4filelist): Add fcntl-o.m4 instead of fcntl_h.m4 to
	the list.

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

	* po-compat.el: Untabify.
	* gettextize.in: Partially untabify.

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

	* gettextize.in (m4filelist): Add fcntl_h.m4 to the list.
	(func_version): Bump copyright year.

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

	* add-to-archive: Pass option -fPIC to gcc. Clean up cvsuser.so.

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

	Support alternative to the cvs-compression of the archive.
	* convert-archive.in: New file.
	* autopoint.in (func_version): Show the archive format.
	Support archive formats dir, cvs, git, instead of only cvs.
	* Makefile.am (DISTCLEANFILES): Add convert-archive.
	(CLEANFILES): Add archive.dir.tar.gz, archive.git.tar.gz.
	(gettextsrc_DATA): Depend on @ARCHIVE_FORMAT@.
	(archive.dir.tar.gz, archive.git.tar.gz): New rules.
	Reported by Arkadiusz Miskiewicz in
	<https://savannah.gnu.org/bugs/?27281>.

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

	* add-to-archive: Use archive.cvs.tar.gz instead of archive.tar.gz.
	* autopoint.in: Likewise.
	* Makefile.am (archive.cvs.tar.gz): Renamed from archive.tar.gz.
	(EXTRA_DIST, gettextsrc_DATA): Update.

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

	* Makefile.am (archive.tar.gz): Update error message.

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

	Add support for multiple PO directories to autopoint.
	* autopoint.in (sed_extract_config_files, configfiles,
	sed_remove_Makefile_in, podirs): New variables.
	(func_destfile): Set allpodirs.
	When allpodirs is set, loop over $podirs.
	Reported by Guillem Jover <guillem@debian.org>
	via Santiago Vila <sanvila@unex.es>.

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

	* autopoint.in (func_version): Bump copyright year.

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

	* autopoint.in (func_compare): New function.
	Don't overwrite *.m4 files when the existing file has a version number
	at least as large as the one from the gettext release.
	Reported by Colin Watson <cjwatson@debian.org>
	and Sylvain Beucler <beuc@beuc.net>.

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

	* gettextize.in (m4filelist): Add threadlib.m4 to the list.
	(func_version): Bump copyright year.

2008-08-13  Sven Joachim  <svenjoac@gmx.de>

	* po-mode.el (po-check-file-header): Use forward-line with
	negative argument instead of previous-line.
	(po-add-attribute): Use forward-line instead of next-line.

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

	* po-mode.el (po-replace-revision-date): Return nil.
	Patch by Kobayashi Noritada <nori1@dolphin.c.u-tokyo.ac.jp>.

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

	* po-mode.el (po-team-name-to-code): Add Beja. Remove Adangme, Banda,
	Batak. Update Scottish Gaelic, Central Khmer, Romansh.

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

	Fix editing of plural forms.
	* po-mode.el (po-mode-version-string): Bump to 2.11.
	(po-any-msgstr-block-regexp): Must start with msgstr or msgstr[0];
	needed for re-search-backward.
	(po-get-msgstr-flavor): Set the point to po-start-of-msgstr-form, not
	to the beginning of the line.
	Reported by Stéphane Raimbault <stephane.raimbault@gmail.com>.

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

	* autopoint.in: Check that really all CVS directories are removed.
	Reported by Jim Meyering <jim@meyering.net>.

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

	* autopoint.in (xver): Make its computation more robust.
	Reported by Michael Bauschert <Michael.Bauschert@de.ibm.com>.

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

	* autopoint.in: Fix line breaking in an error message.

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

	* po-mode.el: Use modern backquote syntax.
	Report and patch by Agustin Martin <agmartin@debian.org> via
	Santiago Vila <sanvila@unex.es>.

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

	* gettext-0.17 released.

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

	* autopoint.in: Update for 0.17.

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

	* gettextize.in (m4filelist): Remove ulonglong.m4 from the list.

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

	* po-mode.el (po-msgstr-form-flavor): Renamed from
	po-this-msgstr-flavor. New defvar.

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

	* po-mode.el (po-get-msgstr-form): Remove 'kill' argument.
	(po-kill-ring-save-msgstr, po-fade-out-entry): Update.

	* po-mode.el (po-get-msgid): Remove 'kill' argument.

	* po-mode.el (po-get-msgstr-form): Renamed from po-get-msgstr-new.
	(po-get-msgstr): Remove function.

	* po-mode.el (po-subedit-exit-old): Remove function.

	* po-mode.el (po-set-msgstr-form): Renamed from po-set-msgstr-new.
	(po-set-msgstr): Remove function.

	* po-mode.el (po-edit-msgstr-old): Remove function.

	* po-mode.el (po-edit-string): Renamed from po-edit-string-new. Remove
	old po-edit-string function.

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

	* po-mode.el (po-find-span-of-entry): Inline po-find-this-msgstr.
	(po-find-this-msgstr): Remove function.

	* po-mode.el (po-start-of-msgstr-form, po-end-of-msgstr-form): New
	defvars.

	* po-mode.el (po-start-of-msgstr-form): Renamed from
	po-start-of-this-msgstr.
	(po-end-of-msgstr-form): Renamed from po-end-of-this-msgstr.

	* po-mode.el (po-start-of-msgstr-block): Renamed from
	po-start-of-msgstr.

	* po-mode.el (po-any-msgstr-block-regexp): Renamed from
	po-any-msgstr-regexp.

	* po-mode.el (po-any-msgstr-form-regexp): Renamed from
	po-any-msgstr-regexp-old.

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

	* autopoint.in (func_version): In the --version output, say GPLv3+.
	* gettexize.in (func_version): Likewise.

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

	* Makefile.am (archive.tar.gz): Provide an explicit error message if
	archive.tar.gz cannot be found.
	Reported by Spiros at <https://savannah.gnu.org/bugs/?16657>.

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

	* autopoint.in (func_version): Use the standard --version output, see
	<http://lists.gnu.org/archive/html/bug-gnulib/2007-03/msg00302.html>.
	* gettexize.in (func_version): Likewise.

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

	* po-mode.el (po-check-file-header): Use save-restriction.
	Report and patch by Sven Joachim <sven_joachim@web.de> in
	<http://lists.gnu.org/archive/html/bug-gnu-utils/2006-08/msg00110.html>.

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

	* po-mode.el (po-team-name-to-code): Add a few more entries.

2007-06-29  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-find-this-msgstr): New function.
	(po-find-span-of-entry): Use it.

	* po-mode.el (po-get-msgstr-flavor): New function.
	(po-any-msgstr-regexp-old): New variable.
	(po-subedit-exit-old): New function, renamed from po-subedit-exit.
	(po-edit-msgstr-old): New function, renamed from po-edit-msgstr.
	(po-get-msgstr-new): New function, based on po-get-msgstr.
	(po-set-msgstr-new): New function, based on po-set-msgstr.
	(po-edit-string-new): New function, based on po-edit-string.
	(po-edit-msgstr): Use po-get-msgstr-new.
	(po-subedit-exit): Use po-set-msgstr-new.

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

	* po-mode.el (po-translation-project-address): Update email address
	after the Translation Project moved.
	(po-translation-project-mail-label): Update comment.

2007-06-29  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-subedit-mode-menu-layout, po-mode-menu-layout):
	Remove trailing string.
	* po-mode.el (po-mode-menu-layout): Make "Source marking" a submenu.
	Remove subtitles from menus.
	Comment unimplemented features.  Reorganize entry hierarchy.

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

	Support for the msgctxt syntax.
	* po-mode.el (po-mode-version-string): Bump version number to 2.1.
	(po-start-of-msgctxt): New variable.
	(po-any-msgctxt-msgid-regexp): New variable.
	(po-font-lock-keywords): Add msgctxt.
	(po-mode): Make variable po-start-of-msgctxt local.
	(po-find-span-of-entry): Set also po-start-of-msgctxt.
	(po-add-attribute, po-delete-attribute): Use po-start-of-msgctxt.

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

	* po-mode.el (po-mode-map): Bind po-undo also to Ctrl-x u.

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

	* po-mode.el (po-any-msgstr-regexp): Add support for plural forms.
	The patch from 2001-03-10 did not work.
	(po-untranslated-regexp): Recognize also empty msgstr[i] values.

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

	* po-mode.el (po-edit-out-full): Don't ask the user for confirmation.

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

	* po-mode.el: Untabify.

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

	* po-mode.el (po-font-lock-keywords): Stop recognizing "msg" as a
	keyword.

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

	Fix '#' command on obsolete entries.
	* po-mode.el (po-comment-regexp): Renamed from po-active-comment-regexp.
	(po-obsolete-comment-regexp): Remove variable.
	(po-get-comment, po-set-comment): Fix syntax assumptions about comments
	for obsolete entries.

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

	* po-mode.el (po-msgid-to-msgstr): Fix English message.

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

	* po-mode.el (po-add-attribute, po-delete-attribute, po-fuzzy-regexp):
	Don't recognize the syntax "#! fuzzy" any more.

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

	* po-mode.el (po-validate): Protect the buffer-file-name against
	shell interpretation.
	Reported by Laurynas Biveinis <laurynas.biveinis@gmail.com>.

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

	* po-mode.el (po-msgfmt-version-check): Recognize also 0.16.2-pre1.

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

	* autopoint.in: Update year in --version output.

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

	* gettextize.in (m4filelist): Add intlmacosx.m4 to the list.
	(func_version): Update copyright year.

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

	* po-mode.el (po-mode-map): Bind po-undo also to Ctrl-_.
	Suggested by Kevin Ryde <user42@zip.com.au>.

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

	* gettextize.in (m4filelist): Remove longdouble.m4 from the list.

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

	* gettextize.in: Protect against spaces in the value of $gettext_dir.

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

	* gettextize.in (func_usage): Document --po-dir.
	Handle the --po-dir option. Loop over each specified --po-dir value
	instead of hardcoding po/.
	Reported by Daniel Leidert <daniel.leidert.spam@gmx.net>.

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

	* gettext-0.16.1 released.

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

	* autopoint.in: Update for 0.16.1.

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

	* gettext-0.16 released.

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

	* autopoint.in: Update for 0.16.

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

	* gettextize.in (m4dir_is_next): Reset it to empty when the m4dir was
	seen.
	(m4dir_defaulted): New variable.
	In the recommendations how to run aclocal, show all the needed -I
	options, not just one.
	Reported by Ralf Wildenhues.

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

	* gettextize.in (usage): Document the --symlink option instead of the
	--copy option.
	Accept a --symlink option.
	(try_ln_s): Change default value to false.

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

	* gettextize.in (m4filelist): Add intldir.m4.

2006-09-18  Bruno Haible  <bruno@clisp.org>

	* gettextize.in (m4filelist): Remove inttypes-h.m4.

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

	* gettextize.in (have_automake19, min_automake_version): New variables.
	(m4filelist): Use the minimum needed file list if --intl was not
	specified and automake version is >= 1.9.

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

	* gettextize.in (m4filelist): Add intl.m4.

2006-08-28  Bruno Haible  <bruno@clisp.org>

	* gettextize.in (m4filelist): Remove signed.m4.

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-21  Bruno Haible  <bruno@clisp.org>

	* gettext-0.15 released.

2006-07-20  Bruno Haible  <bruno@clisp.org>

	* autopoint.in: Update for 0.15.

2006-07-20  Bruno Haible  <bruno@clisp.org>

	* po-mode.el (po-mode-version-string): Bump to 2.02.

2006-06-27  Bruno Haible  <bruno@clisp.org>

	* gettextize.in (m4filelist): Remove isc-posix.m4.

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

	* gettextize.in (m4filelist): Replace inttypes.m4 with inttypes-h.m4.

2006-04-17  Bruno Haible  <bruno@clisp.org>

	* add-to-archive: Remove special handling of mkinstalldirs file.
	* gettextize.in: Likewise.

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

	* autopoint.in: Update for 0.15.

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

	* autopoint.in (func_find_curr_installdir): Handle the case of a
	symbolic link pointing to an absolute pathname correctly.
	* gettextize.in (func_find_curr_installdir): Likewise.

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

	* gettextize.in (func_tmpdir): Invoke mktemp without option -q, because
	in some versions of mktemp this option has the effect that mktemp
	outputs nothing at all.
	(func_version): Bump copyright year.
	* autopoint.in (func_tmpdir): Invoke mktemp without option -q.
	(func_version): Bump copyright year.
	Patch by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.

2005-09-18  Bruno Haible  <bruno@clisp.org>

	* autopoint.in (func_find_curr_installdir): Really remove the temporary
	directory after use.
	* gettextize.in (func_find_curr_installdir): Likewise.

2005-08-26  Bruno Haible  <bruno@clisp.org>

	* po-mode.el (po-team-name-to-code): Add support for Old English,
	Hyam, Jju, Tyap, Kagoma, Maithili, Mayan, Nahuatl, Low Saxon,
	Northern Sotho, Páez, Tetum, Zapotec.

2005-07-24  Bruno Haible  <bruno@clisp.org>

	Tidy up exported symbols.
	* gettextize.in (m4filelist): Add visibility.m4.

2005-07-26  Bruno Haible  <bruno@clisp.org>

	* autopoint.in (datarootdir): New variable.
	* gettextize.in (datarootdir): New variable.

2005-07-16  Bruno Haible  <bruno@clisp.org>

	* gettextize.in (m4filelist): Add lock.m4.

2005-07-09  Bruno Haible  <bruno@clisp.org>

	* po-mode.el (po-validate): Require the 'compile' module before
	accessing it.
	Report and patch by Sven Joachim <sven_joachim@web.de>.

2006-06-21  Bruno Haible  <bruno@clisp.org>

	* gettext-0.14.6 released.

2006-06-21  Bruno Haible  <bruno@clisp.org>

	* autopoint.in: Update for 0.14.6.

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

	* gettext-0.14.5 released.

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

	* autopoint.in: Update for 0.14.5.

2005-04-11  Bruno Haible  <bruno@clisp.org>

	* gettext-0.14.4 released.

2005-04-11  Bruno Haible  <bruno@clisp.org>

	* autopoint.in: Update for 0.14.4.

2005-03-14  Bruno Haible  <bruno@clisp.org>

	* gettext-0.14.3 released.

2004-10-23  Bruno Haible  <bruno@clisp.org>

	* start-po-el: New file.
	* Makefile.am (lisp_LISP): Add it.

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

	* autopoint.in: Update for 0.14.3.

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

	* gettextize.in: Compute comma separated lists for ChangeLog entries
	correctly. Also comma-separate the EXTRA_DIST ChangeLog entry.

2005-03-07  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Create the auxdir if it doesn't exist.
	Suggested by Alexandre Duret-Lutz <adl@src.lip6.fr>.

2005-03-07  Bruno Haible  <bruno@clisp.org>

	* gettextize.in (func_m4ChangeLog_init, func_m4ChangeLog_add_entry,
	func_m4ChangeLog_finish): Let the behaviour depend on
	using_m4ChangeLog. Initialize using_m4ChangeLog depending on whether
	an m4/ChangeLog already exists.
	Suggested by Alexandre Duret-Lutz <adl@src.lip6.fr>.

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

	* gettextize.in: Update the instructions for fetching config.guess and
	config.sub.
	Reported by Alexandre Duret-Lutz <adl@src.lip6.fr>.

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

	* autopoint.in (func_destfile): Also set a variable 'sharedowner'.
	For files with shared ownership, treat local modification as a warning.
	Suggested by Alexandre Duret-Lutz <adl@src.lip6.fr>.

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

	* gettextize.in: When a po/POTFILES.in does not exist, create an
	initial empty one.
	Reported by Alexandre Duret-Lutz <adl@src.lip6.fr>.

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

	* gettextize.in (func_m4ChangeLog_init, func_m4ChangeLog_finish):
	Keep track whether a $m4dir/ChangeLog file was created.
	Don't create a $m4dir/Makefile.am if aclocal version 1.8 or newer is
	present; instead add $m4dir/ChangeLog to EXTRA_DIST if needed.
	Reported by Alexandre Duret-Lutz <adl@src.lip6.fr>.

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

	* gettextize.in: When adding items to EXTRA_DIST, SUBDIRS,
	DIST_SUBDIRS, ACLOCAL_AMFLAGS in Makefile.am, optionally remove one
	space after the added items. When adding items to AC_CONFIG_FILES,
	AC_OUTPUT in configure.ac, remove don't insert an extra space after
	the added items.
	Suggested by Alexandre Duret-Lutz <adl@src.lip6.fr>.

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

	* gettextize.in: Emit brackets around the argument of
	AM_GNU_GETTEXT_VERSION.
	Suggested by Alexandre Duret-Lutz <adl@src.lip6.fr>.

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

	* gettextize.in: Don't recommend to add AM_GNU_GETTEXT([external])
	when it is already present.
	Suggested by Alexandre Duret-Lutz <adl@src.lip6.fr>.

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

	Remove old sh, tcl, perl interfaces.
	* gettext-sh: Remove file.
	* tcl_gettext.c, README-Tcl: Remove files.
	* gettext.perl: Remove file.
	* Makefile.am (EXTRA_DIST): Remove them.

2005-02-24  Bruno Haible  <bruno@clisp.org>

	* gettext-0.14.2 released.

2005-02-24  Bruno Haible  <bruno@clisp.org>

	* autopoint.in: Update for 0.14.2.

2005-02-07  Bruno Haible  <bruno@clisp.org>

	* autopoint.in: Use LC_ALL=C to protect range expression against
	Estonian locale.
	* gettextize.in: Likewise.

2005-02-05  Bruno Haible  <bruno@clisp.org>

	* autopoint.in: Check the version number, instead of relying on cvs
	for doing so.
	Reported by Paul Eggert.

2005-01-10  Bruno Haible  <bruno@clisp.org>

	Security fixes.
	* autopoint.in: Exit if the creation of one of the temporary
	directories fails. Also restrict the access to the temporary cvs_dir.
	Reported by Javier Fernández-Sanguino Peña <jfs@computer.org>.

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

	* autopoint.in (func_tmpdir): New function.
	(func_find_curr_installdir): Use it.
	(mismatchfile): Create inside a temporary directory. Remove afterwards.
	* gettextize.in (func_tmpdir): New function.
	(func_find_curr_installdir): Use it.
	Reported by Joey Hess <joeyh@debian.org>.

2005-01-05  Bruno Haible  <bruno@clisp.org>

	* autopoint.in: Update year in --version output.
	* gettextize.in: Likewise.

2005-01-05  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Unset CDPATH in a more robust way.

2004-12-14  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Unset CDPATH.

2004-02-07  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Modify only the first occurrence of AC_CONFIG_FILES,
	not all of them.
	Reported by Dalibor Topic <robilad@kaffe.org>.

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

	* gettextize.in: Add po to SUBDIRS if it was created in this run.
	Tell the user to create po/POTFILES.in if it is not yet there.
	Reported by Prof. Roberto Bagnara <bagnara@cs.unipr.it>.

2004-02-02  Bruno Haible  <bruno@clisp.org>

	* gettextize.in (m4filelist): Add glibc2.m4.

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-19  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Modify DIST_SUBDIRS like SUBDIRS, when it was found in
	Makefile.am.
	Reported by Dalibor Topic <robilad@kaffe.org>.

2003-12-17  Bruno Haible  <bruno@clisp.org>

	* gettext-0.13.1 released.

2003-11-30  Bruno Haible  <bruno@clisp.org>

	* gettext-0.13 released.

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

	* gettextize.in (m4filelist): Remove ssize_t.m4.

2003-11-16  Bruno Haible  <bruno@clisp.org>

	* gettextize.in (m4filelist): Add size_max.m4, ssize_t.m4, xsize.m4.

2003-11-08  Bruno Haible  <bruno@clisp.org>

	* autopoint.in: Allow configure.in.in to be used instead of
	configure.in.

2003-08-11  Bruno Haible  <bruno@clisp.org>

	* autopoint.in: When local files have been modified, create a .diff
	file for the user's convenience.
	Suggested by Denis Barbier <barbier@debian.org>.

2003-08-07  Bruno Haible  <bruno@clisp.org>

	* autopoint.in: Fix the regular expression used to parse intl/VERSION.
	Patch by Denis Barbier <barbier@debian.org>.

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

	* gettextize.in (m4filelist): Add intmax.m4, longdouble.m4,
	longlong.m4, printf-posix.m4, signed.m4, wchar_t.m4, wint_t.m4.

2003-05-22  Bruno Haible  <bruno@clisp.org>

	* gettext-0.12.1 released.

2003-05-17  Bruno Haible  <bruno@clisp.org>

	* gettext-0.12 released.

2003-05-08  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Ignore ACLOCAL_AMFLAGS options of the form -Idir when
	dir is an absolute pathname.
	Reported by Jürgen A. Erhard <jae+debian@jerhard.org>.

2003-04-29  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Recommend running automake only after aclocal,
	because automake 1.7 assumes that aclocal.m4 has already been built.

2003-04-12  Bruno Haible  <bruno@clisp.org>

	* Makefile.vms: 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-11  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (archive.tar.gz): Avoid creating an empty tar.gz file.
	Reported by Martin Mokrejš <mmokrejs@natur.cuni.cz>.

2003-03-30  Bruno Haible  <bruno@clisp.org>

	* Makefile.vms: New file.
	* Makefile.am (EXTRA_DIST): Add Makefile.vms.

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

	Native Woe32/MSVC support.
	* Makefile.msvc: New file.
	* Makefile.am (EXTRA_DIST): Add it.

2003-02-28  Bruno Haible  <bruno@clisp.org>

	Support for relocatable installation.
	* autopoint.in: Relocate $gettext_dir.
	* gettextize.in: Relocate $gettext_dir.

2003-02-16  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Create po/Makevars.template from installed
	po/Makevars.template, not from po/Makevars.
	(func_version): Update copyright year.

2003-02-16  Bruno Haible  <bruno@clisp.org>

	* po-compat.el: Add testing instructions.
	(po-find-file-coding-system-guts) [XEMACS]: Make it work again,
	after (car (nth i po-content-type-charset-alist)) changed from symbol
	to string.

2003-02-12  Bruno Haible  <bruno@clisp.org>

	* elisp-comp: Move to ../../config/elisp-comp.
	* Makefile.am (EXTRA_DIST): Remove elisp-comp.

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

	* Makefile.am: Make use of += for variables.

2003-01-08  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (EXTRA_DIST): Add elisp-comp.

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

	Switch to autoconf-2.57 and automake-1.7.2.
	* elisp-comp: Upgrade to automake-1.7.2.

2002-11-13  Bruno Haible  <bruno@clisp.org>

	Assume ANSI C.
	* tcl_gettext.c (tcl_gettext, tcl_textdomain, tcl_bindtextdomain):
	Use ANSI C function declarations.

2002-10-25  Karl Eichwalder  <ke@suse.de>

	* po-compat.el (po-find-file-coding-system-guts): Provide the old
	version (pre 2002-09-27) for XEmacs.

2002-10-16  Bruno Haible  <bruno@clisp.org>

	* po-compat.el: Remove call of codepage-setup of all support codepages.
	(po-find-file-coding-system-guts): Avoid code duplication.

2002-09-27  Karl Eichwalder  <ke@suse.de>

	* po-compat.el (po-content-type-charset-alist): Convert the
	car of each association to a string.  From emacs CVS
	(lisp/textmodes/po.el); provided by Eli Zaretskii.
	(po-find-file-coding-system-guts): If the charset matches a name
	of a codepage, set up that codepage and return it as a coding
	system to decode the file.  Likewise from emacs CVS.

	* po-compat.el: Line up comment etc. with lisp/textmodes/po.el.
	(po-find-charset): Search for the Charset= header even if we've read
	less than 4KB.  From emacs CVS (lisp/textmodes/po.el); provided by
	Eli Zaretskii.

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

	* autopoint.in: Call func_fatal_error, not fatal_error.
	Patch by Sam Hocevar <sam@zoy.org>.

2002-08-26  Bruno Haible  <bruno@clisp.org>

	* archive.tar.gz: Avoid keyword substitution for archive/mkinstalldirs.
	Reported by Colin Watson <cjwatson@debian.org>.

2002-08-12  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Fix typo in the handling of AM_GNU_GETTEXT_VERSION.
	Reported by Adam Heath <doogie@debian.org>.

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

	* gettext-0.11.5 released.

2002-08-03  Paul Eggert  <eggert@twinsun.com>

	* gettextize.in: Use "read dummy" to avoid an error with Solaris
	/bin/sh.

2002-08-02  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Add ulonglong.m4 to m4filelist.

2002-07-25  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11.4 released.

2002-07-25  Bruno Haible  <bruno@clisp.org>

	* add-to-archive: New file.
	* add-to-autopoint-files: Remove file.
	* cvsuser.c: New file.
	* Makefile.am (EXTRA_DIST): Remove add-to-autopoint-files. Add
	add-to-archive, cvsuser.c.

2002-07-25  Bruno Haible  <bruno@clisp.org>

	* autopoint.in: Unset also CVS_IGNORE_REMOTE_ROOT and CVSIGNORE.

2002-07-23  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Add inttypes-pri.m4 to m4filelist.

2002-07-21  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Add inttypes.m4, inttypes_h.m4, stdint_h.m4,
	uintmax_t.m4 to m4filelist.

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

	* gettextize.in: Copy also intdiv0.m4.

2002-07-17  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11.3 released.

2002-07-16  Bruno Haible  <bruno@clisp.org>

	* po-mode.el (po-mode-version-string): Bump to 2.01.

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

	* po-mode.el (po-mode-line-entry...): Try harder to find a good place
	for adding po-mode-line-entry into mode-line-format.
	Reported by Sam Steingold <sds@gnu.org>.

2002-05-12  Bruno Haible  <bruno@clisp.org>

	* po-compat.el: Add ISO-8859-14, KOI8-T, GEORGIAN-PS to the list of
	allowed encodings.

2002-05-11  Bruno Haible  <bruno@clisp.org>

	* autopoint.in: Recognize AM_GNU_GETTEXT_VERSION(..) syntax.
	* gettextize.in: Likewise.

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

	* autopoint.in: Unset all other environment variables which influence
	cvs. Pass -d $CVSROOT explicitly.
	(func_mkdir_for): New function.
	(func_copy): Call it.

2002-05-01  Bruno Haible  <bruno@clisp.org>

	* autopoint-files: New directory.
	* add-to-autopoint-files: New file.
	* autopoint.in: New file.
	* Makefile.am (EXTRA_DIST): Add add-to-autopoint-files, archive.tar.gz.
	(DISTCLEANFILES): Add autopoint.
	(gettextsrcdir): New variable.
	(gettextsrc_DATA): New variable.
	(archive.tar.gz): New rule.
	* gettextize.in: Bump GETTEXT_VERSION value in configure.in.
	Ask maintainer to acknowledge the remaining changes.

2002-04-28  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Avoid the remarks about po/Makevars and config.guess
	if they are not necessary.

	* gettextize.in: New option -n/--dry-run.

	* gettextize.in: Use functions for maintainability.
	Remove undocumented option --run.

	* gettextize.in: Use 'echo' instead of '$echo'.

2002-04-29  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-mode-menu-layout): Don't try to display tooltips
	for XEmacs.
	(po-subedit-mode-menu-layout): Likewise.

2002-04-28  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Treat mkinstalldirs like config.rpath.

2002-04-27  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-mode-menu-layout): Add tooltips.
	(po-subedit-mode-menu-layout): Likewise.

	* po-mode.el (po-mode-menu-layout): Adopt terminology for editing
	from Emacs (cut/copy/paste).

2002-04-24  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11.2 released.

2002-04-22  Bruno Haible  <bruno@clisp.org>

	* Makefile.am (lisp_LISP): Add po-compat.el.
	(EXTRA_DIST): Use it.

2002-03-17  Karl Eichwalder  <ke@suse.de>

	* po-compat.el: New file, extracted from po-mode.el.
	* po-mode.el (po-content-type-charset-alist, po-find-charset,
	po-find-file-coding-system-guts, po-find-file-coding-system): Move to
	po-compat.el.

2002-04-19  Bruno Haible  <bruno@clisp.org>

	* po-mode.el (po-team-name-to-code): Add Ido and Walloon. Change
	Javanese from jw to jv.

2002-03-15  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Use "sed -e 1q" instead of "head -1", for compliance
	to pure naked POSIX 1003.1-2001 environments.
	From Paul Eggert.

2002-03-14  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-team-name-to-code): Add es_AR, zh_CN, and zh_TW.

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

	* gettext-0.11.1 released.

2002-03-11  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-find-file-coding-system-guts): Checking
	'insert-file-contents' must come first to avoid messing up with
	arguments.
	Reported by Neil Darlow; fixed by Andreas Schwab.

2002-03-09  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-find-file-coding-system-guts): Don't try to
	detect the coding system when filename does not exist.
	(po-compute-counters): Search for "^msgid" not 'po-next-entry' if
	we don't know for sure any entry will follow at all.

2002-02-18  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-mode): Provide it.

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

	* gettextize.in: Mark all error messages which lead to failure with
	asterisks and "*** Stop.".

2002-02-11  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-subedit-ediff): When variants are equal don't call
	'po-ediff-buffers-exit-recursive'.

2002-02-09  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-send-mail): Set coding-system-for-read and
	coding-system-for-write to the coding system of the po buffer;
	otherwise Emacs will fall back to mule-utf-8 when the default coding
	system is different from the po buffer and thus the following
	'shell-command-on-region' will prepare an wrongly encoded file (e.g.,
	mule-utf-8 instead of UTF-8).

2002-02-09  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-translation-project-address): Convert it to a
	customizable variable.
	(po-translation-project-mail-label): New variable.
	(po-send-mail): Use it.

2002-02-01  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-mode-version-string): New variable.
	(po-mode-version): Use it instead of RCS/CVS Revision tag.

2002-01-31  Bruno Haible  <bruno@clisp.org>

	* gettext-0.11 released.

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

	* gettextize.in: If directory intl was removed, remove it from SUBDIRS
	in Makefile.am.
	If intl/Makefile.in was removed, remove intl/Makefile from
	AC_OUTPUT/AC_CONFIG_FILES statement in configure.in.
	Remove intl/intlh.inst from AC_OUTPUT/AC_CONFIG_FILES statement in
	configure.in.
	Remove old-style "sed ... > po/Makefile" statement from configure.in.
	Remove old-style AC_LINK_FILES statement from configure.in.
	Recommend replacement for Makefile variables DATADIRNAME, INSTOBJEXT,
	GENCAT, POSUB.
	Recommend replacement for shell variables nls_cv_header_intl,
	nls_cv_header_libgt.

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

	* gettextize.in: New option --no-changelog.
	Don't create ChangeLog entries for files that don't change.
	Verify the existence of a configure.in line starting with "AC_OUTPUT("
	before attempting to modify it.
	Treat "AC_CONFIGURE_FILES(" like "AC_OUTPUT(".
	Recommend replacement for INTLLIBS Makefile variable.

2002-01-19  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Always recommend the full set of m4 files. Many
	improvements for packages that use automake. Modify configure.in.

2002-01-15  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Handle po/Makevars specially, don't overwrite the
	previous customizations.

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

	* gettextize.in: Update year in --version output.

2002-01-10  Bruno Haible  <bruno@clisp.org>

	* po-mode.el (po-content-type-charset-alist): Add Emacs20/21 codepages.

2001-11-20  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-ediff-buffers-exit-recursive): Kill ediff buffers
	after quitting the ediff session.

2002-01-03  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Recommend installation of gettext.h.

2001-12-15  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-eval-requoted): Add \r to avoid additional quoting
	during edit.  Reported by Santiago Vila.

2001-12-06  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Install config.rpath in the directory specified
	through AC_CONFIG_AUX_DIR, not necessarily in the toplevel dir.

2001-12-02  Bruno Haible  <bruno@clisp.org>

	* gettextize.in: Also copy config.rpath, and recommend to copy
	lib-ld.m4, lib-link.m4, lib-prefix.m4.

2001-11-25  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-guess-archive-name): Verify that versions provided by
	file name and by Project-Id-Version field match.

2001-11-18  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: New option --intl.
	(intldir): New variable.
	Don't populate intl subdirectory if --intl is omitted.

2001-11-19  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-ediff-quit): New function.
	(ediff-keymap-setup-hook): Assign key binding for 'po-ediff-quit'.
	(po-ediff-buffers-exit-recursive): New function, in part derived
	from 'po-subedit-ediff'.
	(po-subedit-ediff): Use it.

	* po-mode.el (po-subedit-ediff): Use meaningful buffer names,
	derived from 'marker-regex'.
	Cleanup: Follow docstring conventions.

2001-11-19  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-mode-map): Enable key binding for
	'po-edit-comment-and-ediff' ('C-c C-c' and 'C-c C-#').

2001-11-18  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-help-display-string): Adjust it.

2001-11-18  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-team-name-to-code): Fix syntax for the last entry
	(Zulu).

2001-11-11  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-subedit-ediff): New function.
	(po-edit-comment-and-ediff): New function.
	(po-edit-msgstr-and-ediff): New function.
	(po-subedit-mode-menu-layout): Add 'po-subedit-ediff'.
	(po-subedit-mode-map): Add key binding for 'po-subedit-ediff'.
	(po-mode-menu-layout): Add 'po-edit-comment-and-ediff' and
	'po-edit-msgstr-and-ediff'.
	(po-mode-map): Add key binding for 'po-edit-msgstr-and-ediff'.

2001-11-12  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-subedit-mode-syntax-table): New variable.
	(po-subedit-mode-map): Re-write according to po-mode-map and move
	it to a better location.

2001-11-10  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-find-file-coding-system-guts): Use
	'po-with-temp-buffer' instead of 'with-temp-buffer'.
	(po-msgfmt-version-check): Likewise.

2001-11-09  Dave Love  <fx@gnu.org>
            Bruno Haible  <haible@clisp.cons.org>

	* po-mode.el: Doc fixes.
	(po-mode-map): Put all in defvar.

2001-08-23  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-mode-map): Assign new Key bindings to avoid
	clashes with moving actions:
	'po-previous-fuzzy-entry' = 'F',
	'po-previous-obsolete-entry' = 'O',
	'po-previous-translated-entry' = 'T',
	'po-previous-untranslated' = 'U',
	'po-undo' = '_',
	'po-other-window' = '0',
	'po-select-auxiliary' = '\C-c\C-a'.
	(po-help-display-string): Likewise.

2001-08-23  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-next-translated-entry): Actually search for
	'translated', not 'untranslated'.

2001-11-01  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-msgfmt-version-check): Also accept pre-release
	versions.

2001-10-31  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Renamed COPYING.LIB-2 to COPYING.LIB-2.0.

2001-10-30  Bruno Haible  <haible@clisp.cons.org>

	* po-mode.el (po-team-name-to-code): Extend the list using items from
	src/msginit.c.

2001-10-26  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Use a different wording about aclocal.m4 if the
	package uses automake.

2001-10-21  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Copy only ABOUT-NLS, intl/, po/.

2001-09-25  Bruno Haible  <haible@clisp.cons.org>

	Upgrade to automake-1.5.
	* automake.diff: Remove file.

2001-09-08  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Don't copy installed jar files.

2001-08-23  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-compute-counters): First save `current'
	po-start-of-msgstr; use it to set `position' while looping over all
	entries.

2001-08-20  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-mode): Add newlines to fix layout problem calling
	'C-h m'.

2001-08-18  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-ensure-source-references): Use 'string-to-number'
	instead of 'string-to-int'.
	(po-msgfmt-version-check): Likewise.

2001-08-11  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-edit-string): Set indent-line-function to
	indent-relative; useful for editing --help messages.

2001-08-02  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-find-charset): Drop 'interactive'. Use
	'insert-file-contents-literally' to avoid side effects. Correct off
	by 1 error.

2001-08-07  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-subedit-mode-menu-layout): New definition.
	(po-edit-string): Use it to provide a menu for po-subedit-mode.

2001-08-01  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-find-awk-string, po-mark-awk-string,
	po-find-bash-string, po-mark-bash-string): New functions.
	(po-preset-string-functions): Add awk and bash support.

2001-08-02  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-find-file-coding-system-guts): Use ascii instead of
	none.
	(po-compute-counters): Don't start counting if there is not even a
	header entry.

2001-07-26  Bruno Haible  <haible@clisp.cons.org>

	* automake.diff: Update for automake-1.4-p5.

2001-08-01  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: Optimize testing for XEmacs.
	(po-auto-replace-revision-date): Do not quote t, as it evals to
	itself.
	(po-validate): Use the mode name instead of the constant PO to build
	the validation buffer name.
	(po-font-lock-keywords, po-find-charset,
	po-find-file-coding-system-guts, po-find-file-coding-system): Adjust
	some lines so they fit in 79 columns (pre-VT100).
	(po-compute-counters): Use string-equal instead of string=, to be
	consistent with the remainder of that code.
	(po-find-charset): Avoid infinite loop on empty file.

2000-05-31  Hrvoje Niksic  <hniksic@iskon.hr>

	* po-mode.el (po-create-overlay, po-highlight, po-rehighlight,
	po-dehighlight): Use XEmacs extent primitives.

2001-07-22  Bruno Haible  <haible@clisp.cons.org>

	* automake.diff: New file.

2001-08-02  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Change bug report address to
	<bug-gnu-gettext@gnu.org>.

2001-07-14  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-mode-abbrev-table): New variable.
	(po-edit-string): Use it.

2001-07-13  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-fade-out-entry): Replace yes-or-no-p by y-or-n-p;
	obsoleting an entry isn't fatal.

2000-01-18  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-ensure-source-references): Correctly imply the file
	name from the last which has been explicitly given.

2000-01-17  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-subedit-abort): Change variable names.
	(po-seek-equivalent-translation): Call set-buffer instead of
	select-buffer.
	(po-subedit-cycle-auxiliary): Adapt to multiple edits.

2001-08-12  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-find-charset, po-compute-counters,
	po-check-file-header, po-set-msgstr): Emacs 19 portability matters.

2000-01-03  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-check-file-header): Add a new line after default
	header only for non-empty PO files.

1999-12-10  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-send-mail): Clarify some prompts.
	Reported by Laurent Bourbeau.

1999-07-25  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-team-name-to-code): New variable.
	(po-guess-archive-name): Use it.

1999-06-01  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-guess-archive-name, po-guess-team-address): Accept
	more addresses, do not restrict to necessarily @li.org.

1998-12-06  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-guess-archive-name): Allow Free as well as GNU
	for domain name prefix.

1998-05-15  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-any-msgid-regexp, po-any-msgstr-regexp,
	po-msgstr-idx-keyword-regexp, po-obsolete-msgstr-regexp,
	po-set-msgstr, po-obsolete-comment-regexp, po-get-comment): Enforce
	#~ for obsolete entries.  The tilde is not optional anymore.

1998-05-09  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-after-entry-regexp): Check if at end of line, rather
	than for any character not being quoted.  Else, M-u skips over
	immediately previous untranslated entry, because backward pattern
	extends beyond point.  Reported by Kalle Niemitalo.

2001-07-13  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-validate): Check for 'null-device; if not available
	use "NUL" for windows-nt and windows-95 and /dev/null as fallback.
	From Eli Zaretskii and François Pinard.

2000-01-03  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-preset-string-functions): New function.
	(po-find-unknown-string, po-mark-unknown-string): New functions.
	(po-find-c-string): Return a 3-element list.
	(po-find-emacs-lisp-string): Likewise.
	(po-mark-found-string): Simplify consequently.
	(po-tags-loop-scan): Use po-preset-string-functions.

	* po-mode.el (po-mark-c-string, po-mark-emacs-lisp-string): Have
	marking functions to leave cursor after marked string.  Do not return
	updated end anymore.

	* po-mode.el (po-mark-found-string, po-mark-translatable,
	po-select-mark-and-mark): Other changes.

2000-01-02  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-tags-search): Better use the Emacs tags interface,
	and simplified.  Nested tags tables should be handled now.
	(po-tags-loop-scan, po-tags-loop-operate): New functions.
	(po-string-contents, po-string-buffer): New buffer local variables.
	(po-next-file-list): Deleted.  All usages adjusted.

2001-01-04  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-extract-part-unquoted): New function.
	(po-extract-unquoted, po-skip-over-python-string): Use it.

	* po-mode.el (po-skip-over-python-string): Missing parentheses.
	Reported by Andreas Schwab.

	* po-mode.el (po-find-python-string, po-mark-python-string,
	po-skip-over-python-string): New functions.
	(po-tags-search, po-mark-found-string): Use them in Python mode.

2001-08-13  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-mode): Issue message after running hooks rather than
	before, augmenting the chances that the message does not get erased.

1999-07-25  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-match-string): New function.
	(po-set-msgid): Use it.
	(po-set-msgstr): Likewise.
	(po-set-comment): Likewise.
	(po-ensure-source-references): Likewise.
	(po-guess-archive-name): Likewise.
	(po-guess-team-address): Likewise.

2000-08-11  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: Move blocks of code around in view of later patches.
	Do minor cosmetic changes.  Correct name-buffer into buffer-name
	whenever needed.  Remove one case of spurious testing code.
	Borrow the marking overlay if possible, do not creating a new one.

2000-01-24  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: Split portability matters in two.  A minimum for
	customisation to work, and the rest after the customisation page.
	Reported by Martin v. Löwis.

2000-01-17  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: To avoid compilation diagnostics, move customisation
	before portability matters and add some variable declarations.

1998-09-07  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: Merge make-local-variable within set whenever possible.

2001-07-06  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-msgfmt-version-check): Check for version strings with
	a single dot (e.g. 0.11) correctly.

2001-07-08  Karl Eichwalder  <ke@suse.de>

	* po-mode.el: Don't recommend to use po-mode for POT files.
	(po-find-charset): New function.
	(po-find-file-coding-system-guts): Use it to get rid of the 4096 limit.
	If no charset found, use "none".

2001-07-07  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-compute-counters): Don't count the header entry.
	Reported by Bernd Schandl.

2001-07-02  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-validate): Use private 'compile-command' and buffer
	name for validation output.

2001-07-01  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-mode): Use add-hook to call po-replace-revision-date
	saving the buffer.
	(po-quit): Don't call po-replace-revision-date.
	(po-validate): Likewise.
	Proposed by Bernd Schandl.

	(po-auto-replace-revision-date): Change default to 't'; otherwise the
	user will be asked too often.

2001-06-04  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-edit-string): Set 'buffer-file-coding-system'
	(for hints thanks to Eli Zaretskii).

2001-06-04  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-msgfmt-version-check): New. Check for GNU gettext
	0.10.36 or newer. Re-written by Stefan Monnier.
	(po-validate): Use 'po-msgfmt-version-check'.
	(po-validate): Use 'null-device' instead of literal "/dev/null".
	Reported by Eli Zaretskii.

2001-09-13  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.40 released.

2001-09-13  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Don't copy intl/COPYING*; these files may confuse
	the user of the enclosing package.

2001-07-24  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.39 released.

2001-07-11  Bruno Haible  <haible@clisp.cons.org>

	* po-mode.el (po-default-file-header): Replace 8-bit with 8bit.

2001-07-01  Bruno Haible  <haible@clisp.cons.org>

	* po-mode.el (po-content-type-charset-alist): Add entries for
	ISO-8859-15, GB2312, EUC-JP, EUC-KR, BIG5, SHIFT_JIS, TIS-620, VISCII.

2001-06-25  Bruno Haible  <haible@clisp.cons.org>

	* po-mode.el (po-find-file-coding-system): Make it work in XEmacs 20
	as well. Based on a patch by Enrico Scholz
	<enrico.scholz@informatik.tu-chemnitz.de>.

2001-05-23  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.38 released.

2001-05-22  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Copy plural.c and touch it afterwards.

2001-05-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* gettextize.in: Check for configure.ac in addition to configure.in.

2001-05-12  Paul Eggert  <eggert@twinsun.com>

	* gettextize.in: Replace "test -e" with "test -f", since the 'test'
	builtin of Solaris 8 /bin/sh doesn't grok "test -e".

2001-05-11  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Tell the user about glibc21.m4.

2001-05-09  Bruno Haible  <haible@clisp.cons.org>

	* po-mode.el (po-replace-revision-date): For the timezone, use RFC 822
	format [+/-]HHMM, not [+/-]HH:MM. Reported by Jan D.

2001-04-19  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.37 released.

2001-03-29  Bruno Haible  <haible@clisp.cons.org>

	* gettext-0.10.36 released.

2001-03-25  Bruno Haible  <haible@clisp.cons.org>

	* combine-sh: Remove file.
	* Makefile.am (EXTRA_DIST): Remove it.

2001-03-22  Bruno Haible  <haible@clisp.cons.org>

	* po-mode.el (po-default-file-header): Replace ENCODING with 8-bit.

2001-03-21  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Mention where to get config.guess and config.sub.

2001-03-20  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Verbosity: describe each action being done. Make the
	po/ChangeLog entry more intelligent.

2001-03-10  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-font-lock-keywords): Respect entry types
	'msgid_plural' and 'msgstr[]'.
	'%*s' is a valid sformat, too.
	(po-font-lock-keywords): Fix regexp; '[]' part is optional.
	(po-any-msgstr-regexp): Also match msgstr[] fields.
	(po-msgstr-idx-keyword-regexp): New variable.
	(po-set-msgstr): Respect indexed msgstr entries; use
	`po-msgstr-idx-keyword-regexp'.

2001-03-09  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Update copyright year. Add code to update
	po/ChangeLog and tell the user about the m4 macros. Don't attempt to
	run config.status, because aclocal.m4 is not ready.

2001-03-03  Karl Eichwalder  <ke@suse.de>

	* po-mode.el (po-subedit-exit): Run po-subedit-exit-hook before
	leaving the edit buffer.

2001-02-10  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Bail out if $gettext_dir doesn't exist.

2001-02-07  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Fix bug in 2000-12-08 patch.

2001-01-28  Bruno Haible  <haible@clisp.cons.org>

	* po-mode.el: Call autoload with 4 arguments.
	(po-content-type-charset-alist): Change cars to uppercase.
	(po-find-file-coding-system): Uppercase charset for lookup in
	po-content-type-charset-alist.

2001-01-06  Bruno Haible  <haible@clisp.cons.org>

	* magic.add: Remove file. Has been integrated into the 'file' package.
	* Makefile.am (EXTRA_DIST): Remove it.

2000-12-30  Bruno Haible  <haible@clisp.cons.org>

	* locale.alias: Move to ../intl.
	* Makefile.am (EXTRA_DIST): Remove locale.alias.
	(localedir, locale_DATA): Remove variables.

2000-12-08  Bruno Haible  <haible@clisp.cons.org>

	* gettextize.in: Preserve RCS and CVS subdirs in intl/.
	Reported by Santiago Vila <sanvila@unex.es>.

	* gettextize.in: Test for ABOUT-NLS, not NLS.

2000-10-26  GOTO Masanori  <gotom@debian.or.jp>

	* locale.alias: Add ja_JP.ujis alias.

2000-08-31  Ulrich Drepper  <drepper@redhat.com>

	* locale.alias: Add aliases for bokmal and nynorsk.

2000-08-21  Ulrich Drepper  <drepper@redhat.com>

	* locale.alias: Add aliases for Korean.

2000-08-01  Ulrich Drepper  <drepper@redhat.com>

	* locale.alias: Update japanese aliases.

2000-05-06  Ulrich Drepper  <drepper@redhat.com>

	* gettextize.in: Remove code to test for version of the m4 files.

	* po-mode.el: A few more changes by François Pinard.

1998-05-03  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-create-overlay) [po-XEMACS]: No argument.
	Reported by Ulrich Drepper.

1997-10-18  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-tags-search, po-mark-found-string): C++ as C.
	(po-find-c-string): Skip C++ comments as well.

1998-05-10  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-mode) [po-XEMACS]: Explicitely add menus.
	Reported by Hrvoje Niksic.

	* po-mode.el (po-mode-menu-layout): Give real access to auxiliary
	files through the menu, instead of leaving menu entries inactive.

1998-05-15  Ulrich Drepper  <drepper@cygnus.com>

	* tcl_gettext.c (tcl_gettext): Replace illegal with invalid.

1998-05-01 08:47  Ulrich Drepper  <drepper@cygnus.com>

	* gettext-0.10.35 released.

1998-03-30  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-tags-search, po-mark-translatable,
	po-select-mark-and-mark): Call interactive after the doc string,
	instead of before.
	Reported by Tom Tromey.

1998-04-27 21:17  Ulrich Drepper  <drepper@cygnus.com>

	* po-mode.el: Update from most recent version.

	* gettextize.in: Use aclocaldir from configuration.

1997-09-04  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: Rename po-middle-of-entry to po-start-of-msgstr, add
	variable po-start-of-msgid.  Use it whenever appropriate.

	* po-mode.el (po-find-file-coding-system): New function.
	Reported by Ken'ichi Handa.

	* po-mode.el: Normalise string= to string-equal.

	* po-mode.el (po-send-mail): Allow for mailing to the team.
	(po-guess-team-address): New function.

1997-09-02  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-set-comment): Unused variable buffer.
	(po-edit-string): Unused variables start, middle, end and obsolete.
	(po-tags-search): Unused variable find-string.

	* po-mode.el (po-check-lock): Create the work buffer as required, to
	avoid diagnostics about selecting a deleted buffer, after a user
	explicitly killed the work buffer instead of exiting it normally.
	Reported by Hrvoje Niksic.

	* po-mode.el: New variable po-mode-menu-layout.
	(po-mode): Establish a bar mode menu if possible.
	Reported by Nils Naumann.

	* po-mode.el: Decide set-translation-domain before using it.
	This avoids a byte-compilation warning.

	* po-mode.el (po-set-comment): Rearrange wrong conditional flow.
	Translator comments were duplicated, when contents were unchanged.
	Reported by Enrique Melero.

1997-09-01  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-highlight, po-dehighlight): New functions.
	New globals: po-highlight-p, po-highlight-face and po-overlay.
	(po-edit-msgstr): Highlight the msgid string while editing.
	(po-tags-search): Highlight found string.
	(po-mark-found-string): Unhilight string before replacing it.
	Reported by Jim Meyering, Michel Robitaille and Ulrich Drepper.

	* po-mode.el (po-set-field): Tells if buffer was modified.
	(po-edit-msgstr): Never make fuzzy an entry which is unmodified.

	* po-mode.el: Add M command, and variables po-compose-mail-function,
	po-translation-project-address and po-gzip-uuencode-command.
	(po-guess-archive-name, po-send-mail): New functions.
	Reported by Karl Eichwalder.

1997-08-31  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el (po-replace-revision-date): Enforce ISO 8601 zones.
	Reported by Enrique Melero Gómez, Karl Eichwalder, Max de
	Mendizabal and Santiago Vila Doncel.

	* po-mode.el (po-edit-string): Expand tabs while editing
	translations.  Reported by Göran Uddeborg.

	* po-mode.el: Accept C-c C-k to abort recursive edits.
	Reported by Göran Uddeborg and Hrvoje Niksic.

1997-06-02  Ben Pfaff  <pfaffben@pilot.msu.edu>

	* po-mode.el (po-find-c-string, po-extract-unquoted): Process ANSI
	string concatenation and K&R escaped newlines.

1997-03-02  Hrvoje Niksic  <hniksic@srce.hr>

	* po-mode.el (po-help): To continue, also accept things like a
	mouse press or an arrow key.

1996-11-12  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: Alter po-font-lock-keywords to properly highlight C
	formats, when using an upper case letter as formatting functor.

	* po-mode.el: If available, prefer force-mode-line-update builtin.

	* po-mode.el: Use our own buffer-substring, defining it as
	buffer-substring-no-properties if available.  Because of text
	properties, buffer-substring does not always return a string.

	* po-mode.el (po-consider-source-path): Ensure a trailing slash.

1996-05-13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* po-mode.el (po-eval-requoted, po-extract-unquoted): Correct
	missing or spurious backslashes in some regexps.

1997-08-01 15:49  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (AUTOMAKE_OPTIONS): Require version 1.2.

1997-04-12  Hrvoje Niksic  <hniksic@srce.hr>

	* po-mode.el: Customize.

1997-03-10 06:56  Ulrich Drepper  <drepper@cygnus.com>

	* elisp-comp: Use EMACS environment variable is available instead
	of always executing emacs.

1996-12-03 23:24  Ulrich Drepper  <drepper@cygnus.com>

	* gettextize.in: Update --help and --version texts.

1996-11-22 04:45  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (EXTRA_DIST): Add locale.alias.

1996-11-21 23:11  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am: Remove rules for ELisp handling.  Automake now
	knows what to do.

1996-10-28 23:09  Ulrich Drepper  <drepper@cygnus.com>

	* gettextize.in: Remove -v from help message.  Change format of
	--version text according to last GNU coding standard.  Don't print
	help message for unknown option.  Instead print "Try `..."
	message.

1996-10-19 17:41 1996  Ulrich Drepper  <drepper@cygnus.com>

	* locale.alias: Language for czech entry must be cs.

1996-09-18 00:29  François Pinard  <pinard@progiciels-bpi.ca>

	* po-mode.el (po-font-lock-keywords): Correct highlighting of
	formats like %3d.

1996-08-19  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: Restructured to avoid all byte-compilation warnings.
	Highlighting using `hilit19' is being deprecated, font lock code
	should now automatically be activated whenever available.

1996-07-15  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: po-mode.el (po-kill-msgstr): Ensure po-entry-type is
	always defined before decreasing counter.

1996-07-15 01:08  Ulrich Drepper  <drepper@cygnus.com>

	* gettextize.in (gettext_dir): Remove warning that files will be
	removed.  It's not really necessary since the -f option is
	necessary.  Suggested by François Pinard.

1996-06-26 18:40  Ulrich Drepper  <drepper@cygnus.com>

	* po-mode.el: Added ELisp support.  Patch by François Pinard.

1996-06-18 15:12  Ulrich Drepper  <drepper@cygnus.com>

	* gettextize.in (aclocal_version): new variable.  Value determined
	by configure.  This finally makes the check of the aclocal.m4
	version number correct because this number need not be the same as
	the version number of the package.

1996-06-06 02:02  Ulrich Drepper  <drepper@cygnus.com>

	* gettextize.in: Rewrite copying now that files are kept in
	different directories and don't use funny prefixes anymore.

1996-06-05 16:36  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (DISTCLEANFILES): Renamed from CLEANFILES and
	changed $(lisp_DATA) to $(ELCFILES).

1996-06-03 00:46  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (elc_DATA): Rename to elc_SCRIPTS so that
	distribution wents smooth.

1996-06-02 21:16  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.am (SUFFIXES): New variable.  Automake wants it this
	way to introduce new suffixes.

	* Makefile.am: Initial revision.

1996-06-01 18:20  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile.in (default): Add default rule because AIX' make does
	not understand multiple goals in default rule.

	* Makefile.in (DISTFILES): Rename README-TCL to README-Tcl.

	* gettextize.in: Implement test for correct aclocal.m4 version.

1996-04-06 02:40  Ulrich Drepper  <drepper@myware>

	* po-mode.el: Apply François' patch for new default values of
	configuration variables and new header entry format.

1996-04-02 18:56  Ulrich Drepper  <drepper@myware>

	* Makefile.in (all-gettext): New goal.  Same as all.

1996-04-02 03:18  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: * Let po-show-source-context update
	po-reference-cursor itself, and display to the minibuffer the
	relative and maximum position of the shown reference in the list
	of collected references.  Callers adjusted accordingly.
	. Do not generate tildes while reconstructing non-obsolete
	comments.
	. Do merge attributes on a single `#,' line.  Using the non-regexp
	version of the search was causing the generation of another one.
	. Remove a spurious trailing comma while removing the last
	attribute.
	. Limit the search for source references to the msgstr line.  This
	does not correct any bug, but is more consistent.

1996-03-31 23:32  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: * Small corrections to the help page.  Reported by
	Karl Eichwalder.

	* Change po-edit-mode-map to po-subedit-mode-map and
	po-mode-edit-hook to po-subedit-mode-hook.  The previous names
	were not consistent.  Reported by Karl Eichwalder.

	* Repair RET, completely broken for multi-lines, maybe showing a
	regexp bug in Emacs(?).  See the FIXME in po-extract-unquoted.
	Reported by Karl Eichwalder.

1996-03-31 22:36  Ulrich Drepper  <drepper@myware>

	* gettextize.in (prefix): Define from @prefix@.  Is used in
	gettext_dir definition.  Reported by Jim Meyering.

1996-03-28 19:11  Karl Eichwalder  <ke@ke.Central.DE>

	* gettextize.in (gettext_dir): Set to @datadir@/gettext.

1996-03-26 21:27  Ulrich Drepper  <drepper@myware>

	* Makefile.in (datadir): Initialize from @datadir@.  Reported by
	Karl Eichwalder.

1996-03-25 09:52  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: * Correct documentation mistakes in short help.

	* Accept both # and #~ for obsolete comments, but use #~ when
	generating them.

	* Recognize \NNN octal notation for characters in PO file strings,
	however, never produce such horror.

1996-03-25 03:51  Ulrich Drepper  <drepper@myware>

	* po-mode.el: Some last minute changes by François Pinard.

1996-03-24 18:51  Ulrich Drepper  <drepper@myware>

	* po-mode.el (po-confirm-and-quit): Recognize both #, and #! but
	prefer producing #,.

	* Rephrase messages about location stack contents
	* Clear out message when user refuses quitting.

1996-03-23 14:34  François Pinard  <pinard@iro.umontreal.ca>

	* Implement po-default-file-header.
	Reported by Karl Eichwalder.

	* Rename po-auto-select to po-auto-select-entry.

	* Revise text of all disruptive questions, try to alleviate
	them, avoid them if possible.  Clear the message area sometimes.

	* Correct a bug by which `#! fuzzy' was inserted before the
	white line, instead of after, for PO files having no `#' line
	of any kind.

	* Correct the message count updating in po-kill-msgstr and
	po-yank-msgstr.

	* Allow for po-auto-edit-with-msgid to work, when
	po-edit-msgstr was called on an untranslated immediately after
	loading a PO file.

	* po-quit may select all kind of not fully processed entries,
	rather than just untranslate ones.

	Rebound commands:
	* TAB moves to LFD for po-msgid-to-msgstr.
	* z moves to DEL for po-fade-out-entry.

	New commands:
	* TAB is po-unfuzzy.
	* SPC is po-auto-select.
	* t is po-next-translated entry.
	* M-t is po-previous-translated-entry.
	* E is po-edit-out-full.

	Improved commands:
	* DEL (po-fade-out-entry) makes the entry fuzzy as first step,
	and request confirmation for some transitions.
	* LFD (po-msgid-to-msgstr) requests confirmation if entry was
	already translated.
	* v (po-validate): Pass the -v flag to msgfmt.
	* q (po-confirm-and-quit): Use milder confirmation.
	* Implemented variables po-auto-edit-with-msgid,
	po-auto-fuzzy-on-edit, po-auto-select-on-unfuzzy, and
	po-auto-replace-revision-date.

	PO header management:
	* PO-Revision-Date might be automatically updated.
	Reported by Karl Eichwalder.
	* A normalized PO file header is automatically created if it
	not exists.  Any previous PO file header is kept, obsoleted.

	Various internal cleanups:
	* Revised the PO mode summary display.
	* ...-hooks renamed ...-hook, per word of Richard Stallman.
	* po-obsolete-flag replaced by more general po-entry-type.
	* po-appropriate-counter, po-increase-appropriate-counter and
	po-decrease-appropriate-counter are replaced by	po-type-counter,
	po-decrease-type-counter and po-increase-type-counter.
	Overall counting logic revised and cleaned up.
	* The concept of being after last entry disappears.  Being
	after last entry is equivalent to being on last entry.  And
	since there is at least the PO header entry, and an empty PO
	file is not possible anymore: simplified code accordingly.
	* po-add-attribute, po-delete-attribute: New functions.
	* po-offer-validation disappears, as (buffer-modified-p) may
	be used instead.

1996-03-14 16:55  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: Inexact entries are now called fuzzy.  Change
	regular expression and function names.

1996-03-14 11:38  François Pinard  <pinard@iro.umontreal.ca>

	* po-mode.el: Rename po-mode-hooks to po-mode-edit-hooks.

	* po-mode.el: Suggest accepting .pot and embedded .po. as triggers
	for PO editing mode, besides .po and .pox.
	* PO mode help display has been revised to fit in 23 lines,
	and present some more yet unimplemented commands.  PO mode
	initially suggests using `h' or `?' for documentation.
	* Many variables and functions have been renamed for more
	clarity and consistency, too numerous to be detailed here.
	* Reorganization of key-bindings.  This restores to M-w and M-y
	their usual meaning, and free some keys for to-be-implemented
	commands: the a/M-a/A/M-A series for auxiliary files, c/M-c
	for compendium files, and l/M-l/L/M-L series for lexicon files.
	. Commands u, v, o and q have been renamed U, V, O and Q
	  (po-undo, po-validate, po-other-window and po-quit).
	. Command v replaces old command V (po-mode-version).
	. u and SPC replace e (po-next-untranslated-entry).
	  M-u replaces M-e (po-previous-untranslated-entry).
	. o replaces M-n and M-SPC (po-next-obsolete-entry).
	  M-o replaces M-p and M-DEL (po-previous-obsolete-entry).
	. SPC, DEL, and M-RET are no more po-next-entry,
	  po-previous-entry and po-edit-comment.
	. r replaces l (po-pop-location).
	. s (po-cycle-source-reference) replaces c (po-cycle-reference).
	  M-s (po-select-source-reference) replaces M-c (po-select-reference).
	  S (po-consider-source-path) replaces d (po-add-path).
	  M-S (po-ignore-source-path) replaces M-d (po-delete-path).
	. K, W and Y replace M-k, M-w and M-y (po-kill-comment,
	  po-kill-ring-save-comment and po-yank-comment).
	* New command q (po-confirm-and-quit).

1996-03-13 13:16  Karl Eichwalder  <ke@ke.Central.DE>

	* po-mode.el (po-edit-string): run hook `po-edit-hooks'.

1996-03-09 12:39  Ulrich Drepper  <drepper@myware>

	* po-mode.el (po-keywords): Add N_.

1996-01-15 02:58  François Pinard  <pinard@iro.umontreal.ca>

	* gettextize.in: Better message about aclocal.m4 change.

1995-12-19 22:41  Ulrich Drepper  <drepper@myware>

	* README-TCL, tcl_gettext.c: Initial revision.

	* Makefile.in (DISTFILES): Add tcl_gettext and README-TCL.

1995-12-19 22:12  Ulrich Drepper  <drepper@myware>

	* Makefile.in (Makefile, gettextize): Explicitly use $(SHELL) for
	running shell scripts.

1995-12-16 15:31  Ulrich Drepper  <drepper@myware>

	* gettextize.in: Implement -c option: always copy files.
	Requested by Roland McGrath.

1995-12-05 11:41  Larry Schwimmer  <rosebud@cyclone.stanford.edu>

	* Makefile.in (install-data): Make sure $(localedir) exists.

1995-11-27 02:50  Sakai Kiyotaka  <ksakai@netwk.ntt-at.co.jp>

	* locale.alias: New entry for Japanese.

1995-11-24 23:53  Ulrich Drepper  <drepper@myware>

	* po-mode.el (po-quit): Always clear the message area after y-or-n-p.

1995-11-11 16:30  Ulrich Drepper  <drepper@myware>

	* po-mode.el: Implement searching of inexact entries.

	* po-mode.el: Implement po-version.

1995-11-08 01:46  Ulrich Drepper  <drepper@myware>

	* po-mode.el:
	Hilit file names and line numbers in #: with function-name face.

	* po-mode.el: Add support for XEmacs' font-lock.el.

	* po-mode.el:
	Patches by François: enable hilit, handle multi-line #: lines, and
	don't pass -v argument to msgfmt.

1995-11-06 15:52  Ulrich Drepper  <drepper@myware>

	* po-mode.el: msgfmt behaves now well again.  Return to use
	/dev/null as output file for verification.

1995-11-05 19:39  Ulrich Drepper  <drepper@myware>

	* Makefile.in (dist-gettext): Make synonym for dist.

1995-11-05 15:40  Ulrich Drepper  <drepper@myware>

	* Makefile.in (dist): Suppress error message when ln failed.
	Get files from $(srcdir) explicitly.

1995-11-01 10:39  Ulrich Drepper  <drepper@myware>

	* gettextize.in:
	Don't use "!" as negation; not all versions of sh support it.  Patch
	by Tom Tromey.

1995-10-31 20:46  Ulrich Drepper  <drepper@myware>

	* po-mode.el (po-msgfmt-program):
	Variable which contains name of the msgfmt program.
	(po-validate): Use above variable.

1995-10-31 19:12  Tom Tromey  <tromey@cambric.colorado.edu>

	* gettextize.in: Don't use "!" as negation; not all versions of sh
	support it.

1995-10-30 22:22  Ulrich Drepper  <drepper@myware>

	* po-mode.el (po-validate):
	Protect the previous value of compile-command.
	Change by François Pinard.

1995-10-29 12:11  Ulrich Drepper  <drepper@myware>

	* gettextize.in:
	Change text of trailing message about aclocal.m4 changing.  Suggested
	by François Pinard.

	* Makefile.in (INSTALL_PROGRAM): Not used anymore.
	(INSTALL_SCRIPT): New variable,
	(install-exec): Install gettextize using INSTALL_SCRIPT.

	* po-mode.el (po-eval-requoted): Add space in description.

	* Makefile.in: Remove Emacs local variable setting.

1995-10-28 22:09  Ulrich Drepper  <drepper@myware>

	* Makefile.in (install-src): Move some rules from install-data.
	(install-data): Add installation of locale.alias.

	* locale.alias: Initial revision

1995-10-28 18:08  Ulrich Drepper  <drepper@myware>

	* po-mode.el: Apply latest patch by François.

1995-09-23 14:34  Ulrich Drepper  <drepper@myware>

	* gettextize.in:
	Run config.status shell script if this is exists and is selected.  This
	is always necessary if one updates the intl/ dir.

1995-09-20 22:26  Ulrich Drepper  <drepper@myware>

	* gettextize.in:
	Try to remove files in root and po/ dir before linking.  If this is
	not done re-linking to the same file will cause an error.

1995-09-07 00:21  Ulrich Drepper  <drepper@myware>

	* gettext-sh: Protect IFS assignments.

1995-08-22 22:12  Ulrich Drepper  <drepper@myware>

	* gettextize.in (usage):
	Rearrange help message.  Now describe -f option.
	Reported by François Pinard.

1995-08-19 23:32  Ulrich Drepper  <drepper@myware>

	* gettextize.in: Add missing terminating quotes.

	* Makefile.in (INSTALL_PROGRAM):
	*Do* use -m 755.  Autoconf does not set any mode.

	* Makefile.in (install-src):
	Make behave like install.  I.e. really install
	gettextize and the .elc files.

1995-08-19 15:08  Ulrich Drepper  <drepper@myware>

	* gettextize.in:
	Some nicety changes of shell programming by François Pinard.

	* po-mode.el (po-search-path): Extend by "../".

	* gettextize.in: Protect against relative source paths.
	Avoid exit an second level shell.

	* gettext-sh: Better comments:  By François Pinard.

	* Makefile.in (INSTALL_PRG): Don't define mode ourself.
	(uninstall) Remove gettextize.

	* gettextize.in:
	intl/VERSION is now a real file and must not be generated here.

1995-08-18 12:05  Ulrich Drepper  <drepper@myware>

	* gettext-sh: Use -s option for gettext instead of --shell-script.

1995-08-15 10:49  Ulrich Drepper  <drepper@myware>

	* Makefile.in (all, check):
	Add gettextize to dependencies, so that install need not
	build anything.

1995-08-15 07:13  Ulrich Drepper  <drepper@myware>

	* gettextize.in: Add intl/VERSION file.

	* gettextize.in: Remove target file for root- and po- file first.

	* gettextize.in:
	Files installed in top directory of package are now preceded by root-.
	All other are ignore (esp aclocal.m4).

1995-08-14 23:50  Ulrich Drepper  <drepper@myware>

	* Makefile.in (exec_prefix, bindir):
	Directories needed for installing gettextize.
	(transform): Standard GNU program name transformation.
	(INSTALL_PROGRAM): Program to install gettextize as executable.
	(DISTFILES): Remove makelinks.in.  Distribute gettextize.in instead.
	(install-src): Install gettextize in selected binary directory.

	* gettextize.in: Initial revision

1995-08-10 22:18  Ulrich Drepper  <drepper@myware>

	* gettext-sh: Fix typos.  Reported by François Pinard.
	(TEXTDOMAIN): Set value from ${PACKAGE-NAME} variable and document it.

1995-08-08 21:45  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): Add locale.alias.

1995-08-07 23:48  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): gettext.perl moved from intl/.
	gettext-sh: New file.

	* gettext-sh: Initial revision.

	* elisp-comp:
	Use `rm -fr $tempdir' instead of `rm -f $tempdir/*; rmdir $tempdir'
	because some NFS implementation create .nfsxxx files which are
	not caught be the *.  Reported by Paul Nevai.

1995-08-04 22:38  Ulrich Drepper  <drepper@myware>

	* Makefile.in (.el.elc):
	Include François' wonderful pun to highlight warning text.

	* Makefile.in (distclean): Remove makelinks.

	* Makefile.in (dist): Remove `copying instead' message.

1995-08-02 19:44  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): makelinks.in instead of makelinks-sh.

	* makelinks.in: First try making symbolic links.
	Rename to makelinks.in because it will be configure by
	config.status.

1995-08-01 15:54  Ulrich Drepper  <drepper@myware>

	* po-mode.el: Fixes to run on DEMACS.
	Provided by François Pinard.

	* Makefile.in (check): Make same as all.

1995-08-01 10:32  Ulrich Drepper  <drepper@myware>

	* makelinks-sh: Implement option handling.
	When intl/ subdir exist give warning and exit unless option -f
	is given.
	Use ${echo} in place where translations will be necessary.

1995-07-26 01:24  Ulrich Drepper  <drepper@myware>

	* makelinks-sh: Update for correct intl_files list.
	Handle existing directories.
	Handle non-existing ln and/or ln -s.
	Mostly by François Pinard.

1995-07-22 01:14  Ulrich Drepper  <drepper@myware>

	* Makefile.in (prefix,datadir,lispdir): New definitions.
	(SITELISPDIR): Remove variable.
	(all): Now build *.elc files.
	(install,uninstall): Specify complete path of files to delete.

1995-07-20 00:03  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): elisp-comp was missing.

1995-07-18 23:53  Ulrich Drepper  <drepper@myware>

	* po-mode.el: Latest version by François.  This version allows
	scanning C source code for translatable strings and interactive
	construction of the .po file.  The string matching heuristic is
	due to Richard Stallman.

1995-07-18 01:32  Ulrich Drepper  <drepper@myware>

	* Makefile.in (DISTFILES): Add magic.add.  Comes from ../.

	* po-mode.el, makelinks, combine-sh: Moved to here from ../intl/.
	magic.add: Moved to here from ../.

	* Makefile.in: Initial revision
