diff options
author | Ron Yorston <rmy@pobox.com> | 2018-02-26 20:39:23 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2018-02-26 20:39:23 +0000 |
commit | 650f67507f2718dec0d4282afea619cfe7a53305 (patch) | |
tree | 82e523133f961e8337f42765307b63dc737f2580 /include | |
parent | fcb5c968bef6c4fd234e000aaeaa160ac1d16f11 (diff) | |
download | busybox-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 'include')
-rw-r--r-- | include/mingw.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/mingw.h b/include/mingw.h index 09c140d31..c116e551a 100644 --- a/include/mingw.h +++ b/include/mingw.h | |||
@@ -476,7 +476,8 @@ void init_winsock(void); | |||
476 | 476 | ||
477 | int has_exe_suffix(const char *p); | 477 | int has_exe_suffix(const char *p); |
478 | int has_bat_suffix(const char *p); | 478 | int has_bat_suffix(const char *p); |
479 | char *file_is_win32_executable(const char *p); | 479 | char *add_win32_extension(const char *p); |
480 | int has_exec_format(const char *name); | ||
480 | 481 | ||
481 | int err_win_to_posix(DWORD winerr); | 482 | int err_win_to_posix(DWORD winerr); |
482 | 483 | ||