Read filenames from stdin
This commit is contained in:
27
main.c
27
main.c
@ -81,7 +81,7 @@ int main(int argc, char **argv) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (options->recursive)
|
||||
if (options->recursive || options->from_stdin)
|
||||
filecnt = FNAME_CNT;
|
||||
else
|
||||
filecnt = options->filecnt;
|
||||
@ -89,15 +89,22 @@ int main(int argc, char **argv) {
|
||||
filenames = (const char**) s_malloc(filecnt * sizeof(const char*));
|
||||
fileidx = 0;
|
||||
|
||||
for (i = 0; i < options->filecnt; ++i) {
|
||||
filename = options->filenames[i];
|
||||
if (!stat(filename, &fstats) && S_ISDIR(fstats.st_mode)) {
|
||||
if (options->recursive)
|
||||
read_dir_rec(filename);
|
||||
else
|
||||
warn("ignoring directory: %s", filename);
|
||||
} else {
|
||||
check_append(filename);
|
||||
if (options->from_stdin) {
|
||||
while ((filename = readline(stdin))) {
|
||||
if (!check_append(filename))
|
||||
free((void*) filename);
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < options->filecnt; ++i) {
|
||||
filename = options->filenames[i];
|
||||
if (!stat(filename, &fstats) && S_ISDIR(fstats.st_mode)) {
|
||||
if (options->recursive)
|
||||
read_dir_rec(filename);
|
||||
else
|
||||
warn("ignoring directory: %s", filename);
|
||||
} else {
|
||||
check_append(filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user