[前][次][番号順一覧][スレッド一覧]

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

[前][次][番号順一覧][スレッド一覧]