aboutsummaryrefslogtreecommitdiffstats
path: root/enc
diff options
context:
space:
mode:
Diffstat (limited to 'enc')
-rw-r--r--enc/unicode.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/enc/unicode.c b/enc/unicode.c
index 5a46982a5e..a52bb3324c 100644
--- a/enc/unicode.c
+++ b/enc/unicode.c
@@ -725,9 +725,7 @@ onigenc_unicode_case_map(OnigCaseFoldType* flagP,
SpecialsStart += SpecialsLengthExtract(*SpecialsStart);
}
if (OnigCaseFoldFlags(folded->n)&ONIGENC_CASE_DOWN_SPECIAL) {
- if (flags&ONIGENC_CASE_DOWN_SPECIAL)
- goto SpecialsCopy;
- else
+ if (!(flags&ONIGENC_CASE_DOWN_SPECIAL))
SpecialsStart += SpecialsLengthExtract(*SpecialsStart);
}
/* if we pass here, we know we use special upcasing, and are at the right position */
@@ -737,12 +735,15 @@ onigenc_unicode_case_map(OnigCaseFoldType* flagP,
if (count==1)
code = SpecialsCodepointExtract(*next);
else if (count==2) {
- to += ONIGENC_CODE_TO_MBC(enc, SpecialsCodepointExtract(*next++), to);
+ code = SpecialsCodepointExtract(*next++);
+ to += ONIGENC_CODE_TO_MBC(enc, code, to);
code = *next;
}
else { /* count == 3 */
- to += ONIGENC_CODE_TO_MBC(enc, SpecialsCodepointExtract(*next++), to);
- to += ONIGENC_CODE_TO_MBC(enc, *next++, to);
+ code = SpecialsCodepointExtract(*next++);
+ to += ONIGENC_CODE_TO_MBC(enc, code, to);
+ code = *next++;
+ to += ONIGENC_CODE_TO_MBC(enc, code, to);
code = *next;
}
}
@@ -752,12 +753,15 @@ onigenc_unicode_case_map(OnigCaseFoldType* flagP,
if (count==1)
code = *next;
else if (count==2) {
- to += ONIGENC_CODE_TO_MBC(enc, *next++, to);
+ code = *next++;
+ to += ONIGENC_CODE_TO_MBC(enc, code, to);
code = *next;
}
else { /* count == 3 */
- to += ONIGENC_CODE_TO_MBC(enc, *next++, to);
- to += ONIGENC_CODE_TO_MBC(enc, *next++, to);
+ code = *next++;
+ to += ONIGENC_CODE_TO_MBC(enc, code, to);
+ code = *next++;
+ to += ONIGENC_CODE_TO_MBC(enc, code, to);
code = *next;
}
}