aboutsummaryrefslogtreecommitdiff
path: root/debianutils/which.c
diff options
context:
space:
mode:
Diffstat (limited to 'debianutils/which.c')
-rw-r--r--debianutils/which.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/debianutils/which.c b/debianutils/which.c
index 3197ddac1..23a481438 100644
--- a/debianutils/which.c
+++ b/debianutils/which.c
@@ -43,17 +43,34 @@ int which_main(int argc UNUSED_PARAM, char **argv)
43 43
44 do { 44 do {
45 int missing = 1; 45 int missing = 1;
46 char *p;
47
48#if ENABLE_FEATURE_SH_STANDALONE
49 if (find_applet_by_name(*argv) >= 0 ||
50 is_prefixed_with(*argv, "busybox")) {
51 missing = 0;
52 puts(*argv);
53 if (!option_mask32) /* -a not set */
54 break;
55 }
56#endif
46 57
47 /* If file contains a slash don't use PATH */ 58 /* If file contains a slash don't use PATH */
48 if (strchr(*argv, '/')) { 59 if (strchr(*argv, '/') || (ENABLE_PLATFORM_MINGW32 && strchr(*argv, '\\'))) {
49 if (file_is_executable(*argv)) { 60 if (file_is_executable(*argv)) {
50 missing = 0; 61 missing = 0;
51 puts(*argv); 62 puts(*argv);
52 } 63 }
64#if ENABLE_PLATFORM_MINGW32
65 else if ((p=file_is_win32_executable(*argv)) != NULL) {
66 missing = 0;
67 puts(p);
68 free(p);
69 }
70#endif
53 } else { 71 } else {
54 char *path; 72 char *path;
55 char *tmp; 73 char *tmp;
56 char *p;
57 74
58 path = tmp = xstrdup(env_path); 75 path = tmp = xstrdup(env_path);
59 while ((p = find_executable(*argv, &tmp)) != NULL) { 76 while ((p = find_executable(*argv, &tmp)) != NULL) {