1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* string.c (rb_str_inspect): don't call rb_enc_codepoint with empty

string.  fix '#'.inspect.

* encoding.c (rb_enc_codepoint): raise on empty string.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2007-12-25 09:07:32 +00:00
parent 8e4c6d8482
commit ead329fd8e
3 changed files with 13 additions and 2 deletions

View file

@ -1,3 +1,10 @@
Tue Dec 25 18:06:04 2007 Tanaka Akira <akr@fsij.org>
* string.c (rb_str_inspect): don't call rb_enc_codepoint with empty
string. fix '#'.inspect.
* encoding.c (rb_enc_codepoint): raise on empty string.
Tue Dec 25 17:48:28 2007 Shugo Maeda <shugo@ruby-lang.org>
* vm.c (rb_frame_method_id_and_class): new function to get the

View file

@ -662,7 +662,10 @@ rb_enc_ascget(const char *p, const char *e, int *len, rb_encoding *enc)
int rb_enc_codepoint(const char *p, const char *e, rb_encoding *enc)
{
int r = rb_enc_precise_mbclen(p, e, enc);
int r;
if (e <= p)
rb_raise(rb_eArgError, "empty string");
r = rb_enc_precise_mbclen(p, e, enc);
if (MBCLEN_CHARFOUND(r))
return ONIGENC_MBC_TO_CODE(enc,(UChar*)p,(UChar*)e);
else

View file

@ -3025,7 +3025,8 @@ rb_str_inspect(VALUE str)
p += n;
if (c == '"'|| c == '\\' ||
(c == '#' && (cc = rb_enc_codepoint(p,pend,enc),
(c == '#' && p < pend &&
(cc = rb_enc_codepoint(p,pend,enc),
(cc == '$' || cc == '@' || cc == '{')))) {
prefix_escape(result, c, enc);
}