X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=which.c;h=1d75244654571c73923d20a97c0aa4473cab74fc;hb=4949faf4b2090ca23c2aeb34535fdbe57754913a;hp=da8801fabe6789865dd5cfc3265a683fcc8a7cbb;hpb=3570a34de46b1f7dedd16999bb1687e2d6b55d40;p=oweals%2Fbusybox.git diff --git a/which.c b/which.c index da8801fab..1d7524465 100644 --- a/which.c +++ b/which.c @@ -2,7 +2,7 @@ /* * Which implementation for busybox * - * Copyright (C) 2000 by Lineo, inc. + * Copyright (C) 1999,2000,2001 by Lineo, inc. * Written by Erik Andersen , * * This program is free software; you can redistribute it and/or modify @@ -21,17 +21,20 @@ * */ -#include "busybox.h" +/* getopt not needed */ +#include #include +#include +#include "busybox.h" 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); + show_usage(); argc--; path_list = getenv("PATH"); @@ -48,6 +51,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 +61,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; } /*