1 diff -ur mksh-40.org//eval.c mksh-40/eval.c
2 --- mksh-40.org//eval.c 2011-06-12 16:45:57.000000000 +0200
3 +++ mksh-40/eval.c 2011-07-07 18:27:58.891492090 +0200
12 diff -ur mksh-40.org//misc.c mksh-40/misc.c
13 --- mksh-40.org//misc.c 2011-06-12 16:45:58.000000000 +0200
14 +++ mksh-40/misc.c 2011-07-07 18:28:39.015826686 +0200
16 bool notp, found = false;
17 const unsigned char *orig_p = p;
19 - if ((notp = tobool(ISMAGIC(*p) && *++p == '!')))
20 + if ((notp = tobool(ISMAGIC(*p) && (*++p == '!' || *p == NOT2))))
24 diff -ur mksh-40.org//sh.h mksh-40/sh.h
25 --- mksh-40.org//sh.h 2011-06-12 16:59:09.000000000 +0200
26 +++ mksh-40/sh.h 2011-07-07 18:29:16.346761511 +0200
28 #define MAGIC (7) /* prefix for *?[!{,} during expand */
29 #define ISMAGIC(c) ((unsigned char)(c) == MAGIC)
32 #define LINE 4096 /* input line size */
34 diff -ur mksh-40.org//tree.c mksh-40/tree.c
35 --- mksh-40.org//tree.c 2011-05-29 04:19:21.000000000 +0200
36 +++ mksh-40/tree.c 2011-07-07 18:30:12.088149284 +0200
40 if ((opmode & WDS_MAGIC) &&
41 - (ISMAGIC(c) || c == '[' || c == '!' ||
42 + (ISMAGIC(c) || c == '[' || c == '!' || c == NOT2 ||
43 c == '-' || c == ']' || c == '*' || c == '?'))