From: Jim Meyering Date: Wed, 1 Apr 1998 06:35:01 +0000 (+0000) Subject: (compare_ctime, rev_cmp_ctime, compare_mtime, X-Git-Tag: TEXTUTILS-1_22f~127 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a636450727936225e325f45722917c9dfaf0ba33;p=thirdparty%2Fcoreutils.git (compare_ctime, rev_cmp_ctime, compare_mtime, rev_cmp_mtime, compare_atime, rev_cmp_atime, compare_size, rev_cmp_size): Use file name as secondary sort key to get consistent sorting. --- diff --git a/src/ls.c b/src/ls.c index f75acbf113..66489ad069 100644 --- 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