From ed37bfcc9d4306e47f4c73e0eeca202cb1e00d9d Mon Sep 17 00:00:00 2001 From: naruse Date: Fri, 5 Jul 2013 00:54:11 +0000 Subject: broken utf-8 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- regenc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'regenc.c') diff --git a/regenc.c b/regenc.c index 288eac433d..fc039154b4 100644 --- a/regenc.c +++ b/regenc.c @@ -55,10 +55,12 @@ extern int onigenc_mbclen_approximate(const OnigUChar* p,const OnigUChar* e, struct OnigEncodingTypeST* enc) { int ret = ONIGENC_PRECISE_MBC_ENC_LEN(enc,p,e); - if (ONIGENC_MBCLEN_CHARFOUND_P(ret)) - return ONIGENC_MBCLEN_CHARFOUND_LEN(ret); - else if (ONIGENC_MBCLEN_NEEDMORE_P(ret)) + if (ONIGENC_MBCLEN_NEEDMORE_P(ret)) return (int)(e-p)+ONIGENC_MBCLEN_NEEDMORE_LEN(ret); + else if (ONIGENC_MBCLEN_INVALID_P(ret)) + return (int)(e-p)+ONIGENC_MBCLEN_INVALID_LEN(ret); + else if (ONIGENC_MBCLEN_CHARFOUND_P(ret)) + return ONIGENC_MBCLEN_CHARFOUND_LEN(ret); return 1; } -- cgit v1.2.3