1 |
diff -p -up grep-2.6.1/src/dfa.c.casefold grep-2.6.1/src/dfa.c |
2 |
--- grep-2.6.1/src/dfa.c.casefold 2010-03-25 10:28:54.000000000 -0300 |
3 |
+++ grep-2.6.1/src/dfa.c 2010-03-26 09:27:36.000000000 -0300 |
4 |
@@ -724,6 +724,20 @@ parse_bracket_exp (void) |
5 |
REALLOC_IF_NECESSARY(work_mbc->chars, wchar_t, chars_al, |
6 |
work_mbc->nchars + 1); |
7 |
work_mbc->chars[work_mbc->nchars++] = wc; |
8 |
+ if (case_fold && (iswlower((wint_t) wc) || iswupper((wint_t) wc))) |
9 |
+ { |
10 |
+ wint_t altcase; |
11 |
+ |
12 |
+ altcase = wc; /* keeps compiler happy */ |
13 |
+ if (iswlower((wint_t) wc)) |
14 |
+ altcase = towupper((wint_t) wc); |
15 |
+ else if (iswupper((wint_t) wc)) |
16 |
+ altcase = towlower((wint_t) wc); |
17 |
+ |
18 |
+ REALLOC_IF_NECESSARY(work_mbc->chars, wchar_t, chars_al, |
19 |
+ work_mbc->nchars + 1); |
20 |
+ work_mbc->chars[work_mbc->nchars++] = (wchar_t) altcase; |
21 |
+ } |
22 |
} |
23 |
} |
24 |
#else |