Author: rpmcruz
Date: Fri Nov 28 04:30:31 2008
New Revision: 53680
URL: http://svn.opensuse.org/viewcvs/yast?rev=53680&view=rev
Log:
* src/yzyppwrapper.cc: i18n fix: use g_utf8_collate in order to properly
sort languages and PackageKit categories.
Modified:
trunk/gtk/ChangeLog
trunk/gtk/src/yzyppwrapper.cc
Modified: trunk/gtk/ChangeLog
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/ChangeLog?rev=53680&r1=53679&r2=53680&view=diff
==============================================================================
--- trunk/gtk/ChangeLog (original)
+++ trunk/gtk/ChangeLog Fri Nov 28 04:30:31 2008
@@ -28,6 +28,9 @@
append a shadow column because GTK doesn't support not having no
expand columns.
+ * src/yzyppwrapper.cc: i18n fix: use g_utf8_collate in order to properly
+ sort languages and PackageKit categories.
+
2008-11-23 Ricardo Cruz
* src/ygtkwizard.c: don't show "more" link on help line if the rest
Modified: trunk/gtk/src/yzyppwrapper.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/yzyppwrapper.cc?rev=53680&r1=53679&r2=53680&view=diff
==============================================================================
--- trunk/gtk/src/yzyppwrapper.cc (original)
+++ trunk/gtk/src/yzyppwrapper.cc Fri Nov 28 04:30:31 2008
@@ -1290,6 +1290,12 @@
Package *b = (Package *) _b;
return strcasecmp (a->name().c_str(), b->name().c_str());
}
+ static gint compare_utf8 (gconstpointer _a, gconstpointer _b)
+ { // slower -- don't use for packages -- only for patterns and languages
+ Package *a = (Package *) _a;
+ Package *b = (Package *) _b;
+ return g_utf8_collate (a->name().c_str(), b->name().c_str());
+ }
static gint compare_pattern (gconstpointer a, gconstpointer b)
{
ZyppPattern pattern1 = tryCastToZyppPattern (((PackageSel *) ((Package *) a)->impl)->m_sel->theObj());
@@ -1380,6 +1386,8 @@
// a sort merge. Don't use g_slist_insert_sorted() -- its linear
if (type == Ypp::Package::PATTERN_TYPE)
pool = g_slist_sort (pool, inner::compare_pattern);
+ else if (type == Ypp::Package::LANGUAGE_TYPE)
+ pool = g_slist_sort (pool, inner::compare_utf8);
else
pool = g_slist_sort (pool, inner::compare);
packages[type] = pool;
@@ -2037,7 +2045,7 @@
return !strcmp (b, "Other") ? 0 : 1;
if (!strcmp (b, "Other"))
return -1;
- return strcmp (a, b);
+ return strcasecmp (a, b);
}
};
@@ -2065,13 +2073,13 @@
struct inner {
static int cmp (const char *a, const char *b)
{
- int r = strcmp (a, b);
+ int r = g_utf8_collate (a, b);
if (r != 0) {
const char *unknown = zypp_tag_group_enum_to_localised_text
(PK_GROUP_ENUM_UNKNOWN);
- if (!strcmp (a, unknown))
+ if (!g_utf8_collate (a, unknown))
return 1;
- if (!strcmp (b, unknown))
+ if (!g_utf8_collate (b, unknown))
return -1;
}
return r;
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org