まつもと ゆきひろです
In message "[ruby-list:6453] Re: gsub"
on 98/02/17, Yukihiro Matsumoto <matz / netlab.co.jp> writes:
|まつもと ゆきひろです
||"foo\nbar\nbaz\n".gsub!(/^/, '#')
||=> "#foo\n#bar\n#baz\n"
||
||となるものかと思っていたのですが、どうもそうならないのですが、そういう
||もんなんでしょうか?
|
|バグですね.しまったなあ.
こんなパッチでどうでしょう?
--- string.c 1998/02/10 08:44:05 1.1.1.2.2.5
+++ string.c 1998/02/17 01:47:09
@@ -899,3 +899,3 @@
str_cat(result, RSTRING(repl)->ptr, RSTRING(repl)->len);
- if (END(0) == offset) {
+ if (BEG(0) == END(0)) {
/*
@@ -904,3 +904,3 @@
*/
- if (RSTRING(str)->len > 0) {
+ if (RSTRING(str)->len > END(0)) {
str_cat(result, RSTRING(str)->ptr+END(0), 1);
--- regex.c 1998/01/21 08:07:46 1.1.1.2.2.1
+++ regex.c 1998/02/17 01:47:09
@@ -2420,3 +2420,3 @@
&& (bufp->can_be_null == 0 ||
- (bufp->can_be_null == 2 && size > 0
+ (bufp->can_be_null && size > 0
&& string[startpos-1] == '\n')))