]> Pileus Git - ~andy/gtk/commitdiff
Use g_utf8_collate_key() to sort in human-friendly order. (#94473)
authorOwen Taylor <otaylor@redhat.com>
Fri, 13 Dec 2002 23:28:56 +0000 (23:28 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Fri, 13 Dec 2002 23:28:56 +0000 (23:28 +0000)
Fri Dec 13 18:22:21 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkfilesel.c (compare_cmpl_dir): Use
        g_utf8_collate_key() to sort in human-friendly order.
        (#94473)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkfilesel.c

index 6cf2be7b6b95a6c034933c30afbb813a1a642301..056898de301b12ddca14ab1962798277c1cc78fc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Fri Dec 13 18:22:21 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkfilesel.c (compare_cmpl_dir): Use 
+       g_utf8_collate_key() to sort in human-friendly order.
+       (#94473)
+
 Fri Dec 13 17:45:40 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/fnmatch.c gtk/gtkprivate.h gtk/gtkfilesel.c: 
index 6cf2be7b6b95a6c034933c30afbb813a1a642301..056898de301b12ddca14ab1962798277c1cc78fc 100644 (file)
@@ -1,3 +1,9 @@
+Fri Dec 13 18:22:21 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkfilesel.c (compare_cmpl_dir): Use 
+       g_utf8_collate_key() to sort in human-friendly order.
+       (#94473)
+
 Fri Dec 13 17:45:40 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/fnmatch.c gtk/gtkprivate.h gtk/gtkfilesel.c: 
index 6cf2be7b6b95a6c034933c30afbb813a1a642301..056898de301b12ddca14ab1962798277c1cc78fc 100644 (file)
@@ -1,3 +1,9 @@
+Fri Dec 13 18:22:21 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkfilesel.c (compare_cmpl_dir): Use 
+       g_utf8_collate_key() to sort in human-friendly order.
+       (#94473)
+
 Fri Dec 13 17:45:40 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/fnmatch.c gtk/gtkprivate.h gtk/gtkfilesel.c: 
index 6cf2be7b6b95a6c034933c30afbb813a1a642301..056898de301b12ddca14ab1962798277c1cc78fc 100644 (file)
@@ -1,3 +1,9 @@
+Fri Dec 13 18:22:21 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkfilesel.c (compare_cmpl_dir): Use 
+       g_utf8_collate_key() to sort in human-friendly order.
+       (#94473)
+
 Fri Dec 13 17:45:40 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/fnmatch.c gtk/gtkprivate.h gtk/gtkfilesel.c: 
index 6cf2be7b6b95a6c034933c30afbb813a1a642301..056898de301b12ddca14ab1962798277c1cc78fc 100644 (file)
@@ -1,3 +1,9 @@
+Fri Dec 13 18:22:21 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkfilesel.c (compare_cmpl_dir): Use 
+       g_utf8_collate_key() to sort in human-friendly order.
+       (#94473)
+
 Fri Dec 13 17:45:40 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/fnmatch.c gtk/gtkprivate.h gtk/gtkfilesel.c: 
index 6cf2be7b6b95a6c034933c30afbb813a1a642301..056898de301b12ddca14ab1962798277c1cc78fc 100644 (file)
@@ -1,3 +1,9 @@
+Fri Dec 13 18:22:21 2002  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkfilesel.c (compare_cmpl_dir): Use 
+       g_utf8_collate_key() to sort in human-friendly order.
+       (#94473)
+
 Fri Dec 13 17:45:40 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/fnmatch.c gtk/gtkprivate.h gtk/gtkfilesel.c: 
index 061a0f476ada8b85dec6236e23f3c1f2def42cc1..cbe031ac314a566bbf22cdc68c4ee18c115ccc92 100644 (file)
@@ -182,6 +182,7 @@ struct _CompletionDirEntry
 {
   gboolean is_dir;
   gchar *entry_name;
+  gchar *sort_key;
 };
 
 struct _CompletionUserDir
@@ -2688,7 +2689,10 @@ free_dir_sent (CompletionDirSent* sent)
 {
   gint i;
   for (i = 0; i < sent->entry_count; i++)
-    g_free (sent->entries[i].entry_name);
+    {
+      g_free (sent->entries[i].entry_name);
+      g_free (sent->entries[i].sort_key);
+    }
   g_free (sent->entries);
   g_free (sent);
 }
@@ -3080,6 +3084,8 @@ open_new_dir (gchar       *dir_name,
        }
       g_clear_error (&error);
       
+      sent->entries[n_entries].sort_key = g_utf8_collate_key (sent->entries[n_entries].entry_name, -1);
+      
       g_string_assign (path, sys_dir_name);
       if (path->str[path->len-1] != G_DIR_SEPARATOR)
        {
@@ -3924,8 +3930,9 @@ static gint
 compare_cmpl_dir (const void *a,
                  const void *b)
 {
-  return compare_filenames ((((CompletionDirEntry*)a))->entry_name,
-                           (((CompletionDirEntry*)b))->entry_name);
+  
+  return strcmp (((CompletionDirEntry*)a)->sort_key,
+                (((CompletionDirEntry*)b))->sort_key);
 }
 
 static gint