Fix sorting of 0 sequences in filenames
authorMatthias Clasen <matthiasc@src.gnome.org>
Fri, 7 Oct 2005 03:04:03 +0000 (03:04 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 7 Oct 2005 03:04:03 +0000 (03:04 +0000)
ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-12
glib/gunicollate.c

index 0533ede28332bb66da3ca67ddbd9f0b114534fb2..a4593577a8ea30cbe2bb5d99d9fdc5ad3923bcb4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-10-06  Matthias Clasen  <mclasen@redhat.com>
+
+       * glib/gunicollate.c (g_utf8_collate_key_for_filename): Handle
+       all-zero sequences correctly.  (#317930, Sebastien Bacher)
+
 2005-10-05  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/gmarkup.c (g_markup_escape_text): Doc addition
index 0533ede28332bb66da3ca67ddbd9f0b114534fb2..a4593577a8ea30cbe2bb5d99d9fdc5ad3923bcb4 100644 (file)
@@ -1,3 +1,8 @@
+2005-10-06  Matthias Clasen  <mclasen@redhat.com>
+
+       * glib/gunicollate.c (g_utf8_collate_key_for_filename): Handle
+       all-zero sequences correctly.  (#317930, Sebastien Bacher)
+
 2005-10-05  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/gmarkup.c (g_markup_escape_text): Doc addition
index 0533ede28332bb66da3ca67ddbd9f0b114534fb2..a4593577a8ea30cbe2bb5d99d9fdc5ad3923bcb4 100644 (file)
@@ -1,3 +1,8 @@
+2005-10-06  Matthias Clasen  <mclasen@redhat.com>
+
+       * glib/gunicollate.c (g_utf8_collate_key_for_filename): Handle
+       all-zero sequences correctly.  (#317930, Sebastien Bacher)
+
 2005-10-05  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/gmarkup.c (g_markup_escape_text): Doc addition
index 2e668427c87d4c6990920e2aa26bbd91328b85b4..b00be88c62f5eaaef41ebbcfcfe83112bda63e57 100644 (file)
@@ -415,7 +415,17 @@ g_utf8_collate_key_for_filename (const gchar *str,
              else if (g_ascii_isdigit(*p))
                ++digits;
              else
-               break;
+                {
+                 /* count an all-zero sequence as
+                   * one digit plus leading zeros
+                   */
+                 if (!digits)
+                    {
+                      ++digits;
+                      --leading_zeros;
+                    }        
+                 break;
+                }
            }
          while (*p != '\0');