[#14922] alias $gvar — Koji Arai <JCA02266@...>

新井です。

19 messages 2001/10/14

[#15006] Re: eval.c (rb_stack_check): prohibit recursive raising error — WATANABE Hirofumi <eban@...>

わたなべです。

13 messages 2001/10/26
[#15008] Re: eval.c (rb_stack_check): prohibit recursive raising error — Shugo Maeda <shugo@...> 2001/10/26

前田です。

[ruby-dev:14861] Re: str[re, -1] raises NoMemoryError

From: nobu.nakada@...
Date: 2001-10-03 05:10:43 UTC
List: ruby-dev #14861
なかだです。

At Wed, 3 Oct 2001 13:10:19 +0900,
Tanaka Akira <akr@m17n.org> wrote:
> $+ というのは想像もしませんでした。が、-2 などが指定できることを考える
> と $+ は不適切だと思います。

 3つとも試してみましたが、これが一番面倒だし。

> 残り二つはの可能性は想定しましたが、どちらかというと
> str[re, i] と re.match(str)[i] が等価というのが好みですね。

 これの手間はnilを返すのとそう大差はありません。あ、definedの
方は不要かな?

> ちなみに、最初、i の役割は文字列の途中からマッチを始めるものかと想像し
> ました。仮引数が offset なんていう名前だし。

 同じく。


Index: re.c
===================================================================
RCS file: /cvs/ruby/src/ruby/re.c,v
retrieving revision 1.47
diff -u -2 -p -r1.47 re.c
--- re.c	2001/10/02 04:31:19	1.47
+++ re.c	2001/10/03 05:00:48
@@ -665,4 +665,7 @@ rb_reg_nth_defined(nth, match)
 {
     if (NIL_P(match)) return Qnil;
+    if (nth < 0 && (nth += RMATCH(match)->regs->num_regs) < 0) {
+	return Qfalse;
+    }
     if (nth >= RMATCH(match)->regs->num_regs) {
 	return Qfalse;
@@ -681,4 +684,7 @@ rb_reg_nth_match(nth, match)
 
     if (NIL_P(match)) return Qnil;
+    if (nth < 0 && (nth += RMATCH(match)->regs->num_regs) < 0) {
+	return Qnil;
+    }
     if (nth >= RMATCH(match)->regs->num_regs) {
 	return Qnil;


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread

Prev Next