aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2010-04-06 11:29:41 +0200
committerNguyễn Thái Ngọc Duy <pclouds@gmail.com>2010-09-10 19:49:33 +1000
commitc903ad76111e740b61b7fc6033e5d84867d09a63 (patch)
tree48c1e4fc3cca6ef56514b5d04687ab21d5310cd4
parente96864c202d5c996b2a22b3e49f1111f42c37602 (diff)
downloadbusybox-w32-c903ad76111e740b61b7fc6033e5d84867d09a63.tar.gz
busybox-w32-c903ad76111e740b61b7fc6033e5d84867d09a63.tar.bz2
busybox-w32-c903ad76111e740b61b7fc6033e5d84867d09a63.zip
win32: which: look for .exe files too
-rw-r--r--debianutils/which.c24
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;