From: nobu.nakada@... Date: 2003-10-14T19:37:23+09:00 Subject: [ruby-list:38556] Re: exit status on exit! なかだです。 At Mon, 13 Oct 2003 20:36:55 +0900, Yukihiro Matsumoto wrote: > |> |ANSI-Cかどうかわかんないけど、VMSは確かEXIT_SUCCESSは1で、 > |> |EXIT_FAILUREは0です。という意味でもEXIT_FAILUREにすべきか。 > |> > |> パッチ歓迎。 > | > |こんなとこ? > > あとは、exit_bangも置き換えないといけませんけどね。取り込み > ます。 常にEXIT_SUCCESSで終了してるようだったので直してしまいましたが、 ひょっとしてruby_run()のデフォルト値もEXIT_SUCCESSにすべきでしょ うか。 Index: ChangeLog =================================================================== RCS file: /cvs/ruby/src/ruby/ChangeLog,v retrieving revision 1.2314 diff -u -2 -p -r1.2314 ChangeLog --- ChangeLog 14 Oct 2003 10:09:39 -0000 1.2314 +++ ChangeLog 14 Oct 2003 10:36:11 -0000 @@ -53,5 +53,5 @@ Mon Oct 13 20:49:51 2003 Yukihiro Matsu * eval.c: use EXIT_SUCCESS and EXIT_FAILURE for exit values. - * process.c: ditto. [ruby-dev:38521] + * process.c: ditto. [ruby-list:38521] Mon Oct 13 19:51:02 2003 Koji Arai Index: eval.c =================================================================== RCS file: /cvs/ruby/src/ruby/eval.c,v retrieving revision 1.564 diff -u -2 -p -r1.564 eval.c --- eval.c 14 Oct 2003 10:09:39 -0000 1.564 +++ eval.c 14 Oct 2003 10:29:16 -0000 @@ -1389,9 +1389,14 @@ ruby_run() { int state; - static int ex; + static int ex = EXIT_SUCCESS; if (ruby_nerrs > 0) exit(ruby_nerrs); state = ruby_exec(); - if (state && !ex) ex = state; + if (state && ex == EXIT_SUCCESS) { +#if EXIT_SUCCESS + if (state == EXIT_SUCCESS) state = EXIT_FAILURE; +#endif + ex = state; + } ruby_stop(ex); } -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦