diff options
Diffstat (limited to 'ext/tk/lib')
-rw-r--r-- | ext/tk/lib/multi-tk.rb | 4 | ||||
-rw-r--r-- | ext/tk/lib/tk.rb | 4 | ||||
-rw-r--r-- | ext/tk/lib/tk/variable.rb | 11 |
3 files changed, 15 insertions, 4 deletions
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<TkVariable @element_type = Hash.new{|k,v| var.default_value_type } # teach Tk-ip that @id is global var - INTERP._invoke_without_enc('global', @id) + begin + INTERP._invoke_without_enc('global', @id) + rescue => 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) |