[ruby-list:543] Re: /^$/ doesn't match null line ?
From:
matz@... (Yukihiro Matsumoto)
Date:
1996-09-19 10:42:22 UTC
List:
ruby-list #543
In message "[ruby-list:537] Re: /^$/ doesn't match null line ?"
on 96/09/19, Yukihiro Matsumoto <matz@caelum.co.jp> writes:
||perl -ne 'print "null line\n" if /^$/' hoge
||
||とすると、空行でnull lineがプリントされますが、
||rubyで同じことをやるとすべての行にマッチしてしまいます。
|
|今調べましたところbaseにしているemacsのregxpルーチンの
|misfeatureであることが分かりました.
|
| (string-match "^$" "aaa\n")
| => 4
|
|がマッチしてしまいます.早急に対策を立てますが,とりあえず
良く調べてみると
"aaa\n"
の"\n"と文字列の末尾の間の /^$/ にマッチしていたようです.確
かにそういう見方もできますね.しかし,それでは都合が悪いので,
仕様を変更して文字列末尾の /^$/ にマッチしないようにしました.
以下のパッチで直ります.多分,正常に動作すると思うのですが,
問題があれば教えてください.
まつもと ゆきひろ /:|)
--- regex.c.orig Thu Sep 19 19:36:28 1996
+++ regex.c Thu Sep 19 19:22:51 1996
@@ -1803,5 +1803,5 @@
if (range >= 0 && startpos == size
- && fastmap && pbufp->can_be_null == 0)
+ && fastmap && pbufp->can_be_null != 1)
return -1;