diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-01-21 19:47:26 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-01-21 19:47:26 +0000 |
commit | 56be84e29300af86f31c7e5a025df81b2794811f (patch) | |
tree | 2ae0c620f08f299d6b7b0c775982e165e82b3f7f /parse.y | |
parent | 7760f3c462d6016cc220498c346db901e3ffcac1 (diff) | |
download | ruby-56be84e29300af86f31c7e5a025df81b2794811f.tar.gz |
* parse.y (rb_intern3): do not call rb_enc_mbclen() if *m is
ASCII. [ruby-talk:287225]
* string.c (rb_str_each_line): use rb_enc_is_newline() to gain
performance if the record separator ($/) is not modified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -8966,8 +8966,13 @@ rb_intern3(const char *name, long len, rb_encoding *enc) mb = 0; if (!rb_enc_isdigit(*m, enc)) { while (m <= name + last && is_identchar(m, e, enc)) { - if (!ISASCII(*m)) mb = 1; - m += rb_enc_mbclen(m, e, enc); + if (ISASCII(*m)) { + m++; + } + else { + mb = 1; + m += rb_enc_mbclen(m, e, enc); + } } } if (m - name < len) id = ID_JUNK; |