* docs/procs.html:
authorJeff Hobbs <hobbs@users.sourceforge.net>
Thu, 24 Jan 2002 19:44:53 +0000 (19:44 +0000)
committerJeff Hobbs <hobbs@users.sourceforge.net>
Thu, 24 Jan 2002 19:44:53 +0000 (19:44 +0000)
* tkcon.tcl (what): changed to differentiate between 'array' and
'scalar' instead of just returning 'variable'.
(which): called what in uplevel to get scope right.

ChangeLog
docs/procs.html
tkcon.tcl

index 305430cd46c76118236deabddc055c62ee2c62dc..11e044a33d31dc84a77af042312040b928b740b3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2002-01-23  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * docs/procs.html:
+       * tkcon.tcl (what): changed to differentiate between 'array' and
+       'scalar' instead of just returning 'variable'.
+       (which): called what in uplevel to get scope right.
+
 2002-01-22  Jeff Hobbs  <jeffh@ActiveState.com>
 
        * tkcon.tcl (ExpandPathname): use a safer regsub to first unescape
index 23bd641795b261f294c854869d6f999f97701aa6..f55d6d2bf84d56b44d34f4f68a7eb96678ec5739 100755 (executable)
@@ -139,8 +139,8 @@ added when -package is true.
 <DD> The <CODE>what</CODE> command will identify the word given in
 <i>string</i> in the Tcl environment and return a list of types that
 it was recognized as.  Possible types are: alias, procedure, command,
-variable, directory, file, widget, and executable.  Used by procedures
-<CODE>dump</CODE> and <CODE>which</CODE>.
+array variable, scalar variable, directory, file, widget, and executable.
+Used by procedures <CODE>dump</CODE> and <CODE>which</CODE>.
 
 <DT> <B>which</B> <i>command</i>
 <DD> Like the 'which' command of Unix shells, this will tell you if a
index 9b014f4405aef1e1903a7d56a2829584205253d7..f5553bef61fb449417374f6e3d7e5704f56481b6 100755 (executable)
--- a/tkcon.tcl
+++ b/tkcon.tcl
@@ -3640,7 +3640,7 @@ proc observe_var {name el op} {
 ## 
 proc which cmd {
     ## This tries to auto-load a command if not recognized
-    set types [what $cmd 1]
+    set types [uplevel 1 [list what $cmd 1]]
     if {[llength $types]} {
        set out {}
        
@@ -3650,7 +3650,7 @@ proc which cmd {
                procedure       { set res "$cmd: procedure" }
                command         { set res "$cmd: internal command" }
                executable      { lappend out [auto_execok $cmd] }
-               variable        { lappend out "$cmd: variable" }
+               variable        { lappend out "$cmd: $type" }
            }
            if {[info exists res]} {
                global auto_index
@@ -3693,7 +3693,12 @@ proc what {str {autoload 0}} {
        }
     }
     if {[llength [uplevel 1 info vars $str]]} {
-       lappend types "variable"
+       upvar 1 $str var
+       if {[array exists var]} {
+           lappend types array variable
+       } else {
+           lappend types scalar variable
+       }
     }
     if {[file isdirectory $str]} {
        lappend types "directory"