From 41ef232fc522d91f29931ea4ee547432ca8899ee Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Thu, 13 Aug 2020 14:27:56 +0100 Subject: win32: use built-in applets for non-existent binaries with Unix-style paths Shell scripts moved from Unix may contain hard-coded paths to binaries such as /bin/sh. A recent commit made it possible to execute such binaries reliably, but that does require them to be installed. As an alternative solution: if a binary with a standard Unix path prefix can't be found but is available as a built-in applet, run the applet. Add the function unix_path() to detect paths starting with /bin, /usr/bin, /sbin or /usr/sbin. Use this function in: - the 'which' applet - shellexec(), describe_command() and find_command() in ash - mingw_spawn_1() See GitHub issue #195. --- include/mingw.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/mingw.h b/include/mingw.h index 434f3a474..b34d8772c 100644 --- a/include/mingw.h +++ b/include/mingw.h @@ -555,4 +555,5 @@ char *get_drive_cwd(const char *path, char *buffer, int size); void fix_path_case(char *path); void make_sparse(int fd, off_t start, off_t end); int skip_ansi_emulation(int reset); +int unix_path(const char *path); int has_path(const char *file); -- cgit v1.2.3-55-g6feb