Revert "ls: Fix sorting of named entries"

This reverts commit ff78d03791cc7c24dfc407c39dd2158451c9ad12.
This commit is contained in:
sin 2015-11-01 17:23:27 +00:00
parent 2366164de7
commit aa8112a408
1 changed files with 12 additions and 10 deletions

22
ls.c
View File

@ -358,7 +358,7 @@ usage(void)
int int
main(int argc, char *argv[]) main(int argc, char *argv[])
{ {
struct entry *ent, *dents, *fents; struct entry *ent, **dents, **fents;
size_t i, ds, fs; size_t i, ds, fs;
ARGBEGIN { ARGBEGIN {
@ -447,27 +447,29 @@ main(int argc, char *argv[])
break; break;
default: default:
for (i = ds = fs = 0, fents = dents = NULL; i < argc; ++i) { for (i = ds = fs = 0, fents = dents = NULL; i < argc; ++i) {
ent = emalloc(sizeof(*ent));
mkent(ent, argv[i], 1, Hflag || Lflag);
if ((!dflag && S_ISDIR(ent->mode)) || if ((!dflag && S_ISDIR(ent->mode)) ||
((S_ISLNK(ent->mode) && S_ISDIR(ent->tmode)) && ((S_ISLNK(ent->mode) && S_ISDIR(ent->tmode)) &&
((Hflag || Lflag) || !(dflag || Fflag || lflag)))) { ((Hflag || Lflag) || !(dflag || Fflag || lflag)))) {
dents = ereallocarray(dents, ++ds, sizeof(*dents)); dents = ereallocarray(dents, ++ds, sizeof(ent));
ent = &dents[ds - 1]; dents[ds - 1] = ent;
} else { } else {
fents = ereallocarray(fents, ++fs, sizeof(*fents)); fents = ereallocarray(fents, ++fs, sizeof(ent));
ent = &fents[fs - 1]; fents[fs - 1] = ent;
} }
mkent(ent, argv[i], 1, Hflag || Lflag);
} }
qsort(fents, fs, sizeof(*fents), entcmp); qsort(fents, fs, sizeof(ent), entcmp);
qsort(dents, ds, sizeof(*dents), entcmp); qsort(dents, ds, sizeof(ent), entcmp);
for (i = 0; i < fs; ++i) for (i = 0; i < fs; ++i)
ls("", &fents[i], 0); ls("", fents[i], 0);
if (fs && ds) if (fs && ds)
putchar('\n'); putchar('\n');
for (i = 0; i < ds; ++i) for (i = 0; i < ds; ++i)
ls("", &dents[i], 1); ls("", dents[i], 1);
} }
return fshut(stdout, "<stdout>"); return fshut(stdout, "<stdout>");