ruby-changes:2343
From: ko1@a...
Date: 8 Nov 2007 07:23:26 +0900
Subject: [ruby-changes:2343] davidflanagan - Ruby:r13834 (trunk): * string.c (tr_setup_table, tr_trans): fix test failures in test/ruby/test_string.rb
davidflanagan 2007-11-08 07:07:13 +0900 (Thu, 08 Nov 2007)
New Revision: 13834
Modified files:
trunk/ChangeLog
trunk/string.c
Log:
* string.c (tr_setup_table, tr_trans): fix test failures in test/ruby/test_string.rb
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/string.c?r1=13834&r2=13833
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13834&r2=13833
Index: ChangeLog
===================================================================
--- ChangeLog (revision 13833)
+++ ChangeLog (revision 13834)
@@ -1,3 +1,7 @@
+Thu Nov 8 07:04:31 UTC 2007 David Flanagan <davidflanagan@r...>
+ * string.c (tr_setup_table, tr_trans): fix test failures
+ in test/ruby/test_string.rb
+
Wed Nov 7 15:07:51 2007 Nobuyoshi Nakada <nobu@r...>
* enum.c (enum_each_with_index): make different arrays at each
@@ -3,5 +7,5 @@
iteration. [ruby-dev:32181]
-Tue Nov 7 05:17:24 2007 David Flanagan <davidflanagan@r...>
+Wed Nov 7 05:17:24 2007 David Flanagan <davidflanagan@r...>
* eval.c: fix typo in invoke_method documentation
Index: string.c
===================================================================
--- string.c (revision 13833)
+++ string.c (revision 13834)
@@ -3450,11 +3450,11 @@
tlen = rb_enc_codelen(c, enc);
modify = 1;
}
+ else {
+ save = c = last;
+ modify = 1;
+ }
}
- else if (cflag) {
- save = c = last;
- modify = 1;
- }
else {
save = -1;
}
@@ -3482,11 +3482,11 @@
*s = c;
modify = 1;
}
+ else {
+ *s = last;
+ modify = 1;
+ }
}
- else if (cflag) {
- *s = last;
- modify = 1;
- }
s++;
}
}
@@ -3513,11 +3513,11 @@
tlen = rb_enc_codelen(c, enc);
modify = 1;
}
+ else {
+ c = last;
+ modify = 1;
+ }
}
- else if (cflag) {
- c = last;
- modify = 1;
- }
while (t - buf + tlen >= max) {
offset = t - buf;
max *= 2;
@@ -3585,7 +3585,7 @@
}
static void
-tr_setup_table(VALUE str, char stable[256],
+tr_setup_table(VALUE str, char stable[256], int first,
VALUE *tablep, VALUE *ctablep, rb_encoding *enc)
{
char buf[256];
@@ -3601,8 +3601,10 @@
cflag = 1;
tr.p++;
}
- for (i=0; i<256; i++) {
- stable[i] = 1;
+ if (first) {
+ for (i=0; i<256; i++) {
+ stable[i] = 1;
+ }
}
for (i=0; i<256; i++) {
buf[i] = cflag;
@@ -3680,7 +3682,7 @@
StringValue(s);
enc = rb_enc_check(str, s);
- tr_setup_table(s, squeez, &del, &nodel, enc);
+ tr_setup_table(s, squeez, i==0, &del, &nodel, enc);
}
rb_str_modify(str);
@@ -3758,7 +3760,7 @@
StringValue(s);
enc = rb_enc_check(str, s);
- tr_setup_table(s, squeez, &del, &nodel, enc);
+ tr_setup_table(s, squeez, i==0, &del, &nodel, enc);
}
}
@@ -3883,7 +3885,7 @@
StringValue(s);
enc = rb_enc_check(str, s);
- tr_setup_table(s, table, &del, &nodel, enc);
+ tr_setup_table(s, table,i==0, &del, &nodel, enc);
}
s = RSTRING_PTR(str);
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml