ruby-changes:2939
From: ko1@a...
Date: 21 Dec 2007 20:09:30 +0900
Subject: [ruby-changes:2939] nobu - Ruby:r14430 (trunk): * string.c (rb_str_succ): retry increasing until valid char is found.
nobu 2007-12-21 20:09:19 +0900 (Fri, 21 Dec 2007)
New Revision: 14430
Modified files:
trunk/ChangeLog
trunk/string.c
Log:
* string.c (rb_str_succ): retry increasing until valid char is found.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/string.c?r1=14430&r2=14429
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14430&r2=14429
Index: ChangeLog
===================================================================
--- ChangeLog (revision 14429)
+++ ChangeLog (revision 14430)
@@ -1,3 +1,7 @@
+Fri Dec 21 20:09:18 2007 Nobuyoshi Nakada <nobu@r...>
+
+ * string.c (rb_str_succ): retry increasing until valid char is found.
+
Fri Dec 21 20:00:02 2007 Nobuyoshi Nakada <nobu@r...>
* encoding.c (rb_enc_replicate): now creates first class encoding.
Index: string.c
===================================================================
--- string.c (revision 14429)
+++ string.c (revision 14430)
@@ -1872,9 +1872,9 @@
c = '\001';
s = e;
while ((s = rb_enc_prev_char(sbeg, s, enc)) != 0) {
+ int limit = 256;
if (cc == 0) cc = rb_enc_codepoint(s, e, enc);
- cc += 1;
- l = rb_enc_mbcput(cc, carry, enc);
+ while ((l = rb_enc_mbcput(++cc, carry, enc)) < 0 && --limit);
if (l > 0) {
if (l == (o = e - s)) goto overlay;
n = s - sbeg;
@@ -4538,7 +4538,7 @@
if (p[len-1] == newline &&
(rslen <= 1 ||
memcmp(RSTRING_PTR(rs), pp, rslen) == 0)) {
- if (ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc,p,pp) != (const UChar*)pp)
+ if (ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, (UChar *)p, (UChar *)pp) != (const UChar*)pp)
return Qnil;
rb_str_modify(str);
STR_SET_LEN(str, RSTRING_LEN(str) - rslen);
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml