From 9f81d53068de6cd6ff96e7f102e6059c573b9005 Mon Sep 17 00:00:00 2001 From: "K.Takata" Date: Fri, 25 Jan 2019 18:58:59 +0900 Subject: Avoid negative character Better fix for k-takata/Onigmo#107. https://github.com/k-takata/Onigmo/commit/85393e4a63223b538529e7095255ce1153c09cff --- enc/unicode.c | 6 ++---- regenc.c | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/enc/unicode.c b/enc/unicode.c index 19edf9c023..938f788943 100644 --- a/enc/unicode.c +++ b/enc/unicode.c @@ -687,10 +687,8 @@ onigenc_unicode_case_map(OnigCaseFoldType* flagP, MODIFIED; if (flags & ONIGENC_CASE_FOLD_TURKISH_AZERI && code == 'i') code = I_WITH_DOT_ABOVE; - else { - code -= 'a'; - code += 'A'; - } + else + code -= 'a' - 'A'; } } else if (code >= 'A' && code <= 'Z') { diff --git a/regenc.c b/regenc.c index 0afdf22cb7..823aacc28e 100644 --- a/regenc.c +++ b/regenc.c @@ -984,7 +984,7 @@ onigenc_ascii_only_case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, const if (code >= 'a' && code <= 'z' && (flags & ONIGENC_CASE_UPCASE)) { flags |= ONIGENC_CASE_MODIFIED; - code += 'A' - 'a'; + code -= 'a' - 'A'; } else if (code >= 'A' && code <= 'Z' && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { @@ -1013,7 +1013,7 @@ onigenc_single_byte_ascii_only_case_map(OnigCaseFoldType* flagP, const OnigUChar if (code >= 'a' && code <= 'z' && (flags & ONIGENC_CASE_UPCASE)) { flags |= ONIGENC_CASE_MODIFIED; - code += 'A' - 'a'; + code -= 'a' - 'A'; } else if (code >= 'A' && code <= 'Z' && (flags & (ONIGENC_CASE_DOWNCASE | ONIGENC_CASE_FOLD))) { -- cgit v1.2.3