aboutsummaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2018-02-26 20:39:23 +0000
committerRon Yorston <rmy@pobox.com>2018-02-26 20:39:23 +0000
commit650f67507f2718dec0d4282afea619cfe7a53305 (patch)
tree82e523133f961e8337f42765307b63dc737f2580 /coreutils
parentfcb5c968bef6c4fd234e000aaeaa160ac1d16f11 (diff)
downloadbusybox-w32-650f67507f2718dec0d4282afea619cfe7a53305.tar.gz
busybox-w32-650f67507f2718dec0d4282afea619cfe7a53305.tar.bz2
busybox-w32-650f67507f2718dec0d4282afea619cfe7a53305.zip
win32: move detection of file formats to stat(2)
Move the code to detect shell scripts and binary executables from mingw_access to a separate function, has_exec_format. Call this function in do_lstat to decide whether to set the executable bits in the file mode. This will slow down stat but has a couple of advantages: - shell scripts are highlighted in ls output - the test applet can use stat(2) to detect executable files The new function is used to handle another corner case in spawnveq: binary executables without the usual .exe extension are only run by spawnve if the file name ends with '.'. Two minor changes: - file_is_win32_executable has been renamed add_win32_extension to clarify what it does - a call to file_is_executable has been removed from find_command in ash as it resulted in unhelpful error messages.
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/test.c15
1 files changed, 0 insertions, 15 deletions
diff --git a/coreutils/test.c b/coreutils/test.c
index ed708c6d3..a8286525a 100644
--- a/coreutils/test.c
+++ b/coreutils/test.c
@@ -637,21 +637,6 @@ static int filstat(char *nm, enum token mode)
637 return 0; 637 return 0;
638 } 638 }
639 639
640#if ENABLE_PLATFORM_MINGW32
641 if (mode == FILEX) {
642 char *p;
643
644 if (file_is_executable(nm)) {
645 return 1;
646 }
647 else if ((p=file_is_win32_executable(nm))) {
648 free(p);
649 return 1;
650 }
651 return 0;
652 }
653#endif
654
655 if (stat(nm, &s) != 0) 640 if (stat(nm, &s) != 0)
656 return 0; 641 return 0;
657 if (mode == FILEXIST) 642 if (mode == FILEXIST)