From: Bruno Haible Date: Sat, 20 Oct 2007 21:55:49 +0000 (+0000) Subject: Set a message fuzzy if the msgid_plural has changed. X-Git-Tag: v0.17~97 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4c48345df67797fc67814c2611609814b5fbdc1b;p=thirdparty%2Fgettext.git Set a message fuzzy if the msgid_plural has changed. --- diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog index 3a17efb79..837e6e4b5 100644 --- a/gettext-tools/src/ChangeLog +++ b/gettext-tools/src/ChangeLog @@ -1,3 +1,9 @@ +2007-10-20 Bruno Haible + + * msgmerge.c (message_merge): Set the fuzzy flag if the msgid_plural + changed. + Suggested by Chusslove Illich (Часлав Илић) . + 2007-10-20 Bruno Haible Make msgmerge's introduction of fuzzy markers more consistent with diff --git a/gettext-tools/src/msgmerge.c b/gettext-tools/src/msgmerge.c index ce73f17f1..6fa92757d 100644 --- a/gettext-tools/src/msgmerge.c +++ b/gettext-tools/src/msgmerge.c @@ -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]; diff --git a/gettext-tools/tests/ChangeLog b/gettext-tools/tests/ChangeLog index 0f6310ad3..19b1edc7b 100644 --- a/gettext-tools/tests/ChangeLog +++ b/gettext-tools/tests/ChangeLog @@ -1,3 +1,9 @@ +2007-10-20 Bruno Haible + + * msgmerge-22: New file. + * Makefile.am (TESTS): Add it. + Reported by Chusslove Illich (Часлав Илић) . + 2007-10-20 Bruno Haible * msgmerge-21: New file. diff --git a/gettext-tools/tests/Makefile.am b/gettext-tools/tests/Makefile.am index f4ea05e33..6be566cf6 100644 --- a/gettext-tools/tests/Makefile.am +++ b/gettext-tools/tests/Makefile.am @@ -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 index 000000000..75fed04cf --- /dev/null +++ b/gettext-tools/tests/msgmerge-22 @@ -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 \n" +"Language-Team: German \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 \n" +"Language-Team: German \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