about summary refs log tree commit diff
path: root/Src/builtin.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2011-02-22 20:09:20 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2011-02-22 20:09:20 +0000
commitdbbcbf67cb8a330e5c7d8a40ed4152a53db6b5f8 (patch)
tree41ec7fbda389e5ec8d04a8c3ad21b27f01659912 /Src/builtin.c
parent73ebca4fe92767665422e7fd5dc15032add389b4 (diff)
downloadzsh-dbbcbf67cb8a330e5c7d8a40ed4152a53db6b5f8.tar.gz
zsh-dbbcbf67cb8a330e5c7d8a40ed4152a53db6b5f8.tar.xz
zsh-dbbcbf67cb8a330e5c7d8a40ed4152a53db6b5f8.zip
28791: exit on errors with special builtins with POSIXBUILTINS
Diffstat (limited to 'Src/builtin.c')
-rw-r--r--Src/builtin.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/Src/builtin.c b/Src/builtin.c
index a85a49a20..aa87dfb7d 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -4821,8 +4821,14 @@ bin_dot(char *name, char **argv, UNUSED(Options ops), UNUSED(int func))
 	freearray(pparams);
 	pparams = old;
     }
-    if (ret == SOURCE_NOT_FOUND)
-	zwarnnam(name, "%e: %s", errno, enam);
+    if (ret == SOURCE_NOT_FOUND) {
+	if (isset(POSIXBUILTINS)) {
+	    /* hard error in POSIX (we'll exit later) */
+	    zerrnam(name, "%e: %s", errno, enam);
+	} else {
+	    zwarnnam(name, "%e: %s", errno, enam);
+	}
+    }
     zsfree(arg0);
     if (old0) {
 	zsfree(argzero);