diff options
author | Squibid <me@zacharyscheiman.com> | 2023-05-05 21:01:05 +0000 |
---|---|---|
committer | Squibid <me@zacharyscheiman.com> | 2023-05-05 21:01:05 +0000 |
commit | 89adab843f6a7c12634e1311408f8e866570caf8 (patch) | |
tree | 16d54515299b8269b89840ed19e12b0378fd5058 | |
parent | 17442300ddcbbc423f718355e50ec9576250ef46 (diff) | |
download | coreutils-89adab843f6a7c12634e1311408f8e866570caf8.tar.gz coreutils-89adab843f6a7c12634e1311408f8e866570caf8.tar.bz2 coreutils-89adab843f6a7c12634e1311408f8e866570caf8.zip |
simplify code and add warngings
Diffstat (limited to '')
-rw-r--r-- | ls.c | 28 |
1 files changed, 16 insertions, 12 deletions
@@ -17,18 +17,22 @@ int main(int argc, char *argv[]) } } - if (argc > 0) { - for (int i = 1; i < argc; i++) { - dirs = argv[i]; - if ((d = opendir(dirs))) { - while ((dir = readdir(d)) != NULL) { - if (strncmp(dir->d_name, ".", 1) != 0 && hidden) /* dont print hidden files */ - printf("%s\n", dir->d_name); - else if (!hidden) - printf("%s\n", dir->d_name); - } - closedir(d); - } + if (argc < 2) { + fprintf(stderr, "No arguments provided.\n"); + return 1; + } + + for (int i = 1; i < argc; i++) { + while (!strncmp(argv[i], "-", 1) || !opendir(argv[i])) + i++; + + d = opendir(argv[i]); + while ((dir = readdir(d)) != NULL) { + if (strncmp(dir->d_name, ".", 1) != 0 && hidden) /* dont print hidden files */ + printf("%s\n", dir->d_name); + else if (!hidden) + printf("%s\n", dir->d_name); } + closedir(d); } } |