sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit ea03da0bdaa305cb4b32e6b6a5ff0e28b3b2fd19
parent e8e9b97baf42525ee884c6dd6863c8694a81b13a
Author: Michael Forney <mforney@mforney.org>
Date:   Sat, 14 May 2016 18:56:52 -0700

ls: Don't show directory name with single directory operand

This fixes the issue b107489bf2cda579ca53551206270b9eee80c059 tried
to fix, but doesn't break -R (which
bb83eade399e7d6f3642ae3a5e2cdebab6f222a1 tried to fix).

Diffstat:
Mls.c | 5++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ls.c b/ls.c @@ -53,6 +53,7 @@ static int Uflag = 0; static int uflag = 0; static int first = 1; static char sort = 0; +static int showdirs; static void ls(const char *, const struct entry *, int); @@ -277,7 +278,7 @@ lsdir(const char *path, const struct entry *dir) if (!Uflag) qsort(ents, n, sizeof(*ents), entcmp); - if (path[0] || dir->name[0] != '.') + if (path[0] || showdirs) printf("%s:\n", dir->name); for (i = 0; i < n; i++) output(&ents[i]); @@ -469,6 +470,8 @@ main(int argc, char *argv[]) } } + showdirs = ds > 1 || (ds && fs); + qsort(fents, fs, sizeof(ent), entcmp); qsort(dents, ds, sizeof(ent), entcmp);