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 | 3c4ad5062d65fbe491dfc1df680a540feacadcda (patch) | |
tree | e864355f8eed303d9ca9c5fb7b3138fb19ed9c55 /ext/tcltklib | |
parent | 429a9b628938c094362c04acd3ecf8a75e276e36 (diff) | |
download | ruby-3c4ad5062d65fbe491dfc1df680a540feacadcda.tar.gz ruby-3c4ad5062d65fbe491dfc1df680a540feacadcda.tar.xz ruby-3c4ad5062d65fbe491dfc1df680a540feacadcda.zip |
* ext/tk/lib/tcltklib : bug fix
* ext/tk/lib/tk : bug fix and add Tcl/Tk extension support libraries
git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@6559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tcltklib')
-rw-r--r-- | ext/tcltklib/MANIFEST | 1 | ||||
-rw-r--r-- | ext/tcltklib/extconf.rb | 10 | ||||
-rw-r--r-- | ext/tcltklib/tcltklib.c | 12 |
3 files changed, 21 insertions, 2 deletions
diff --git a/ext/tcltklib/MANIFEST b/ext/tcltklib/MANIFEST index e408dc3ee..92a6ed642 100644 --- a/ext/tcltklib/MANIFEST +++ b/ext/tcltklib/MANIFEST @@ -1,5 +1,6 @@ MANIFEST README.1st +README.ActiveTcl README.euc MANUAL.euc MANUAL.eng diff --git a/ext/tcltklib/extconf.rb b/ext/tcltklib/extconf.rb index 83b4a2ac3..ac48812d7 100644 --- a/ext/tcltklib/extconf.rb +++ b/ext/tcltklib/extconf.rb @@ -5,6 +5,12 @@ require 'mkmf' is_win32 = (/mswin32|mingw|cygwin|bccwin32/ =~ RUBY_PLATFORM) is_macosx = (/darwin/ =~ RUBY_PLATFORM) +mac_need_framework = + is_macosx && + enable_config("mac-tcltk-framework", false) && + FileTest.directory?("/Library/Frameworks/Tcl.framework/") && + FileTest.directory?("/Library/Frameworks/Tk.framework/") + unless is_win32 have_library("nsl", "t_open") have_library("socket", "socket") @@ -210,7 +216,7 @@ EOF end end -if is_macosx || +if mac_need_framework || (have_header("tcl.h") && have_header("tk.h") && (is_win32 || find_library("X11", "XOpenDisplay", "/usr/X11/lib", "/usr/lib/X11", "/usr/X11R6/lib", "/usr/openwin/lib")) && @@ -219,7 +225,7 @@ if is_macosx || $CPPFLAGS += ' -DUSE_TCL_STUBS -DUSE_TK_STUBS' if stubs $CPPFLAGS += ' -D_WIN32' if /cygwin/ =~ RUBY_PLATFORM - if is_macosx + if mac_need_framework $CPPFLAGS += ' -I/Library/Frameworks/Tcl.framework/headers -I/Library/Frameworks/Tk.framework/Headers' $LDFLAGS += ' -framework Tk -framework Tcl' end diff --git a/ext/tcltklib/tcltklib.c b/ext/tcltklib/tcltklib.c index cb3826ba9..c68fe661e 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 { |