From c903ad76111e740b61b7fc6033e5d84867d09a63 Mon Sep 17 00:00:00 2001 From: Nguyễn Thái Ngọc Duy Date: Tue, 6 Apr 2010 11:29:41 +0200 Subject: win32: which: look for .exe files too --- debianutils/which.c | 24 ++++++++++++++++++++++-- 1 file 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) do { #if ENABLE_DESKTOP /* Much bloat just to support -a */ - if (strchr(*argv, '/')) { + if (strchr(*argv, '/') || (ENABLE_PLATFORM_MINGW32 && strchr(*argv, '\\'))) { if (execable_file(*argv)) { puts(*argv); continue; } + else if (ENABLE_PLATFORM_MINGW32) { + char path[PATH_MAX]; + int len = strlen(*argv); + memcpy(path, *argv, len); + memcpy(path+len, ".exe", 5); + if (execable_file(path)) { + puts(path); + continue; + } + } status = EXIT_FAILURE; } else { char *path2 = xstrdup(path); @@ -66,11 +76,21 @@ int which_main(int argc UNUSED_PARAM, char **argv) } #else /* Just ignoring -a */ - if (strchr(*argv, '/')) { + if (strchr(*argv, '/') || (ENABLE_PLATFORM_MINGW32 && strchr(*argv, '\\'))) { if (execable_file(*argv)) { puts(*argv); continue; } + else if (ENABLE_PLATFORM_MINGW32) { + char path[PATH_MAX]; + int len = strlen(*argv); + memcpy(path, *argv, len); + memcpy(path+len, ".exe", 5); + if (execable_file(path)) { + puts(path); + continue; + } + } } else { char *path2 = xstrdup(path); char *tmp = path2; -- cgit v1.2.3-55-g6feb