| |
@@ -0,0 +1,82 @@
|
| |
+ From 2336451ed68d91ff4b5ae1acbc1eca30e47a86a9 Mon Sep 17 00:00:00 2001
|
| |
+ From: Bruno Haible <bruno@clisp.org>
|
| |
+ Date: Sun, 19 May 2019 13:10:06 +0200
|
| |
+ Subject: [PATCH] msgmerge: Fix behaviour of --for-msgfmt on PO files with no
|
| |
+ translations.
|
| |
+
|
| |
+ Reported by Don Lawrence <dlawrence@iecok.com>
|
| |
+ in <https://lists.freedesktop.org/archives/p11-glue/2019-May/000700.html>
|
| |
+ via Daiki Ueno
|
| |
+ in <https://lists.gnu.org/archive/html/bug-gettext/2019-05/msg00124.html>.
|
| |
+
|
| |
+ * gettext-tools/src/msgmerge.c (main): Treat force_po like true if for_msgfmt
|
| |
+ is true.
|
| |
+ * gettext-tools/tests/msgmerge-26: Add test of PO file with no translations.
|
| |
+ ---
|
| |
+ gettext-tools/src/msgmerge.c | 4 ++--
|
| |
+ gettext-tools/tests/msgmerge-26 | 36 ++++++++++++++++++++++++++++++---
|
| |
+ 2 files changed, 35 insertions(+), 5 deletions(-)
|
| |
+
|
| |
+ diff --git a/gettext-tools/src/msgmerge.c b/gettext-tools/src/msgmerge.c
|
| |
+ index cd762c029..92c9b7a8e 100644
|
| |
+ --- a/gettext-tools/src/msgmerge.c
|
| |
+ +++ b/gettext-tools/src/msgmerge.c
|
| |
+ @@ -520,8 +520,8 @@ There is NO WARRANTY, to the extent permitted by law.\n\
|
| |
+ else
|
| |
+ {
|
| |
+ /* Write the merged message list out. */
|
| |
+ - msgdomain_list_print (result, output_file, output_syntax, force_po,
|
| |
+ - false);
|
| |
+ + msgdomain_list_print (result, output_file, output_syntax,
|
| |
+ + for_msgfmt || force_po, false);
|
| |
+ }
|
| |
+
|
| |
+ exit (EXIT_SUCCESS);
|
| |
+ diff --git a/gettext-tools/tests/msgmerge-26 b/gettext-tools/tests/msgmerge-26
|
| |
+ index cd3862e33..b86f7a073 100755
|
| |
+ --- a/gettext-tools/tests/msgmerge-26
|
| |
+ +++ b/gettext-tools/tests/msgmerge-26
|
| |
+ @@ -73,7 +73,37 @@ msgstr "Papaya"
|
| |
+ EOF
|
| |
+
|
| |
+ : ${DIFF=diff}
|
| |
+ -${DIFF} mm-test26.ok mm-test26.out
|
| |
+ -result=$?
|
| |
+ +${DIFF} mm-test26.ok mm-test26.out || Exit 1
|
| |
+
|
| |
+ -exit $result
|
| |
+ +# Test with a PO file that has no translated messages.
|
| |
+ +
|
| |
+ +cat <<\EOF > mm-test26a.in1
|
| |
+ +msgid ""
|
| |
+ +msgstr ""
|
| |
+ +"Content-Type: text/plain; charset=UTF-8\n"
|
| |
+ +
|
| |
+ +msgid "Hello world"
|
| |
+ +msgstr "Hallo Welt"
|
| |
+ +EOF
|
| |
+ +
|
| |
+ +cat <<\EOF > mm-test26a.in2
|
| |
+ +msgid ""
|
| |
+ +msgstr ""
|
| |
+ +"Content-Type: text/plain; charset=ASCII\n"
|
| |
+ +
|
| |
+ +msgid "Hello, world!"
|
| |
+ +msgstr ""
|
| |
+ +EOF
|
| |
+ +
|
| |
+ +: ${MSGMERGE=msgmerge}
|
| |
+ +${MSGMERGE} --for-msgfmt -o mm-test26a.tmp mm-test26a.in1 mm-test26a.in2 \
|
| |
+ + || Exit 1
|
| |
+ +LC_ALL=C tr -d '\r' < mm-test26a.tmp > mm-test26a.out || Exit 1
|
| |
+ +
|
| |
+ +cat <<\EOF > mm-test26a.ok
|
| |
+ +msgid ""
|
| |
+ +msgstr "Content-Type: text/plain; charset=UTF-8\n"
|
| |
+ +EOF
|
| |
+ +
|
| |
+ +: ${DIFF=diff}
|
| |
+ +${DIFF} mm-test26a.ok mm-test26a.out || Exit 1
|
| |
+ --
|
| |
+ 2.21.0
|
| |
+
|
| |
This fixes build errors in packages with empty .po files:
https://gitlab.gnome.org/GNOME/gcr/issues/25
https://github.com/p11-glue/p11-kit/issues/238
As suggestd in:
https://bugzilla.redhat.com/show_bug.cgi?id=1708013#c2