diff options
Diffstat (limited to 'debianutils/which.c')
-rw-r--r-- | debianutils/which.c | 21 |
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) { |