filevercmp: correct today's change
authorKamil Dudka <kdudka@redhat.com>
Thu, 9 Apr 2009 16:07:15 +0000 (18:07 +0200)
committerJim Meyering <meyering@redhat.com>
Thu, 9 Apr 2009 17:26:48 +0000 (19:26 +0200)
* lib/filevercmp.c: Also handle coreutils' test inputs.
* tests/test-filevercmp.c: Add inputs from one of coreutils' test scripts.

ChangeLog
lib/filevercmp.c
tests/test-filevercmp.c

index 0e45e71..004d784 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2009-04-09  Kamil Dudka  <kdudka@redhat.com>
 
+       filevercmp: correct today's change
+       * lib/filevercmp.c: Also handle coreutils' test inputs.
+       * tests/test-filevercmp.c: Add inputs from one of coreutils' test scripts.
+
        Fix regression in 'filevercmp' module. Thanks Sven Joachim
        for reporting it.
        * lib/filevercmp.c: Special handle for "", "." and "..".
index caa4891..20522d1 100644 (file)
@@ -149,6 +149,17 @@ filevercmp (const char *s1, const char *s2)
   if (0 == strcmp ("..", s2))
     return 1;
 
+  /* special handle for other hidden files */
+  if (*s1 == '.' && *s2 != '.')
+    return -1;
+  if (*s1 != '.' && *s2 == '.')
+    return 1;
+  if (*s1 == '.' && *s2 == '.')
+    {
+      s1++;
+      s2++;
+    }
+
   /* "cut" file suffixes */
   s1_pos = s1;
   s2_pos = s2;
index 700e182..ca88eb3 100644 (file)
@@ -40,10 +40,23 @@ static const char *const examples[] =
   "",
   ".",
   "..",
+  ".0",
+  ".9",
+  ".A",
+  ".Z",
   ".a~",
   ".a",
   ".b~",
   ".b",
+  ".z",
+  ".zz~",
+  ".zz",
+  ".zz.~1~",
+  ".zz.0",
+  "0",
+  "9",
+  "A",
+  "Z",
   "a~",
   "a",
   "a.b~",
@@ -74,6 +87,11 @@ static const char *const examples[] =
   "nss_ldap-1.0-0.1a.tar.gz",
   "nss_ldap-10beta1.fc8.tar.gz",
   "nss_ldap-10.11.8.6.20040204cvs.fc10.ebuild",
+  "z",
+  "zz~",
+  "zz",
+  "zz.~1~",
+  "zz.0",
   "#.b#",
   NULL
 };