summaryrefslogtreecommitdiffstats
path: root/system/pdksh/patches/030_posh-eval.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/pdksh/patches/030_posh-eval.patch')
-rw-r--r--system/pdksh/patches/030_posh-eval.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/system/pdksh/patches/030_posh-eval.patch b/system/pdksh/patches/030_posh-eval.patch
new file mode 100644
index 0000000000..e9f668493c
--- /dev/null
+++ b/system/pdksh/patches/030_posh-eval.patch
@@ -0,0 +1,29 @@
+pdksh (5.2.14-13) unstable; urgency=low
+
+ * c_sh.c: Apply patch from the posh package to make `eval false || true'
+ not exit with -e (closes: #269067).
+Index: pdksh-5.2.14/c_sh.c
+===================================================================
+--- pdksh-5.2.14.orig/c_sh.c 2008-04-15 20:50:48.000000000 +0200
++++ pdksh-5.2.14/c_sh.c 2008-04-15 20:51:18.000000000 +0200
+@@ -423,7 +423,7 @@
+ char **wp;
+ {
+ register struct source *s,*olds=source;
+- int retval;
++ int retval, errexitflagtmp;
+
+ if (ksh_getopt(wp, &builtin_opt, null) == '?')
+ return 1;
+@@ -456,8 +456,10 @@
+ */
+ exstat = subst_exstat;
+ }
+-
++ errexitflagtmp = Flag(FERREXIT);
++ Flag(FERREXIT) = 0;
+ retval=shell(s, FALSE);
++ Flag(FERREXIT) = errexitflagtmp;
+ source=olds;
+ return retval;
+ }