summaryrefslogtreecommitdiff
path: root/shell/ash.c
diff options
context:
space:
mode:
authorDenis Vlasenko2009-02-15 12:40:30 +0000
committerDenis Vlasenko2009-02-15 12:40:30 +0000
commit8ad78e1ec7b2e873953f9f476fb63b5893526c39 (patch)
tree162818ac9d83a06d91714855b0d0f87b8436c238 /shell/ash.c
parentc6ab0850027e65b2ce880da1527690e2a5f93b03 (diff)
downloadbusybox-8ad78e1ec7b2e873953f9f476fb63b5893526c39.zip
busybox-8ad78e1ec7b2e873953f9f476fb63b5893526c39.tar.gz
ash: make dot command search current directory first, as bash does.
Diffstat (limited to 'shell/ash.c')
-rw-r--r--shell/ash.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/shell/ash.c b/shell/ash.c
index 492ccd7..3abca75 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -11828,7 +11828,16 @@ find_dot_file(char *name)
if (strchr(name, '/'))
return name;
+ /* IIRC standards do not say whether . is to be searched.
+ * And it is even smaller this way, making it unconditional for now:
+ */
+ if (1) { /* ENABLE_ASH_BASH_COMPAT */
+ fullname = name;
+ goto try_cur_dir;
+ }
+
while ((fullname = padvance(&path, name)) != NULL) {
+ try_cur_dir:
if ((stat(fullname, &statb) == 0) && S_ISREG(statb.st_mode)) {
/*
* Don't bother freeing here, since it will