1 diff -urp mksh.orig/check.t mksh/check.t
2 --- mksh.orig/check.t 2016-08-12 16:48:28.000000000 +0000
3 +++ mksh/check.t 2016-08-18 06:51:31.069554000 +0000
4 @@ -2274,7 +2274,7 @@ expected-stdout:
13 diff -urp mksh.orig/eval.c mksh/eval.c
14 --- mksh.orig/eval.c 2016-08-01 21:38:27.000000000 +0000
15 +++ mksh/eval.c 2016-08-18 06:51:31.063554000 +0000
16 @@ -972,6 +972,7 @@ expand(
24 diff -urp mksh.orig/misc.c mksh/misc.c
25 --- mksh.orig/misc.c 2016-08-01 18:43:08.000000000 +0000
26 +++ mksh/misc.c 2016-08-18 06:51:31.064554000 +0000
27 @@ -902,7 +902,7 @@ gmatch_cclass(const unsigned char *p, un
28 bool notp, found = false;
29 const unsigned char *orig_p = p;
31 - if ((notp = tobool(ISMAGIC(*p) && *++p == '!')))
32 + if ((notp = tobool(ISMAGIC(*p) && (*++p == '!' || *p == NOT2))))
36 diff -urp mksh.orig/sh.h mksh/sh.h
37 --- mksh.orig/sh.h 2016-08-12 16:48:31.000000000 +0000
38 +++ mksh/sh.h 2016-08-18 06:51:31.066554000 +0000
39 @@ -501,6 +501,7 @@ extern int __cdecl setegid(gid_t);
41 #define MAGIC (7) /* prefix for *?[!{,} during expand */
42 #define ISMAGIC(c) ((unsigned char)(c) == MAGIC)
45 EXTERN const char *safe_prompt; /* safe prompt if PS1 substitution fails */