From 41d41fbdb9e2448404865310c295dd666ce60d00 Mon Sep 17 00:00:00 2001 From: nagai Date: Thu, 28 Jul 2005 09:14:59 +0000 Subject: * ext/tk/stubs.c: When --enable-tcltk-stubs, the initialize routine creates a Tcl/Tk interpreter and deletes it. However, init cost of Tk's MainWindow is not so small. And that makes it impossible to use libraries written with Tcl functions only on an environment without a graphical display. This changes support delaying initalization of Tk_Stubs until the script needs Tk. * ext/tk/stubs.h: New file. Define prototypes and return codes of functions on stubs.c. * ext/tk/tcltklib.c: Support delaying initalization of Tk_Stubs until the script needs Tk. * ext/tk/tcltklib.c: Show friendly error messages for errors on initialization. * ext/tk/tcltklib.c: Avoid SEGV on ip_finalize() when ruby is exiting and $DEBUG is true. (Not fix. If you know the reason of why, please fix it.) * ext/tk/tkutil/tkutil.c (ary2list, ary2list2): bug fix on handling of encoding. * ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string and bg_eval_string don't work propery. * ext/tk/lib/tk.rb: Forget extending Tk::Encoding module to Tk. * ext/tk/lib/tk/variable.rb: TkVarAccess fails to initialize the object for an element of a Tcl's array variable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/tk/lib/multi-tk.rb | 4 ++-- ext/tk/lib/tk.rb | 4 +++- ext/tk/lib/tk/variable.rb | 11 ++++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) (limited to 'ext/tk/lib') diff --git a/ext/tk/lib/multi-tk.rb b/ext/tk/lib/multi-tk.rb index 8ef3aa62bf..c82fa8f4e3 100644 --- a/ext/tk/lib/multi-tk.rb +++ b/ext/tk/lib/multi-tk.rb @@ -1579,7 +1579,7 @@ class MultiTkIp proc{|safe| $SAFE=safe if $SAFE < safe Kernel.eval(cmd, *eval_args) - }, safe_level) + }) end alias eval_str eval_string @@ -1593,7 +1593,7 @@ class MultiTkIp proc{|safe| $SAFE=safe if $SAFE < safe Kernel.eval(cmd, *eval_args) - }, safe_level) + }) } end alias background_eval_string bg_eval_string diff --git a/ext/tk/lib/tk.rb b/ext/tk/lib/tk.rb index 174d34ceaa..37f311c6f2 100644 --- a/ext/tk/lib/tk.rb +++ b/ext/tk/lib/tk.rb @@ -2325,6 +2325,8 @@ else end alias encoding_convert_to encoding_convertto end + + extend Encoding end end @@ -4199,7 +4201,7 @@ end #Tk.freeze module Tk - RELEASE_DATE = '2005-07-25'.freeze + RELEASE_DATE = '2005-07-28'.freeze autoload :AUTO_PATH, 'tk/variable' autoload :TCL_PACKAGE_PATH, 'tk/variable' diff --git a/ext/tk/lib/tk/variable.rb b/ext/tk/lib/tk/variable.rb index 4cf2eae8ed..33cf603a92 100644 --- a/ext/tk/lib/tk/variable.rb +++ b/ext/tk/lib/tk/variable.rb @@ -1531,7 +1531,16 @@ class TkVarAccess e + if @id =~ /^(.+)\([^()]+\)$/ + # is an element --> varname == $1 + INTERP._invoke_without_enc('global', $1) + else + fail e + end + end if val if val.kind_of?(Hash) -- cgit v1.2.3