ruby-changes:2653
From: ko1@a...
Date: 9 Dec 2007 04:14:11 +0900
Subject: [ruby-changes:2653] akr - Ruby:r14144 (trunk): * encoding.c (rb_enc_precise_mbclen): return needmore if underlying
akr 2007-12-09 04:10:58 +0900 (Sun, 09 Dec 2007) New Revision: 14144 Modified files: trunk/ChangeLog trunk/encoding.c Log: * encoding.c (rb_enc_precise_mbclen): return needmore if underlying implementation returns a length longer than e-p. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14144&r2=14143 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/encoding.c?r1=14144&r2=14143 Index: encoding.c =================================================================== --- encoding.c (revision 14143) +++ encoding.c (revision 14144) @@ -496,9 +496,13 @@ int rb_enc_precise_mbclen(const char *p, const char *e, rb_encoding *enc) { + int n; if (e <= p) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(1); - return ONIGENC_PRECISE_MBC_ENC_LEN(enc, (UChar*)p, (UChar*)e); + n = ONIGENC_PRECISE_MBC_ENC_LEN(enc, (UChar*)p, (UChar*)e); + if (e-p < n) + return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(n-(e-p)); + return n; } int rb_enc_get_ascii(const char *p, const char *e, rb_encoding *enc) Index: ChangeLog =================================================================== --- ChangeLog (revision 14143) +++ ChangeLog (revision 14144) @@ -1,7 +1,9 @@ -Sun Dec 9 03:29:02 2007 Tanaka Akira <akr@f...> +Sun Dec 9 04:01:28 2007 Tanaka Akira <akr@f...> * encoding.c (rb_enc_mbclen): return 1 if underlying implementation returns a length longer than e-p. + (rb_enc_precise_mbclen): return needmore if underlying + implementation returns a length longer than e-p. Sat Dec 8 17:59:40 2007 Tanaka Akira <akr@f...> -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml