sbase

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

commit 340b1635631b08be4554d937cf5895194b4733d6
parent 764efb7e5423a4eb239edabe8e297862d45fcf19
Author: Quentin Rameau <quinq@fifth.space>
Date:   Thu, 18 Feb 2016 12:06:21 +0100

ls: do not exit when a directory isn't accessible

Just print a warning and process next item instead,
and return 1 to report this error.

Diffstat:
Mls.c | 10+++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/ls.c b/ls.c @@ -32,6 +32,7 @@ static struct { ino_t ino; } tree[PATH_MAX]; +static int ret = 0; static int Aflag = 0; static int aflag = 0; static int cflag = 0; @@ -247,8 +248,11 @@ lsdir(const char *path, const struct entry *dir) size_t i, n = 0; char prefix[PATH_MAX]; - if (!(dp = opendir(dir->name))) - eprintf("opendir %s:", dir->name); + if (!(dp = opendir(dir->name))) { + ret = 1; + weprintf("opendir %s:", dir->name); + return; + } if (chdir(dir->name) < 0) eprintf("chdir %s:", dir->name); @@ -474,5 +478,5 @@ main(int argc, char *argv[]) free(dents); } - return fshut(stdout, "<stdout>"); + return (fshut(stdout, "<stdout>") | ret); }