* string.c, enc/unicode.c: Disassociating ONIGENC_CASE_FOLD flag from

ONIGENC_CASE_DOWNCASE.
(with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53778 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
duerst 2016-02-08 11:44:12 +00:00
Родитель d475347990
Коммит 2ca7569c6d
3 изменённых файлов: 8 добавлений и 2 удалений

Просмотреть файл

@ -1,3 +1,9 @@
Mon Feb 8 20:43:57 2016 Martin Duerst <duerst@it.aoyama.ac.jp>
* string.c, enc/unicode.c: Disassociating ONIGENC_CASE_FOLD flag from
ONIGENC_CASE_DOWNCASE.
(with Kimihito Matsui)
Mon Feb 8 13:00:17 2016 Martin Duerst <duerst@it.aoyama.ac.jp>
* enc/unicode.c: Shortened macros for enc/unicode/casefold.h to

Просмотреть файл

@ -651,7 +651,7 @@ onigenc_unicode_case_map(OnigCaseFoldType* flagP,
}
}
else if (code>='A' && code<='Z') {
if (flags&ONIGENC_CASE_DOWNCASE) {
if (flags&(ONIGENC_CASE_DOWNCASE|ONIGENC_CASE_FOLD)) {
MODIFIED;
if (flags&ONIGENC_CASE_FOLD_TURKISH_AZERI && code=='I')
code = DOTLESS_i;

Просмотреть файл

@ -5647,7 +5647,7 @@ check_case_options(int argc, VALUE *argv, OnigCaseFoldType flags)
flags |= ONIGENC_CASE_ASCII_ONLY;
else if (argv[0]==sym_fold) {
if ((flags & (ONIGENC_CASE_UPCASE|ONIGENC_CASE_DOWNCASE)) == ONIGENC_CASE_DOWNCASE)
flags |= ONIGENC_CASE_FOLD;
flags ^= ONIGENC_CASE_FOLD|ONIGENC_CASE_DOWNCASE;
else
rb_raise(rb_eArgError, "option :fold only allowed for downcasing");
}