Use the newest gettext release.
* po/Makefile.in.in: Upgrade to gettext-0.23, keeping the change
2019-01-27 Bruno Haible <bruno@clisp.org>
Accommodate a shell that is not in /bin/sh.
* po/Makefile.in.in (SHELL): Use the value found by configure.
* po/*: Upgrade to gettext-0.23 as well.
diff --git a/.gitignore b/.gitignore
index 9262d2b..ad8b51a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -507,7 +507,6 @@
/src/*.stackdump
# Erased by po/Makefile.
/po/*.mo
-/po/remove-potcdate.sed
/po/stamp-poT
/po/core
/po/core.*
diff --git a/ChangeLog b/ChangeLog
index 7f7e20d..69bedb9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2024-12-15 Bruno Haible <bruno@clisp.org>
+ Use the newest gettext release.
+ * po/Makefile.in.in: Upgrade to gettext-0.23, keeping the change
+ 2019-01-27 Bruno Haible <bruno@clisp.org>
+ Accommodate a shell that is not in /bin/sh.
+ * po/Makefile.in.in (SHELL): Use the value found by configure.
+ * po/*: Upgrade to gettext-0.23 as well.
+
+2024-12-15 Bruno Haible <bruno@clisp.org>
+
Implement the //NON_IDENTICAL_DISCARD suffix from POSIX:2024.
* include/iconv.h.in (ICONV_GET_DISCARD_INVALID,
ICONV_SET_DISCARD_INVALID, ICONV_GET_DISCARD_NON_IDENTICAL,
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
index c61ef7b..7f27278 100644
--- a/po/Makefile.in.in
+++ b/po/Makefile.in.in
@@ -1,14 +1,14 @@
# Makefile for PO directory in any package using GNU gettext.
# Copyright (C) 1995-2000 Ulrich Drepper <drepper@gnu.ai.mit.edu>
-# Copyright (C) 2000-2020 Free Software Foundation, Inc.
+# Copyright (C) 2000-2024 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is,
# without any warranty.
#
-# Origin: gettext-0.21
-GETTEXT_MACRO_VERSION = 0.20
+# Origin: gettext-0.23
+GETTEXT_MACRO_VERSION = 0.22
PACKAGE = @PACKAGE@
VERSION = @VERSION@
@@ -68,7 +68,7 @@
GMOFILES = @GMOFILES@
UPDATEPOFILES = @UPDATEPOFILES@
DUMMYPOFILES = @DUMMYPOFILES@
-DISTFILES.common = Makefile.in.in remove-potcdate.sin \
+DISTFILES.common = Makefile.in.in remove-potcdate.sed \
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
$(POFILES) $(GMOFILES) \
@@ -94,7 +94,7 @@
.SUFFIXES:
-.SUFFIXES: .po .gmo .sed .sin .nop .po-create .po-update
+.SUFFIXES: .po .gmo .sed .nop .po-create .po-update
# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs.
# The GNU Coding Standards say in
@@ -113,6 +113,7 @@
$(GMOFILES): $(srcdir)/$(DOMAIN).pot
.po.gmo:
@lang=`echo $* | sed -e 's,.*/,,'`; \
+ if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \
cd $(srcdir) && \
@@ -122,10 +123,6 @@
mv t-$${lang}.gmo $${lang}.gmo && \
rm -f $${lang}.1po
-.sin.sed:
- sed -e '/^#/d' $< > t-$@
- mv t-$@ $@
-
all-yes: $(srcdir)/stamp-po
all-no:
@@ -170,7 +167,7 @@
# The determination of whether the package xyz is a GNU one is based on the
# heuristic whether some file in the top level directory mentions "GNU xyz".
# If GNU 'find' is available, we avoid grepping through monster files.
-$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in
package_gnu="$(PACKAGE_GNU)"; \
test -n "$$package_gnu" || { \
if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
@@ -222,8 +219,8 @@
|| exit 1; \
fi; \
if test -f $(srcdir)/$(DOMAIN).pot; then \
- sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
- sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+ sed -f $(srcdir)/remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+ sed -f $(srcdir)/remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
else \
@@ -247,16 +244,19 @@
@test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
if test -f "$(srcdir)/$${lang}.po"; then \
+ if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \
cd $(srcdir) \
&& { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \
+ '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \
$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
+ 0.1[1-5] | 0.1[1-5].*) \
+ $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
0.1[6-7] | 0.1[6-7].*) \
- $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \
+ $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \
*) \
- $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \
+ $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \
esac; \
}; \
else \
@@ -394,7 +394,6 @@
install-dvi install-ps install-pdf install-html:
mostlyclean:
- rm -f remove-potcdate.sed
rm -f $(srcdir)/stamp-poT
rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
rm -fr *.o
@@ -464,15 +463,17 @@
tmpdir=`pwd`; \
echo "$$lang:"; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
cd $(srcdir); \
if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \
+ '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \
$(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+ 0.1[1-5] | 0.1[1-5].*) \
+ $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
0.1[6-7] | 0.1[6-7].*) \
- $(MSGMERGE) $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+ $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
*) \
- $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+ $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
esac; \
}; then \
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
@@ -508,3 +509,9 @@
# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
+
+# This Makefile contains rules which don't work with parallel make,
+# namely dist2.
+# See <https://lists.gnu.org/archive/html/bug-gettext/2022-06/msg00022.html>.
+# So, turn off parallel execution in this Makefile.
+.NOTPARALLEL:
diff --git a/po/Rules-quot b/po/Rules-quot
index 18c024b..9e13054 100644
--- a/po/Rules-quot
+++ b/po/Rules-quot
@@ -1,11 +1,14 @@
# Special Makefile rules for English message catalogs with quotation marks.
#
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
-# This file, Rules-quot, and its auxiliary files (listed under
-# DISTFILES.common.extra1) are free software; the Free Software Foundation
-# gives unlimited permission to use, copy, distribute, and modify them.
+# Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+# This file is offered as-is, without any warranty.
+#
+# Written by Bruno Haible <bruno@clisp.org>, 2001.
-DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
+DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sed Rules-quot
.SUFFIXES: .insert-header .po-update-en
@@ -26,7 +29,8 @@
LC_ALL=C; export LC_ALL; \
cd $(srcdir); \
if $(MSGINIT) $(MSGINIT_OPTIONS) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null \
- | $(SED) -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | \
+ | $(SED) -f $$tmpdir/$$lang.insert-header | $(SED) -e '/^%%/d' \
+ | $(MSGCONV) -t UTF-8 | \
{ case `$(MSGFILTER) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-8] | 0.1[0-8].*) \
$(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed \
@@ -51,11 +55,11 @@
rm -f $$tmpdir/$$lang.new.po; \
fi
-en@quot.insert-header: insert-header.sin
- sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
+en@quot.insert-header: insert-header.sed
+ sed -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sed > en@quot.insert-header
-en@boldquot.insert-header: insert-header.sin
- sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
+en@boldquot.insert-header: insert-header.sed
+ sed -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sed > en@boldquot.insert-header
mostlyclean: mostlyclean-quot
mostlyclean-quot:
diff --git a/po/boldquot.sed b/po/boldquot.sed
index 4b937aa..3c1de54 100644
--- a/po/boldquot.sed
+++ b/po/boldquot.sed
@@ -1,3 +1,14 @@
+# Sed script that converts quotations, by replacing ASCII quotation marks
+# with Unicode quotation marks and highlighting the quotations in bold face.
+#
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+# This file is offered as-is, without any warranty.
+#
+# Written by Bruno Haible <bruno@clisp.org>, 2001.
+#
s/"\([^"]*\)"/“\1”/g
s/`\([^`']*\)'/‘\1’/g
s/ '\([^`']*\)' / ‘\1’ /g
diff --git a/po/en@boldquot.header b/po/en@boldquot.header
index 506ca9e..ac96ad9 100644
--- a/po/en@boldquot.header
+++ b/po/en@boldquot.header
@@ -1,3 +1,13 @@
+%% A header that gets inserted into message catalogs named en@boldquot.po.
+%%
+%% Copyright (C) 2001 Free Software Foundation, Inc.
+%% This file is free software; the Free Software Foundation
+%% gives unlimited permission to copy and/or distribute it,
+%% with or without modifications, as long as this notice is preserved.
+%% This file is offered as-is, without any warranty.
+%%
+%% Written by Bruno Haible <bruno@clisp.org>, 2001.
+%%
# All this catalog "translates" are quotation characters.
# The msgids must be ASCII and therefore cannot contain real quotation
# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
diff --git a/po/en@quot.header b/po/en@quot.header
index 6522f0c..287e2e7 100644
--- a/po/en@quot.header
+++ b/po/en@quot.header
@@ -1,3 +1,13 @@
+%% A header that gets inserted into message catalogs named en@quot.po.
+%%
+%% Copyright (C) 2001 Free Software Foundation, Inc.
+%% This file is free software; the Free Software Foundation
+%% gives unlimited permission to copy and/or distribute it,
+%% with or without modifications, as long as this notice is preserved.
+%% This file is offered as-is, without any warranty.
+%%
+%% Written by Bruno Haible <bruno@clisp.org>, 2001.
+%%
# All this catalog "translates" are quotation characters.
# The msgids must be ASCII and therefore cannot contain real quotation
# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
diff --git a/po/insert-header.sin b/po/insert-header.sed
similarity index 75%
rename from po/insert-header.sin
rename to po/insert-header.sed
index ceeebb9..f9534e7 100644
--- a/po/insert-header.sin
+++ b/po/insert-header.sed
@@ -1,9 +1,12 @@
# Sed script that inserts the file called HEADER before the header entry.
#
# Copyright (C) 2001 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+# This file is offered as-is, without any warranty.
+#
# Written by Bruno Haible <bruno@clisp.org>, 2001.
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to use, copy, distribute, and modify it.
#
# At each occurrence of a line starting with "msgid ", we execute the following
# commands. At the first occurrence, insert the file. At the following
diff --git a/po/quot.sed b/po/quot.sed
index 0122c46..eb0e08d 100644
--- a/po/quot.sed
+++ b/po/quot.sed
@@ -1,3 +1,14 @@
+# Sed script that converts quotations, by replacing ASCII quotation marks
+# with Unicode quotation marks.
+#
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+# This file is offered as-is, without any warranty.
+#
+# Written by Bruno Haible <bruno@clisp.org>, 2001.
+#
s/"\([^"]*\)"/“\1”/g
s/`\([^`']*\)'/‘\1’/g
s/ '\([^`']*\)' / ‘\1’ /g
diff --git a/po/remove-potcdate.sin b/po/remove-potcdate.sed
similarity index 100%
rename from po/remove-potcdate.sin
rename to po/remove-potcdate.sed