aboutsummaryrefslogtreecommitdiffstats
path: root/regex_internal.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2014-04-11 07:44:22 +0300
committerArnold D. Robbins <arnold@skeeve.com>2014-04-11 07:44:22 +0300
commitebb6772e9eabeb81e3cc9305a6bec7adf7aad450 (patch)
tree2cf743f82791db19cc7e31cab86b1fc9a4d5ddbb /regex_internal.c
parente069c636968370f0899d5e4ebaeb9c2341804245 (diff)
parenta4b59faf911743b30f2e6e979c4f9c1ea0669ac3 (diff)
downloadegawk-ebb6772e9eabeb81e3cc9305a6bec7adf7aad450.tar.gz
egawk-ebb6772e9eabeb81e3cc9305a6bec7adf7aad450.tar.bz2
egawk-ebb6772e9eabeb81e3cc9305a6bec7adf7aad450.zip
Merge branch 'master' into comment
Diffstat (limited to 'regex_internal.c')
-rw-r--r--regex_internal.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/regex_internal.c b/regex_internal.c
index 10dd6e00..056cff3d 100644
--- a/regex_internal.c
+++ b/regex_internal.c
@@ -320,12 +320,11 @@ build_wcs_upper_buffer (re_string_t *pstr)
+ byte_idx), remain_len, &pstr->cur_state);
if (BE (mbclen + 2 > 2, 1))
{
- wchar_t wcu = wc;
- if (iswlower (wc))
+ wchar_t wcu = towupper (wc);
+ if (wcu != wc)
{
size_t mbcdlen;
- wcu = towupper (wc);
mbcdlen = wcrtomb (buf, wcu, &prev_st);
if (BE (mbclen == mbcdlen, 1))
memcpy (pstr->mbs + byte_idx, buf, mbclen);
@@ -390,12 +389,11 @@ build_wcs_upper_buffer (re_string_t *pstr)
mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state);
if (BE (mbclen + 2 > 2, 1))
{
- wchar_t wcu = wc;
- if (iswlower (wc))
+ wchar_t wcu = towupper (wc);
+ if (wcu != wc)
{
size_t mbcdlen;
- wcu = towupper (wc);
mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st);
if (BE (mbclen == mbcdlen, 1))
memcpy (pstr->mbs + byte_idx, buf, mbclen);
@@ -547,10 +545,7 @@ build_upper_buffer (re_string_t *pstr)
int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx];
if (BE (pstr->trans != NULL, 0))
ch = pstr->trans[ch];
- if (islower (ch))
- pstr->mbs[char_idx] = toupper (ch);
- else
- pstr->mbs[char_idx] = ch;
+ pstr->mbs[char_idx] = toupper (ch);
}
pstr->valid_len = char_idx;
pstr->valid_raw_len = char_idx;