[#38470] ruby-dev summary 21403-21530 (draft) — Minero Aoki <aamine@...>

青木です。

25 messages 2003/10/07
[#38475] Re: ruby-dev summary 21403-21530 (draft) — maili31s@... (SugHimsi==SUGIHARA Hiroshi) 2003/10/07

すぎむし。

[#38480] Re: ruby-dev summary 21403-21530 (draft) — Minero Aoki <aamine@...> 2003/10/08

青木です。

[#38481] marshal_dump (was Re: ) — m_seki@... 2003/10/08

[#38484] Re: marshal_dump (was Re: ) — matz@... (Yukihiro Matsumoto) 2003/10/09

まつもと ゆきひろです

[#38486] Re: marshal_dump (was Re: ) — Masatoshi Seki <m_seki@...> 2003/10/09

咳といいます

[#38489] exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to>

<http://www.unixuser.org/~ysjj/diary/?200310a&to=200310082#200310082>

29 messages 2003/10/09
[#38490] Re: exit status on exit! — Koji Arai <JCA02266@...> 2003/10/09

新井です。

[#38503] Re: exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to> 2003/10/10

In Message-Id: <20031010.082218.74733862.JCA02266@nifty.ne.jp>

[#38505] Re: exit status on exit! — Koji Arai <JCA02266@...> 2003/10/10

新井です。

[#38507] Re: exit status on exit! — matz@... (Yukihiro Matsumoto) 2003/10/11

まつもと ゆきひろです

[#38514] Re: exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to> 2003/10/11

In Message-Id: <1065883639.405037.23137.nullmailer@picachu.netlab.jp>

[#38515] Re: exit status on exit! — WATANABE Hirofumi <eban@...> 2003/10/11

わたなべです。

[ruby-list:38674] Re: Ruby/Tkの終了時の挙動

From: Hidetoshi NAGAI <nagai@...>
Date: 2003-10-26 07:27:11 UTC
List: ruby-list #38674
永井@知能.九工大です.

From: Shigeaki Kinoshita <QZT05560@nifty.ne.jp>
Subject: [ruby-list:38673] Re: Ruby/Tkの終了時の挙動
Date: Sun, 26 Oct 2003 13:05:27 +0900
Message-ID: <20031026124552.4C94.QZT05560@nifty.ne.jp>
> 『Rubyアプリケーションプログラム』を読んで勉強しています。

お読みいただき,ありがとうございます.

> > root widget を破壊するには例えば TkRoot.new.destroy 
> > ですが,この場合にやりたいことにイメージとして近いのは
> > Tk.exit (実体は Tk 上での 'destry .' の実行) でしょうね.
> proc{exit} を proc{TkRoot.new.destroy} と proc{Tk.exit} の
> それぞれに変更して試してみました。
> 結果、mswin版、cygwin版どちらも正常終了するようになりました。

そうですか.それは良かったです.

では,ちょっとお願いがあるのですが,
次の修正を ext/tcltklib/tcltklib.c の ip_ruby() 関数に
適用した上で proc{exit} の形式を試してみていただけますか.
予想が正しければ,この修正で proc{exit} でも
正常終了するのではないかと思います.
テストがうまくいったなら,修正を取り込むようにします.

--- tcltklib.c.orig	2003-07-30 14:38:21.000000000 +0900
+++ tcltklib.c	2003-10-26 16:24:29.000000000 +0900
@@ -590,7 +590,8 @@
     rb_trap_immediate = 0;
     res = rb_rescue2(rb_eval_string, (VALUE)arg, 
                      ip_eval_rescue, (VALUE)&failed,
-                     rb_eStandardError, rb_eScriptError, (VALUE)0);
+                     rb_eStandardError, rb_eScriptError, rb_eSystemExit, 
+		     (VALUE)0);
     rb_trap_immediate = old_trapflg;
 
     Tcl_ResetResult(interp);
@@ -601,6 +602,9 @@
 	    return TCL_BREAK;
 	} else if (eclass == eTkCallbackContinue) {
 	    return TCL_CONTINUE;
+	} else if (eclass == rb_eSystemExit) {
+	    Tcl_Eval(interp, "destroy .");
+	    rb_raise(rb_eSystemExit, StringValuePtr(failed));
 	} else {
 	    return TCL_ERROR;
 	}

-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai@ai.kyutech.ac.jp

In This Thread