summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
Diffstat (limited to 'Src')
-rw-r--r--Src/exec.c5
-rw-r--r--Src/lex.c2
2 files changed, 5 insertions, 2 deletions
diff --git a/Src/exec.c b/Src/exec.c
index 83479bc88..9ec49e11a 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -46,7 +46,10 @@ enum {
 /**/
 int noerrexit;
 
-/* suppress error messages */
+/*
+ * noerrs = 1: suppress error messages
+ * noerrs = 2: don't set errflag on parse error, either
+ */
  
 /**/
 mod_export int noerrs;
diff --git a/Src/lex.c b/Src/lex.c
index a3b03c8a4..4128f109a 100644
--- a/Src/lex.c
+++ b/Src/lex.c
@@ -1619,7 +1619,7 @@ parse_subst_string(char *s)
      * Historical note: we used to check here for olen == l, but
      * that's not necessarily the case if we stripped an RCQUOTE.
      */
-    if (c != STRING || errflag) {
+    if (c != STRING || (errflag && !noerrs)) {
 	fprintf(stderr, "Oops. Bug in parse_subst_string: %s\n",
 		errflag ? "errflag" : "c != STRING");
 	fflush(stderr);