From 768a2340b557f01738bf5944463a6fc4d70f0b21 Mon Sep 17 00:00:00 2001 From: Matt Kraai Date: Sat, 18 Nov 2000 01:16:43 +0000 Subject: Fixed return status (thanks to David Douthitt for the fix). --- findutils/which.c | 8 ++++++-- 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; } /* diff --git a/which.c b/which.c index da8801f..a92777e 100644 --- a/which.c +++ b/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; } /* -- cgit v1.1