diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2010-04-06 11:29:41 +0200 |
---|---|---|
committer | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2010-04-20 19:14:32 +0200 |
commit | 16abbd77ce3df5d00625ddf506afac164991c025 (patch) | |
tree | 97bc56f276b13bc1b2d45426e5a76c2e1eebf5e0 | |
parent | 72a140250c58c17ebd2bc89e336c4c731e7a9d95 (diff) | |
download | busybox-w32-16abbd77ce3df5d00625ddf506afac164991c025.tar.gz busybox-w32-16abbd77ce3df5d00625ddf506afac164991c025.tar.bz2 busybox-w32-16abbd77ce3df5d00625ddf506afac164991c025.zip |
win32: which: look for .exe files too
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
-rw-r--r-- | debianutils/which.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/debianutils/which.c b/debianutils/which.c index 1558e5c6d..10ddb008c 100644 --- a/debianutils/which.c +++ b/debianutils/which.c | |||
@@ -36,11 +36,21 @@ int which_main(int argc UNUSED_PARAM, char **argv) | |||
36 | do { | 36 | do { |
37 | #if ENABLE_DESKTOP | 37 | #if ENABLE_DESKTOP |
38 | /* Much bloat just to support -a */ | 38 | /* Much bloat just to support -a */ |
39 | if (strchr(*argv, '/')) { | 39 | if (strchr(*argv, '/') || (ENABLE_PLATFORM_MINGW32 && strchr(*argv, '\\'))) { |
40 | if (execable_file(*argv)) { | 40 | if (execable_file(*argv)) { |
41 | puts(*argv); | 41 | puts(*argv); |
42 | continue; | 42 | continue; |
43 | } | 43 | } |
44 | else if (ENABLE_PLATFORM_MINGW32) { | ||
45 | char path[PATH_MAX]; | ||
46 | int len = strlen(*argv); | ||
47 | memcpy(path, *argv, len); | ||
48 | memcpy(path+len, ".exe", 5); | ||
49 | if (execable_file(path)) { | ||
50 | puts(path); | ||
51 | continue; | ||
52 | } | ||
53 | } | ||
44 | status = EXIT_FAILURE; | 54 | status = EXIT_FAILURE; |
45 | } else { | 55 | } else { |
46 | char *path2 = xstrdup(path); | 56 | char *path2 = xstrdup(path); |
@@ -66,11 +76,21 @@ int which_main(int argc UNUSED_PARAM, char **argv) | |||
66 | } | 76 | } |
67 | #else | 77 | #else |
68 | /* Just ignoring -a */ | 78 | /* Just ignoring -a */ |
69 | if (strchr(*argv, '/')) { | 79 | if (strchr(*argv, '/') || (ENABLE_PLATFORM_MINGW32 && strchr(*argv, '\\'))) { |
70 | if (execable_file(*argv)) { | 80 | if (execable_file(*argv)) { |
71 | puts(*argv); | 81 | puts(*argv); |
72 | continue; | 82 | continue; |
73 | } | 83 | } |
84 | else if (ENABLE_PLATFORM_MINGW32) { | ||
85 | char path[PATH_MAX]; | ||
86 | int len = strlen(*argv); | ||
87 | memcpy(path, *argv, len); | ||
88 | memcpy(path+len, ".exe", 5); | ||
89 | if (execable_file(path)) { | ||
90 | puts(path); | ||
91 | continue; | ||
92 | } | ||
93 | } | ||
74 | } else { | 94 | } else { |
75 | char *path2 = xstrdup(path); | 95 | char *path2 = xstrdup(path); |
76 | char *tmp = path2; | 96 | char *tmp = path2; |