Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kf6-ki18n for openSUSE:Factory checked in at 2024-07-14 08:49:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kf6-ki18n (Old) and /work/SRC/openSUSE:Factory/.kf6-ki18n.new.17339 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "kf6-ki18n" Sun Jul 14 08:49:50 2024 rev:5 rq:1187117 version:6.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kf6-ki18n/kf6-ki18n.changes 2024-06-09 20:22:41.078829302 +0200 +++ /work/SRC/openSUSE:Factory/.kf6-ki18n.new.17339/kf6-ki18n.changes 2024-07-14 08:53:03.666065069 +0200 @@ -1,0 +2,10 @@ +Tue Jul 9 09:41:46 UTC 2024 - Christophe Marin <christophe@krop.fr> + +- Update to 6.4.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/6/6.4.0 +- Changes since 6.3.0: + * Make country name detection substring matching more strict + +------------------------------------------------------------------- Old: ---- ki18n-6.3.0.tar.xz ki18n-6.3.0.tar.xz.sig New: ---- ki18n-6.4.0.tar.xz ki18n-6.4.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kf6-ki18n.spec ++++++ --- /var/tmp/diff_new_pack.ZmeGYN/_old 2024-07-14 08:53:04.674102061 +0200 +++ /var/tmp/diff_new_pack.ZmeGYN/_new 2024-07-14 08:53:04.678102208 +0200 @@ -19,13 +19,13 @@ %define qt6_version 6.6.0 %define rname ki18n -# Full KF6 version (e.g. 6.3.0) +# Full KF6 version (e.g. 6.4.0) %{!?_kf6_version: %global _kf6_version %{version}} # Last major and minor KF6 version (e.g. 6.0) %{!?_kf6_bugfix_version: %define _kf6_bugfix_version %(echo %{_kf6_version} | awk -F. '{print $1"."$2}')} %bcond_without released Name: kf6-ki18n -Version: 6.3.0 +Version: 6.4.0 Release: 0 Summary: KDE Gettext-based UI text internationalization License: LGPL-2.1-or-later ++++++ ki18n-6.3.0.tar.xz -> ki18n-6.4.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ki18n-6.3.0/CMakeLists.txt new/ki18n-6.4.0/CMakeLists.txt --- old/ki18n-6.3.0/CMakeLists.txt 2024-05-31 15:25:39.000000000 +0200 +++ new/ki18n-6.4.0/CMakeLists.txt 2024-07-05 22:07:04.000000000 +0200 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.16) -set(KF_VERSION "6.3.0") # handled by release scripts +set(KF_VERSION "6.4.0") # handled by release scripts project(KI18n VERSION ${KF_VERSION}) # ECM setup include(FeatureSummary) -find_package(ECM 6.3.0 NO_MODULE) +find_package(ECM 6.4.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ki18n-6.3.0/autotests/kcountrytest.cpp new/ki18n-6.4.0/autotests/kcountrytest.cpp --- old/ki18n-6.3.0/autotests/kcountrytest.cpp 2024-05-31 15:25:39.000000000 +0200 +++ new/ki18n-6.4.0/autotests/kcountrytest.cpp 2024-07-05 22:07:04.000000000 +0200 @@ -11,6 +11,8 @@ #include <QStandardPaths> #include <QTest> +using namespace Qt::Literals; + void initEnvironment() { qputenv("LANG", "fr_CH.UTF-8"); @@ -197,8 +199,24 @@ QCOMPARE(KCountry::fromName(u"United").alpha2(), QString()); QCOMPARE(KCountry::fromName(u"Bundesrepuplik Deutschland").alpha2(), QLatin1String("DE")); + // extremely short Vietnamese country names (those are special as they are affected by diacritic stripping, unlike other Asian scripts) + QCOMPARE(KCountry::fromName(u"Ý").alpha2(), "IT"_L1); + QCOMPARE(KCountry::fromName(u"Áo").alpha2(), "AT"_L1); + QCOMPARE(KCountry::fromName(u"Nước Ý").alpha2(), "IT"_L1); + // code fallbacks QCOMPARE(KCountry::fromName(u"USA").alpha2(), QLatin1String("US")); + + // Turkey is no longer recognized as Türkiye, but should not result in a mis-detection of anything else either + QCOMPARE(KCountry::fromName(u"Turkey").alpha2(), QString()); + + // Ambigous substrings of multiple countries + QCOMPARE(KCountry::fromName(u"Korea").alpha2(), QString()); + + // input that shouldn't match anything + QCOMPARE(KCountry::fromName(u"A").alpha2(), QString()); + // Philippine region previously mis-detected as Palau (PW) + QCOMPARE(KCountry::fromName(u"Palawan").alpha2(), QString()); } void benchmarkFromName() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ki18n-6.3.0/po/ar/ki18n6.po new/ki18n-6.4.0/po/ar/ki18n6.po --- old/ki18n-6.3.0/po/ar/ki18n6.po 2024-05-31 15:25:39.000000000 +0200 +++ new/ki18n-6.4.0/po/ar/ki18n6.po 2024-07-05 22:07:04.000000000 +0200 @@ -16,7 +16,6 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -"X-Generator: Lokalize 21.07.70\n" #. i18n: Decide which string is used to delimit keys in a keyboard #. shortcut (e.g. + in Ctrl+Alt+Tab) in plain text. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ki18n-6.3.0/po/be/ki18n6.po new/ki18n-6.4.0/po/be/ki18n6.po --- old/ki18n-6.3.0/po/be/ki18n6.po 2024-05-31 15:25:39.000000000 +0200 +++ new/ki18n-6.4.0/po/be/ki18n6.po 2024-07-05 22:07:04.000000000 +0200 @@ -9,10 +9,10 @@ # kom <me@komzpa.net>, 2008. msgid "" msgstr "" -"Project-Id-Version: 86ff119b1606fcaa910d6b44fc14b611\n" +"Project-Id-Version: fc57ad16a28d02dea100ceb1c60de14e\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-10-25 01:48+0000\n" -"PO-Revision-Date: 2022-09-08 10:36\n" +"PO-Revision-Date: 2024-02-11 18:52\n" "Last-Translator: Darafei Praliaskouski <komzpa@gmail.com>\n" "Language-Team: Belarusian\n" "Language: be\n" @@ -23,11 +23,11 @@ "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || n%10>=5 && n%10<=9 || n" "%100>=11 && n%100<=14 ? 2 : 3);\n" -"X-Crowdin-Project: 86ff119b1606fcaa910d6b44fc14b611\n" -"X-Crowdin-Project-ID: 127\n" +"X-Crowdin-Project: fc57ad16a28d02dea100ceb1c60de14e\n" +"X-Crowdin-Project-ID: 136\n" "X-Crowdin-Language: be\n" -"X-Crowdin-File: /main/be/ki18n/ki18n5.po\n" -"X-Crowdin-File-ID: 7969\n" +"X-Crowdin-File: /[antikruk.KDE] main/KDE6/be/messages/ki18n/ki18n6.po\n" +"X-Crowdin-File-ID: 10090\n" #. i18n: Decide which string is used to delimit keys in a keyboard #. shortcut (e.g. + in Ctrl+Alt+Tab) in plain text. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ki18n-6.3.0/po/ro/ki18n6.po new/ki18n-6.4.0/po/ro/ki18n6.po --- old/ki18n-6.3.0/po/ro/ki18n6.po 2024-05-31 15:25:39.000000000 +0200 +++ new/ki18n-6.4.0/po/ro/ki18n6.po 2024-07-05 22:07:04.000000000 +0200 @@ -730,7 +730,7 @@ #~ msgctxt "EMAIL OF TRANSLATORS" #~ msgid "Your emails" -#~ msgstr ",sergiu@ase.md,lbuz@rolix.org,onet.cristian@gmail.com" +#~ msgstr ",sergiu@cip.md,lbuz@rolix.org,onet.cristian@gmail.com" #~ msgid "Name" #~ msgstr "Denumire" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ki18n-6.3.0/po/sv/ki18n6.po new/ki18n-6.4.0/po/sv/ki18n6.po --- old/ki18n-6.3.0/po/sv/ki18n6.po 2024-05-31 15:25:39.000000000 +0200 +++ new/ki18n-6.4.0/po/sv/ki18n6.po 2024-07-05 22:07:04.000000000 +0200 @@ -6,9 +6,9 @@ # Anders Widell <awl@hem.passagen.se>, 1998-2000. # Per Lindström <pelinstr@algonet.se>, 2000. # Mattias Newzella <newzella@linux.nu>, 2000, 2001, 2002,2003, 2004, 2005. -# Stefan Asserhäll <stefan.asserhall@bredband.net>, 2002. -# Stefan Asserhäll <stefan.asserhall@bredband.net>, 2004, 2005, 2006, 2007, 2008, 2009, 2010. -# Stefan Asserhall <stefan.asserhall@bredband.net>, 2010, 2011, 2012, 2013, 2014, 2020. +# Stefan Asserhäll <stefan.asserhall@gmail.com>, 2002. +# Stefan Asserhäll <stefan.asserhall@gmail.com>, 2004, 2005, 2006, 2007, 2008, 2009, 2010. +# Stefan Asserhall <stefan.asserhall@gmail.com>, 2010, 2011, 2012, 2013, 2014, 2020. # Arve Eriksson <031299870@telia.com>, 2011. msgid "" msgstr "" @@ -16,7 +16,7 @@ "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-10-25 01:48+0000\n" "PO-Revision-Date: 2020-06-09 21:50+0200\n" -"Last-Translator: Stefan Asserhäll <stefan.asserhall@bredband.net>\n" +"Last-Translator: Stefan Asserhäll <stefan.asserhall@gmail.com>\n" "Language-Team: Swedish <kde-i18n-doc@kde.org>\n" "Language: sv\n" "MIME-Version: 1.0\n" @@ -740,7 +740,7 @@ #~ msgid "Your emails" #~ msgstr "" #~ "d96reftl@dtek.chalmers.se,awl@hem.passagen.se,pelinstr@algonet.se," -#~ "newzella@linux.nu,stefan.asserhall@telia.com" +#~ "newzella@linux.nu,stefan.asserhall@gmail.com" #~ msgid "Name" #~ msgstr "Namn" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ki18n-6.3.0/src/localedata/kcountry.cpp new/ki18n-6.4.0/src/localedata/kcountry.cpp --- old/ki18n-6.3.0/src/localedata/kcountry.cpp 2024-05-31 15:25:39.000000000 +0200 +++ new/ki18n-6.4.0/src/localedata/kcountry.cpp 2024-07-05 22:07:05.000000000 +0200 @@ -15,6 +15,8 @@ #include <cstring> +using namespace Qt::Literals; + static_assert(sizeof(KCountry) == 2); KCountry::KCountry() @@ -297,6 +299,9 @@ } if (c.isSpace()) { + if (!res.isEmpty() && !res.back().isSpace()) { + res.push_back(' '_L1); + } continue; } @@ -309,7 +314,21 @@ } } - return res; + return res.trimmed(); +} + +// check is @p needle is a space-separated substring of haystack +static bool isSeparatedSubstring(QStringView haystack, QStringView needle) +{ + auto idx = haystack.indexOf(needle); + if (idx < 0) { + return false; + } + if (idx > 0 && !haystack[idx - 1].isSpace()) { + return false; + } + idx += needle.size(); + return idx >= haystack.size() || haystack[idx].isSpace(); } static void checkSubstringMatch(QStringView lhs, QStringView rhs, uint16_t code, uint16_t &result) @@ -317,7 +336,8 @@ if (result == std::numeric_limits<uint16_t>::max() || result == code || rhs.isEmpty()) { return; } - const auto matches = lhs.startsWith(rhs) || rhs.startsWith(lhs) || lhs.endsWith(rhs) || rhs.endsWith(lhs); + const auto matches = isSeparatedSubstring(lhs, rhs) || isSeparatedSubstring(rhs, lhs); + if (!matches) { return; }