]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
(compare_ctime, rev_cmp_ctime, compare_mtime,
authorJim Meyering <jim@meyering.net>
Wed, 1 Apr 1998 06:35:01 +0000 (06:35 +0000)
committerJim Meyering <jim@meyering.net>
Wed, 1 Apr 1998 06:35:01 +0000 (06:35 +0000)
rev_cmp_mtime, compare_atime, rev_cmp_atime, compare_size,
rev_cmp_size): Use file name as secondary sort key to get
consistent sorting.

src/ls.c

index f75acbf1138dc0d819df0ef4594cb1d63f242eb2..66489ad069cd041ea31fdf8b15374014d896dba0 100644 (file)
--- a/src/ls.c
+++ b/src/ls.c
@@ -1990,49 +1990,73 @@ sort_files (void)
 static int
 compare_ctime (const struct fileinfo *file1, const struct fileinfo *file2)
 {
-  return longdiff (file2->stat.st_ctime, file1->stat.st_ctime);
+  int diff = longdiff (file2->stat.st_ctime, file1->stat.st_ctime);
+  if (diff == 0)
+    diff = strcmp (file1->name, file2->name);
+  return diff;
 }
 
 static int
 rev_cmp_ctime (const struct fileinfo *file2, const struct fileinfo *file1)
 {
-  return longdiff (file2->stat.st_ctime, file1->stat.st_ctime);
+  int diff = longdiff (file2->stat.st_ctime, file1->stat.st_ctime);
+  if (diff == 0)
+    diff = strcmp (file1->name, file2->name);
+  return diff;
 }
 
 static int
 compare_mtime (const struct fileinfo *file1, const struct fileinfo *file2)
 {
-  return longdiff (file2->stat.st_mtime, file1->stat.st_mtime);
+  int diff = longdiff (file2->stat.st_mtime, file1->stat.st_mtime);
+  if (diff == 0)
+    diff = strcmp (file1->name, file2->name);
+  return diff;
 }
 
 static int
 rev_cmp_mtime (const struct fileinfo *file2, const struct fileinfo *file1)
 {
-  return longdiff (file2->stat.st_mtime, file1->stat.st_mtime);
+  int diff = longdiff (file2->stat.st_mtime, file1->stat.st_mtime);
+  if (diff == 0)
+    diff = strcmp (file1->name, file2->name);
+  return diff;
 }
 
 static int
 compare_atime (const struct fileinfo *file1, const struct fileinfo *file2)
 {
-  return longdiff (file2->stat.st_atime, file1->stat.st_atime);
+  int diff = longdiff (file2->stat.st_atime, file1->stat.st_atime);
+  if (diff == 0)
+    diff = strcmp (file1->name, file2->name);
+  return diff;
 }
 
 static int
 rev_cmp_atime (const struct fileinfo *file2, const struct fileinfo *file1)
 {
-  return longdiff (file2->stat.st_atime, file1->stat.st_atime);
+  int diff = longdiff (file2->stat.st_atime, file1->stat.st_atime);
+  if (diff == 0)
+    diff = strcmp (file1->name, file2->name);
+  return diff;
 }
 
 static int
 compare_size (const struct fileinfo *file1, const struct fileinfo *file2)
 {
-  return longdiff (file2->stat.st_size, file1->stat.st_size);
+  int diff = longdiff (file2->stat.st_size, file1->stat.st_size);
+  if (diff == 0)
+    diff = strcmp (file1->name, file2->name);
+  return diff;
 }
 
 static int
 rev_cmp_size (const struct fileinfo *file2, const struct fileinfo *file1)
 {
-  return longdiff (file2->stat.st_size, file1->stat.st_size);
+  int diff = longdiff (file2->stat.st_size, file1->stat.st_size);
+  if (diff == 0)
+    diff = strcmp (file1->name, file2->name);
+  return diff;
 }
 
 static int