bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ls -v oddity with autosave files


From: Jim Meyering
Subject: Re: ls -v oddity with autosave files
Date: Thu, 09 Apr 2009 19:28:07 +0200

Kamil Dudka wrote:
> On Thursday 09 of April 2009 15:39:57 Jim Meyering wrote:
>> Like last time, I applied your patch in gnulib before running coreutils'
>> tests. I noticed the new resulting failure.
>
> Apologize. The regression fix has caused another regression, it's ridiculous.
> An incremental fix is attached. What about merging the coreutils test suite
> into gnulib? The gnulib test algorithm is much more sensitive to these
> oddities. It compares each string with each other O(n^2) in contrast to sort
> with O(n*log n). It runs filevrcmp 3136x, but it still takes around 0.002s on
> my laptop. If you want to merge the tests, the second patch does it.

Don't worry about it.
I've pushed the following.
Thanks!

>From cc96df30d2b27745dca763ae41940f8a1319be4c Mon Sep 17 00:00:00 2001
From: Kamil Dudka <address@hidden>
Date: Thu, 9 Apr 2009 18:07:15 +0200
Subject: [PATCH] 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.
---
 ChangeLog               |    4 ++++
 lib/filevercmp.c        |   11 +++++++++++
 tests/test-filevercmp.c |   18 ++++++++++++++++++
 3 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 0e45e71..004d784 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2009-04-09  Kamil Dudka  <address@hidden>

+       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 "..".
diff --git a/lib/filevercmp.c b/lib/filevercmp.c
index caa4891..20522d1 100644
--- a/lib/filevercmp.c
+++ b/lib/filevercmp.c
@@ -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;
diff --git a/tests/test-filevercmp.c b/tests/test-filevercmp.c
index 700e182..ca88eb3 100644
--- a/tests/test-filevercmp.c
+++ b/tests/test-filevercmp.c
@@ -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
 };
--
1.6.2.rc1.285.gc5f54




reply via email to

[Prev in Thread] Current Thread [Next in Thread]