diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-08 18:41:47 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-08 18:41:47 +0000 |
commit | a4b15177426e74242aac9f7e637549f58159d028 (patch) | |
tree | 06f3d4287eafff768b4a1e3c25a91cb308724547 /encoding.c | |
parent | e0850807334995fdf6034566a0f30eff2953f7a0 (diff) | |
download | ruby-a4b15177426e74242aac9f7e637549f58159d028.tar.gz ruby-a4b15177426e74242aac9f7e637549f58159d028.tar.xz ruby-a4b15177426e74242aac9f7e637549f58159d028.zip |
* encoding.c (rb_enc_mbclen): return 1 if underlying implementation
returns a length longer than e-p.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'encoding.c')
-rw-r--r-- | encoding.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/encoding.c b/encoding.c index 540aa8870..e902f6db0 100644 --- a/encoding.c +++ b/encoding.c @@ -486,7 +486,8 @@ int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc) { int n = ONIGENC_PRECISE_MBC_ENC_LEN(enc, (UChar*)p, (UChar*)e); - if (MBCLEN_CHARFOUND(n)) + n = MBCLEN_CHARFOUND(n); + if (0 < n && n <= e-p) return n; else return 1; |