ls: only display directory headers when more than one directory is specified

This commit is contained in:
tty0 2016-02-15 09:56:11 +00:00 committed by sin
parent d9c85a2d79
commit b107489bf2

5
ls.c
View File

@ -52,6 +52,7 @@ static int Uflag = 0;
static int uflag = 0; static int uflag = 0;
static int first = 1; static int first = 1;
static char sort = 0; static char sort = 0;
static size_t ds = 0;
static void ls(const char *, const struct entry *, int); static void ls(const char *, const struct entry *, int);
@ -269,7 +270,7 @@ lsdir(const char *path, const struct entry *dir)
if (!Uflag) if (!Uflag)
qsort(ents, n, sizeof(*ents), entcmp); qsort(ents, n, sizeof(*ents), entcmp);
if (path[0] || dir->name[0] != '.') if (ds > 1 && (path[0] || dir->name[0] != '.'))
printf("%s:\n", dir->name); printf("%s:\n", dir->name);
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
output(&ents[i]); output(&ents[i]);
@ -360,7 +361,7 @@ 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, fs;
ARGBEGIN { ARGBEGIN {
case '1': case '1':