summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2020-05-24 10:27:23 +0100
committerRon Yorston <rmy@pobox.com>2020-05-24 10:27:23 +0100
commit04129e0bde3c2d25ab676079e6e3b6fdcdeabe4f (patch)
tree4eae7fc3f111e4a0c15c6a4371fca751b2630e6f /shell
parent184aa4b5d07d5f3fcc15dd4bb0d4636fba734de3 (diff)
downloadbusybox-w32-04129e0bde3c2d25ab676079e6e3b6fdcdeabe4f.tar.gz
busybox-w32-04129e0bde3c2d25ab676079e6e3b6fdcdeabe4f.tar.bz2
busybox-w32-04129e0bde3c2d25ab676079e6e3b6fdcdeabe4f.zip
win32: changes to '#!' support
Since the earliest days of busybox-w32 '#!' has searched PATH for the interpreter. This doesn't seem to be supported by precedent. In testing I also found that additional code was needed for the case where PATH has been altered in the current shell or is modified on the command line: PATH has to be extracted from envp rather than getenv("PATH"). Drop this non-standard feature. *NIX implementations disagree on whether the interpreter can itself be a script. Follow Linux and allow this with a limit of four levels of nesting.
Diffstat (limited to 'shell')
-rw-r--r--shell/ash.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/shell/ash.c b/shell/ash.c
index 4f1fe005b..c6f64e202 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -22,8 +22,7 @@
22 * - Environment variables from Windows will all be turned to uppercase. 22 * - Environment variables from Windows will all be turned to uppercase.
23 * - PATH accepts both ; and : as separator, but can't be mixed 23 * - PATH accepts both ; and : as separator, but can't be mixed
24 * - command without ".exe" extension is still understood as executable 24 * - command without ".exe" extension is still understood as executable
25 * - shell scripts on the path are detected by the presence of '#!'; 25 * - shell scripts on the path are detected by the presence of '#!'
26 * the path to the interpreter is ignored, PATH is searched to find it
27 * - both / and \ are supported in PATH. Usually you must use / 26 * - both / and \ are supported in PATH. Usually you must use /
28 * - trap/job does not work 27 * - trap/job does not work
29 * - /dev/null is supported for redirection 28 * - /dev/null is supported for redirection