summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/tk/lib/tk.rb22
1 files changed, 19 insertions, 3 deletions
diff --git a/ext/tk/lib/tk.rb b/ext/tk/lib/tk.rb
index 47be8fd974..217c76f565 100644
--- a/ext/tk/lib/tk.rb
+++ b/ext/tk/lib/tk.rb
@@ -665,6 +665,10 @@ module TkPackage
include TkCore
extend TkPackage
+ def add_path(path)
+ Tk::AUTO_PATH.value = Tk::AUTO_PATH.to_a << path
+ end
+
def forget(package)
tk_call('package', 'forget', package)
nil
@@ -726,9 +730,6 @@ module Tk
TK_LIBRARY = INTERP._invoke("set", "tk_library")
LIBRARY = INTERP._invoke("info", "library")
- TCL_PACKAGE_PATH = INTERP._invoke("set", "tcl_pkgPath")
- AUTO_PATH = tk_split_simplelist(INTERP._invoke("set", "auto_path"))
-
PLATFORM = Hash[*tk_split_simplelist(INTERP._eval('array get tcl_platform'))]
JAPANIZED_TK = (INTERP._invoke("info", "commands", "kanji") != "")
@@ -1379,6 +1380,21 @@ class TkVarAccess<TkVariable
end
end
+module Tk
+ begin
+ auto_path = INTERP._invoke('set', 'auto_path')
+ rescue
+ begin
+ auto_path = INTERP._invoke('set', 'env(TCLLIBPATH)')
+ rescue
+ auto_path = Tk::LIBRARY
+ end
+ end
+ AUTO_PATH = TkVarAccess.new('auto_path', auto_path)
+
+ TCL_PACKAGE_PATH = TkVarAccess.new('tcl_pkgPath')
+end
+
module TkSelection
include Tk
extend Tk