From d20aaa26a9aff415552e7bb30560d614ae21cd2b Mon Sep 17 00:00:00 2001 From: Nguyễn Thái Ngọc Duy Date: Wed, 22 Apr 2009 22:32:48 +1000 Subject: coreutils/test: "test -x foo.exe" should return true --- coreutils/test.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/coreutils/test.c b/coreutils/test.c index a635b1735..f9b872f1d 100644 --- a/coreutils/test.c +++ b/coreutils/test.c @@ -398,6 +398,24 @@ static int filstat(char *nm, enum token mode) return 0; } +#ifdef __MINGW32__ + if (mode == FILEX) { + int len = strlen(nm), ret; + char *exepath; + if (len >= 4 && !strcmp(nm+len-4,".exe")) + exepath = nm; + else { + exepath = malloc(len+5); + memcpy(exepath, nm, len); + memcpy(exepath+len, ".exe", 5); + } + ret = stat(exepath, &s); + if (exepath != nm) + free(exepath); + return ret >= 0; + } +#endif + if (stat(nm, &s) != 0) return 0; if (mode == FILEXIST) -- cgit v1.2.3-55-g6feb