diff options
| author | K.Takata <kentkt@csc.jp> | 2019-01-25 18:58:59 +0900 |
|---|---|---|
| committer | nagachika <nagachika@ruby-lang.org> | 2025-11-02 14:12:14 +0900 |
| commit | 9f81d53068de6cd6ff96e7f102e6059c573b9005 (patch) | |
| tree | 3833f167625e6305cfce730fa4d844fa56b77b70 | |
| parent | 70aeeeb515713b1632f7f7cc53e8dae326fc0fc9 (diff) | |
Avoid negative character
Better fix for k-takata/Onigmo#107.
https://github.com/k-takata/Onigmo/commit/85393e4a63223b538529e7095255ce1153c09cff
| -rw-r--r-- | enc/unicode.c | 6 | ||||
| -rw-r--r-- | 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') { @@ -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))) { |
