まつもと ゆきひろです
In message "[ruby-list:1678] Re: ruby-1.0-970110 available"
on 97/01/10, sinara / blade.nagaokaut.ac.jp <sinara / blade.nagaokaut.ac.jp> writes:
|
|原です。
|p "abc\n" =~ /^$/ # ==> 4
|
|となってしまいます。
こんなんでどうでしょう?
--- regex.c~ Wed Jan 8 00:03:48 1997
+++ regex.c Sat Jan 11 04:50:29 1997
@@ -1563 +1563 @@
- if (bufp->can_be_null != 1)
+ if (bufp->can_be_null == 0)
@@ -1757 +1757 @@
- int val;
+ int val, anchor;
@@ -1768 +1768,3 @@
- while (1)
+ anchor = (enum regexpcode)bufp->buffer[0] == begline;
+
+ while (startpos < size)
@@ -1776 +1778 @@
- if (fastmap && startpos < size && bufp->can_be_null != 1)
+ if (fastmap && bufp->can_be_null != 1 && !(anchor && startpos == 0))
@@ -1800,0 +1803,4 @@
+ if (range >= 0 && startpos == size && bufp->can_be_null == 0)
+ {
+ return -1;
+ }
@@ -1813,4 +1819,2 @@
- if (range >= 0 && startpos == size && fastmap) {
- if (bufp->can_be_null == 0)
- return -1;
- }
+ if (anchor && startpos > 0 && startpos < size
+ && string[startpos-1] != '\n') goto advance;