string.c: fix ASCII-only on succ
* string.c (str_succ): clear coderange cache when no alpha-numeric character case, carried part may become ASCII-only. [ruby-core:83062] [Bug #13952] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
623cf29787
commit
16759238ad
1
string.c
1
string.c
@ -4079,6 +4079,7 @@ str_succ(VALUE str)
|
|||||||
}
|
}
|
||||||
carry_pos = s - sbeg;
|
carry_pos = s - sbeg;
|
||||||
}
|
}
|
||||||
|
ENC_CODERANGE_SET(str, ENC_CODERANGE_UNKNOWN);
|
||||||
}
|
}
|
||||||
RESIZE_CAPA(str, slen + carry_len);
|
RESIZE_CAPA(str, slen + carry_len);
|
||||||
sbeg = RSTRING_PTR(str);
|
sbeg = RSTRING_PTR(str);
|
||||||
|
@ -1872,6 +1872,11 @@ CODE
|
|||||||
|
|
||||||
assert_equal("!", " ".succ)
|
assert_equal("!", " ".succ)
|
||||||
assert_equal("", "".succ)
|
assert_equal("", "".succ)
|
||||||
|
|
||||||
|
bug = '[ruby-core:83062] [Bug #13952]'
|
||||||
|
s = "\xff".b
|
||||||
|
assert_not_predicate(s, :ascii_only?)
|
||||||
|
assert_predicate(s.succ, :ascii_only?, bug)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_succ!
|
def test_succ!
|
||||||
|
Loading…
x
Reference in New Issue
Block a user