1 diff -urNp -x '*.orig' mksh-59c.org/check.t mksh-59c/check.t
2 --- mksh-59c.org/check.t 2020-10-31 04:53:30.000000000 +0100
3 +++ mksh-59c/check.t 2021-03-20 19:53:40.714261839 +0100
4 @@ -2484,7 +2484,7 @@ expected-stdout:
5 !bc +bc ,bc 0bc 1bc ^bc cbc
6 !bc +bc ,bc -bc 0bc 1bc ^bc cbc
9 + !bc +bc ,bc -bc 0bc 1bc ^bc cbc
13 diff -urNp -x '*.orig' mksh-59c.org/eval.c mksh-59c/eval.c
14 --- mksh-59c.org/eval.c 2020-05-05 23:34:54.000000000 +0200
15 +++ mksh-59c/eval.c 2021-03-20 19:53:40.717595272 +0100
16 @@ -1108,6 +1108,7 @@ expand(
24 diff -urNp -x '*.orig' mksh-59c.org/misc.c mksh-59c/misc.c
25 --- mksh-59c.org/misc.c 2020-08-27 21:53:12.000000000 +0200
26 +++ mksh-59c/misc.c 2021-03-20 19:53:40.717595272 +0100
27 @@ -1018,7 +1018,7 @@ gmatch_cclass(const unsigned char *pat,
30 /* check for negation */
31 - if (ISMAGIC(p[0]) && ord(p[1]) == ORD('!')) {
32 + if (ISMAGIC(p[0]) && (ord(p[1]) == ORD('!') || ord(p[1]) == ORD(NOT2))) {
36 diff -urNp -x '*.orig' mksh-59c.org/sh.h mksh-59c/sh.h
37 --- mksh-59c.org/sh.h 2020-10-31 04:53:33.000000000 +0100
38 +++ mksh-59c/sh.h 2021-03-20 19:53:40.717595272 +0100
39 @@ -580,6 +580,7 @@ extern int __cdecl setegid(gid_t);
41 #define MAGIC KSH_BEL /* prefix for *?[!{,} during expand */
42 #define ISMAGIC(c) (ord(c) == ORD(MAGIC))
45 EXTERN const char *safe_prompt; /* safe prompt if PS1 substitution fails */