summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorK.Takata <kentkt@csc.jp>2019-01-25 18:58:59 +0900
committernagachika <nagachika@ruby-lang.org>2025-11-02 14:12:14 +0900
commit9f81d53068de6cd6ff96e7f102e6059c573b9005 (patch)
tree3833f167625e6305cfce730fa4d844fa56b77b70
parent70aeeeb515713b1632f7f7cc53e8dae326fc0fc9 (diff)
Avoid negative character
Better fix for k-takata/Onigmo#107. https://github.com/k-takata/Onigmo/commit/85393e4a63223b538529e7095255ce1153c09cff
-rw-r--r--enc/unicode.c6
-rw-r--r--regenc.c4
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))) {