--- glob.c.orig 2019-11-18 23:43:59.426852570 +0100
+++ glob.c 2019-11-19 00:49:00.633217828 +0100
@@ -736,28 +736,28 @@ match(const char *name, const Char *pat,
if (*name == EOS)
break;
pat += pwk;
- pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX);
name += lwk;
if ((negate_range = ((*pat & M_MASK) == m_not)) != 0) {
+ pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX);
pat += pwk;
- pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX);
}
while ((*pat & M_MASK) != M_END) {
+ pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX);
+ pat += pwk;
if ((*pat & M_MASK) == M_RNG) {
__Char wc2;
-
+ pwk = One_Char_mbtowc(&wc2, pat, MB_LEN_MAX);
pat += pwk;
pwk = One_Char_mbtowc(&wc2, pat, MB_LEN_MAX);
+ pat += pwk;
if (globcharcoll(wc, wk, 0) <= 0 &&
globcharcoll(wk, wc2, 0) <= 0)
ok = 1;
} else if (wc == wk)
ok = 1;
- pat += pwk;
- pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX);
}
- pat += pwk;
pwk = One_Char_mbtowc(&wc, pat, MB_LEN_MAX);
+ pat += pwk;
if (ok == negate_range)
break;
continue;