diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-24 04:59:31 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-24 04:59:31 +0000 |
commit | 4b8e14c978bf1300b6528430c28aab21865a21f4 (patch) | |
tree | 08f8f9fff8e864a45db15536fae5d75f753acdc1 /string.c | |
parent | cb9da52cdedfd71d326ac83f72bd553373c7f815 (diff) | |
download | ruby-4b8e14c978bf1300b6528430c28aab21865a21f4.tar.gz |
* string.c (rb_enc_strlen_cr): increment by rb_enc_mbminlen(enc) for
broken byte sequence. [ruby-core:27748]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r-- | string.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -1008,7 +1008,10 @@ rb_enc_strlen_cr(const char *p, const char *e, rb_encoding *enc, int *cr) } else { *cr = ENC_CODERANGE_BROKEN; - p++; + if (p + rb_enc_mbminlen(enc) <= e) + p += rb_enc_mbminlen(enc); + else + p = e; } } if (!*cr) *cr = ENC_CODERANGE_7BIT; |