diff options
author | Matt Kraai | 2000-11-18 01:16:43 +0000 |
---|---|---|
committer | Matt Kraai | 2000-11-18 01:16:43 +0000 |
commit | 768a2340b557f01738bf5944463a6fc4d70f0b21 (patch) | |
tree | 1cedde1670a2b5b71523e8954f72e18c01b80bac | |
parent | e93abf9e6997f333c5add8f11b1542bbc2ccc844 (diff) | |
download | busybox-768a2340b557f01738bf5944463a6fc4d70f0b21.zip busybox-768a2340b557f01738bf5944463a6fc4d70f0b21.tar.gz |
Fixed return status (thanks to David Douthitt for the fix).
-rw-r--r-- | findutils/which.c | 8 | ||||
-rw-r--r-- | which.c | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/findutils/which.c b/findutils/which.c index da8801f..a92777e 100644 --- a/findutils/which.c +++ b/findutils/which.c @@ -28,7 +28,7 @@ extern int which_main(int argc, char **argv) { char *path_list, *path_n; struct stat filestat; - int i, count=1; + int i, count=1, found, status = EXIT_SUCCESS; if (argc <= 1 || **(argv + 1) == '-') usage(which_usage); @@ -48,6 +48,7 @@ extern int which_main(int argc, char **argv) while(argc-- > 0) { path_n = path_list; argv++; + found = 0; for (i = 0; i < count; i++) { char buf[strlen(path_n)+1+strlen(*argv)]; strcpy (buf, path_n); @@ -57,12 +58,15 @@ extern int which_main(int argc, char **argv) && filestat.st_mode & S_IXUSR) { printf ("%s\n", buf); + found = 1; break; } path_n += (strlen(path_n) + 1); } + if (!found) + status = EXIT_FAILURE; } - return(TRUE); + return status; } /* @@ -28,7 +28,7 @@ extern int which_main(int argc, char **argv) { char *path_list, *path_n; struct stat filestat; - int i, count=1; + int i, count=1, found, status = EXIT_SUCCESS; if (argc <= 1 || **(argv + 1) == '-') usage(which_usage); @@ -48,6 +48,7 @@ extern int which_main(int argc, char **argv) while(argc-- > 0) { path_n = path_list; argv++; + found = 0; for (i = 0; i < count; i++) { char buf[strlen(path_n)+1+strlen(*argv)]; strcpy (buf, path_n); @@ -57,12 +58,15 @@ extern int which_main(int argc, char **argv) && filestat.st_mode & S_IXUSR) { printf ("%s\n", buf); + found = 1; break; } path_n += (strlen(path_n) + 1); } + if (!found) + status = EXIT_FAILURE; } - return(TRUE); + return status; } /* |