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