summaryrefslogtreecommitdiff
path: root/system/pdksh/patches/030_posh-eval.patch
blob: e9f668493c6180f55dc5ee96158c3fc00a8a5a39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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;
 }