diff --git a/ChangeLog b/ChangeLog index de8a1d56b4..317962c555 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Mar 15 16:29:51 2016 Martin Duerst + + * enc/unicode.c: Eliminating common code. + (with Kimihito Matsui) + Tue Mar 15 16:17:09 2016 Martin Duerst * enc/unicode.c: Expansion of some code repetition in preparation for diff --git a/enc/unicode.c b/enc/unicode.c index a52bb3324c..5087c55a07 100644 --- a/enc/unicode.c +++ b/enc/unicode.c @@ -716,7 +716,6 @@ onigenc_unicode_case_map(OnigCaseFoldType* flagP, MODIFIED; if (flags&OnigCaseFoldFlags(folded->n)&ONIGENC_CASE_SPECIALS) { OnigCodePoint *SpecialsStart = CaseMappingSpecials + OnigSpecialIndexDecode(folded->n); - int count; if (OnigCaseFoldFlags(folded->n)&ONIGENC_CASE_TITLECASE) { if (flags&ONIGENC_CASE_TITLECASE) @@ -732,38 +731,23 @@ onigenc_unicode_case_map(OnigCaseFoldType* flagP, SpecialsCopy: count = SpecialsLengthExtract(*SpecialsStart); next = SpecialsStart; - if (count==1) - code = SpecialsCodepointExtract(*next); - else if (count==2) { - code = SpecialsCodepointExtract(*next++); - to += ONIGENC_CODE_TO_MBC(enc, code, to); - code = *next; - } - else { /* count == 3 */ - code = SpecialsCodepointExtract(*next++); - to += ONIGENC_CODE_TO_MBC(enc, code, to); - code = *next++; - to += ONIGENC_CODE_TO_MBC(enc, code, to); - code = *next; - } + code = SpecialsCodepointExtract(*next++); } else { /* no specials */ count = OnigCodePointCount(folded->n); next = folded->code; - if (count==1) - code = *next; - else if (count==2) { - code = *next++; - to += ONIGENC_CODE_TO_MBC(enc, code, to); - code = *next; - } - else { /* count == 3 */ - code = *next++; - to += ONIGENC_CODE_TO_MBC(enc, code, to); - code = *next++; - to += ONIGENC_CODE_TO_MBC(enc, code, to); - code = *next; - } + code = *next++; + } + if (count==1) + ; + else if (count==2) { + to += ONIGENC_CODE_TO_MBC(enc, code, to); + code = *next; + } + else { /* count == 3 */ + to += ONIGENC_CODE_TO_MBC(enc, code, to); + to += ONIGENC_CODE_TO_MBC(enc, *next++, to); + code = *next; } } }