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.
This commit is contained in:
Quentin Rameau 2016-02-18 12:06:21 +01:00 committed by sin
parent 764efb7e54
commit 340b163563

10
ls.c
View File

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