まつもと ゆきひろです

In message "[ruby-dev:20264] Re: Exception#initialize"
    on 03/05/21, nobu.nakada / nifty.ne.jp <nobu.nakada / nifty.ne.jp> writes:

|rb_sys_fail()で、Errnoにマッピングしてるのにさらにerrnoを指定し
|てるためにエラーになります。

あ、しまった。添付のような修正が好みです。

|Rubyレベルでも自動的にErrnoができるほうがいいか悪いか。

悪いんじゃないかと考えています。

Index: error.c
===================================================================
RCS file: /src/ruby/error.c,v
retrieving revision 1.68
diff -p -u -1 -r1.68 error.c
--- error.c	21 May 2003 08:48:02 -0000	1.68
+++ error.c	21 May 2003 14:04:32 -0000
@@ -729,3 +729,3 @@ rb_sys_fail(mesg)
     int n = errno;
-    VALUE argv[2];
+    VALUE arg;
 
@@ -736,5 +736,4 @@ rb_sys_fail(mesg)
 
-    argv[0] = mesg ? rb_str_new2(mesg) : Qnil;
-    argv[1] = INT2NUM(n);
-    rb_exc_raise(rb_class_new_instance(2, argv, get_syserr(n)));
+    arg = mesg ? rb_str_new2(mesg) : Qnil;
+    rb_exc_raise(rb_class_new_instance(1, &arg, get_syserr(n)));
 }