diff options
author | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-01 09:38:48 +0000 |
---|---|---|
committer | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-01 09:38:48 +0000 |
commit | ffcedd79505ea2e99f859c7cea2fb2221c948d4c (patch) | |
tree | 02232516faf0e1959ecb5d5b7aca25a52f9f87ca /ext/tcltklib/tcltklib.c | |
parent | 73cf1d02bac2dbdd5d7f673a33d81444a00c865e (diff) | |
download | ruby-ffcedd79505ea2e99f859c7cea2fb2221c948d4c.tar.gz |
* ext/tk/lib/tcltklib : bug fix
* ext/tk/lib/tk : bug fix and add Tcl/Tk extension support libraries
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tcltklib/tcltklib.c')
-rw-r--r-- | ext/tcltklib/tcltklib.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ext/tcltklib/tcltklib.c b/ext/tcltklib/tcltklib.c index cb3826ba9f..c68fe661e9 100644 --- a/ext/tcltklib/tcltklib.c +++ b/ext/tcltklib/tcltklib.c @@ -1201,12 +1201,15 @@ ip_ruby_eval(clientData, interp, argc, argv) rb_thread_critical = thr_crit_bup; if (eclass == eTkCallbackReturn) { + ip_set_exc_message(interp, res); return TCL_RETURN; } else if (eclass == eTkCallbackBreak) { + ip_set_exc_message(interp, res); return TCL_BREAK; } else if (eclass == eTkCallbackContinue) { + ip_set_exc_message(interp, res); return TCL_CONTINUE; } else if (eclass == rb_eSystemExit) { @@ -1239,12 +1242,15 @@ ip_ruby_eval(clientData, interp, argc, argv) } if (SYM2ID(reason) == ID_return) { + ip_set_exc_message(interp, res); return TCL_RETURN; } else if (SYM2ID(reason) == ID_break) { + ip_set_exc_message(interp, res); return TCL_BREAK; } else if (SYM2ID(reason) == ID_next) { + ip_set_exc_message(interp, res); return TCL_CONTINUE; } else { @@ -1572,12 +1578,15 @@ ip_ruby_cmd(clientData, interp, argc, argv) rb_thread_critical = thr_crit_bup; if (eclass == eTkCallbackReturn) { + ip_set_exc_message(interp, res); return TCL_RETURN; } else if (eclass == eTkCallbackBreak) { + ip_set_exc_message(interp, res); return TCL_BREAK; } else if (eclass == eTkCallbackContinue) { + ip_set_exc_message(interp, res); return TCL_CONTINUE; } else if (eclass == rb_eSystemExit) { @@ -1609,12 +1618,15 @@ ip_ruby_cmd(clientData, interp, argc, argv) } if (SYM2ID(reason) == ID_return) { + ip_set_exc_message(interp, res); return TCL_RETURN; } else if (SYM2ID(reason) == ID_break) { + ip_set_exc_message(interp, res); return TCL_BREAK; } else if (SYM2ID(reason) == ID_next) { + ip_set_exc_message(interp, res); return TCL_CONTINUE; } else { |