[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:1860] meadow set-match-data
- X-ml-count: 1860
- Subject: [MD:1860] meadow set-match-data
- From: Kenichi Handa <handa@xxxxxxxxx>
- Date: Mon, 30 Oct 2000 13:14:56 +0900 (JST)
> From: ABE Yasushi (阿部 靖司) <yasushi@xxxxxxxxx> さん曰く
> Subject: meadow set-match-data
> Message-ID: <sa64s1zghzq.wl@xxxxxxxxxxxxxxxx>
> Date: Fri, 27 Oct 2000 11:01:13 +0900
> あべ> ちょっと昨日、Meadowで遊んでいたとき、うっかり
> あべ> (set-match-data '(1 2 3))
> あべ> みたいにしてしまいました。すると Abort Dialog とか出てきてMeadowが死
> あべ> んでしまいました。
バグ報告ありがとうございます。これは随分古いバグですねぇ。
set-match-data の引数はmatch-data が返すものだから誰も気がつ
かなかったんでしょう。以下で直ると思います。
−− けんちゃん@ETL
handa@xxxxxxxxx
* search.c (Fset_match_data): Be sure to make search_regs always
sane.
*** search.c.~1.148.~ Mon Oct 30 11:46:15 2000
--- search.c Mon Oct 30 13:05:46 2000
***************
*** 2746,2751 ****
--- 2746,2754 ----
length * sizeof (regoff_t));
}
+ for (i = search_regs.num_regs; i < length; i++)
+ search_regs.start[i] = -1;
+
search_regs.num_regs = length;
}
}
***************
*** 2760,2765 ****
--- 2763,2770 ----
}
else
{
+ int from;
+
if (MARKERP (marker))
{
if (XMARKER (marker)->buffer == 0)
***************
*** 2769,2775 ****
}
CHECK_NUMBER_COERCE_MARKER (marker, 0);
! search_regs.start[i] = XINT (marker);
list = Fcdr (list);
marker = Fcar (list);
--- 2774,2780 ----
}
CHECK_NUMBER_COERCE_MARKER (marker, 0);
! from = XINT (marker);
list = Fcdr (list);
marker = Fcar (list);
***************
*** 2777,2782 ****
--- 2782,2788 ----
XSETFASTINT (marker, 0);
CHECK_NUMBER_COERCE_MARKER (marker, 0);
+ search_regs.start[i] = from;
search_regs.end[i] = XINT (marker);
}
list = Fcdr (list);