]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Set a message fuzzy if the msgid_plural has changed.
authorBruno Haible <bruno@clisp.org>
Sat, 20 Oct 2007 21:55:49 +0000 (21:55 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Jun 2009 10:15:20 +0000 (12:15 +0200)
gettext-tools/src/ChangeLog
gettext-tools/src/msgmerge.c
gettext-tools/tests/ChangeLog
gettext-tools/tests/Makefile.am
gettext-tools/tests/msgmerge-22 [new file with mode: 0644]

index 3a17efb79b4e842fd41dd88a40999e8f4890da2a..837e6e4b55c80f8a4f52348f5afb63a9cd1b9ea4 100644 (file)
@@ -1,3 +1,9 @@
+2007-10-20  Bruno Haible  <bruno@clisp.org>
+
+       * msgmerge.c (message_merge): Set the fuzzy flag if the msgid_plural
+       changed.
+       Suggested by Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>.
+
 2007-10-20  Bruno Haible  <bruno@clisp.org>
 
        Make msgmerge's introduction of fuzzy markers more consistent with
index ce73f17f1da6e6128a5b2f438d70b4d335363c6a..6fa92757d255c86c3e29acfda52090dd198a6403 100644 (file)
@@ -1015,6 +1015,15 @@ message_merge (message_ty *def, message_ty *ref, bool force_fuzzy,
      come from the definition file (fuzzy or not).  */
   result->is_fuzzy = def->is_fuzzy | force_fuzzy;
 
+  /* If ref and def have the same msgid but different msgid_plural, it's
+     a reason to mark the result fuzzy.  */
+  if (!result->is_fuzzy
+      && (ref->msgid_plural != NULL
+         ? def->msgid_plural == NULL
+           || strcmp (ref->msgid_plural, def->msgid_plural) != 0
+         : def->msgid_plural != NULL))
+    result->is_fuzzy = true;
+
   for (i = 0; i < NFORMATS; i++)
     {
       result->is_format[i] = ref->is_format[i];
index 0f6310ad3491371728e11a710d811b1b2ec33acd..19b1edc7b953c1054ffb62a8498baf5cbb332c61 100644 (file)
@@ -1,3 +1,9 @@
+2007-10-20  Bruno Haible  <bruno@clisp.org>
+
+       * msgmerge-22: New file.
+       * Makefile.am (TESTS): Add it.
+       Reported by Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>.
+
 2007-10-20  Bruno Haible  <bruno@clisp.org>
 
        * msgmerge-21: New file.
index f4ea05e33a0e807945aa76b9cd7fc21d75de2c81..6be566cf6482ee649083158580993640c807c15c 100644 (file)
@@ -53,7 +53,7 @@ TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \
        msgmerge-1 msgmerge-2 msgmerge-3 msgmerge-4 msgmerge-5 msgmerge-6 \
        msgmerge-7 msgmerge-8 msgmerge-9 msgmerge-10 msgmerge-11 msgmerge-12 \
        msgmerge-13 msgmerge-14 msgmerge-15 msgmerge-16 msgmerge-17 \
-       msgmerge-18 msgmerge-19 msgmerge-20 msgmerge-21 \
+       msgmerge-18 msgmerge-19 msgmerge-20 msgmerge-21 msgmerge-22 \
        msgmerge-compendium-1 msgmerge-compendium-2 msgmerge-compendium-3 \
        msgmerge-compendium-4 msgmerge-compendium-5 msgmerge-compendium-6 \
        msgmerge-properties-1 msgmerge-properties-2 \
diff --git a/gettext-tools/tests/msgmerge-22 b/gettext-tools/tests/msgmerge-22
new file mode 100644 (file)
index 0000000..75fed04
--- /dev/null
@@ -0,0 +1,90 @@
+#! /bin/sh
+
+# Test msgmerge when a msgid_plural changed but msgid remained the same.
+# Reported by Chusslove Illich (Часлав Илић).
+
+tmpfiles=""
+trap 'rm -fr $tmpfiles' 1 2 3 15
+
+tmpfiles="$tmpfiles mm-test22.po"
+cat <<\EOF > mm-test22.po
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext-tools 0.16\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2007-10-18 02:57+0200\n"
+"PO-Revision-Date: 2007-06-28 16:37+0200\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Add resource from addressbook"
+msgid_plural "Add %n resources from addressbook"
+msgstr[0] "Engadir un recurso dende o libro de enderezos"
+msgstr[1] "Engadir %n recursos dende o libro de enderezos"
+EOF
+
+tmpfiles="$tmpfiles mm-test22.pot"
+cat <<\EOF > mm-test22.pot
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext-tools 0.16\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2007-10-19 02:57+0200\n"
+"PO-Revision-Date: 2007-06-28 16:37+0200\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Add resource from addressbook"
+msgid_plural "Add %1 resources from addressbook"
+msgstr[0] ""
+msgstr[1] ""
+EOF
+
+tmpfiles="$tmpfiles mm-test22.tmp.po mm-test22.new.po"
+: ${MSGMERGE=msgmerge}
+${MSGMERGE} -q -o mm-test22.tmp.po mm-test22.po mm-test22.pot
+test $? = 0 || { rm -fr $tmpfiles; exit 1; }
+tr -d '\r' < mm-test22.tmp.po > mm-test22.new.po
+test $? = 0 || { rm -fr $tmpfiles; exit 1; }
+
+tmpfiles="$tmpfiles mm-test22.ok"
+cat <<\EOF > mm-test22.ok
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU gettext-tools 0.16\n"
+"Report-Msgid-Bugs-To: bug-gnu-gettext@gnu.org\n"
+"POT-Creation-Date: 2007-10-19 02:57+0200\n"
+"PO-Revision-Date: 2007-06-28 16:37+0200\n"
+"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#, fuzzy
+msgid "Add resource from addressbook"
+msgid_plural "Add %1 resources from addressbook"
+msgstr[0] "Engadir un recurso dende o libro de enderezos"
+msgstr[1] "Engadir %n recursos dende o libro de enderezos"
+EOF
+
+: ${DIFF=diff}
+${DIFF} mm-test22.ok mm-test22.new.po
+test $? = 0 || { rm -fr $tmpfiles; exit 1; }
+
+tmpfiles="$tmpfiles mm-test22.mo"
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o mm-test22.mo mm-test22.new.po
+test $? = 0 || { rm -fr $tmpfiles; exit 1; }
+
+rm -fr $tmpfiles
+
+exit 0