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:
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);
}