aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--enc/unicode.c22
2 files changed, 19 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index c59e3cfc33..de8a1d56b4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Mar 15 16:17:09 2016 Martin Duerst <duerst@it.aoyama.ac.jp>
+
+ * enc/unicode.c: Expansion of some code repetition in preparation for
+ elimination of common code pieces.
+ (with Kimihito Matsui)
+
Tue Mar 15 13:49:23 2016 Martin Duerst <duerst@it.aoyama.ac.jp>
* enc/unicode.c: Additional macros and code to use mapping data in
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;
}
}