+Thu Apr 04 22:38:44 2002 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+ * globals_list.tcl:
+ * names.tcl: fix array checking (use array exists).
+ * tkinspect.tcl: merged in support for scripted documents (patch
+ by Steve Landers). Use the winsend package if available.
+
Mon Mar 25 12:05:22 2002 Pat Thoyts <patthoyts@users.sourceforge.net>
* Bug #533899: Found and merged Paul Healy's 1997 p4 patch which adds
- tkinspect, release 5.1.6p7
- (22 Mar 2002)
+ tkinspect, release 5.1.6p8
+ (04 Apr 2002)
Tkinspect is a Tk program browser originally written by Sam Shen and
now updated to work with Tcl/Tk 8+, incr Tcl 3+ and to cope with
<h1><center>What's New?</center></h1>
See the <a href="ChangeLog">ChangeLog</a> for more details.
-
+
+ <h2>Changes in release 5.1.6p8 (04 Apr 2002)</h2>
+
+ <ul>
+ <li>Merged in Paul Healy's p4 patch which provides
+ <i>namespaces</i> and <i>afters</i> windows for examining entire
+ namespaces or the after event timers.</li>
+ <li>Fixed array checking. <i>array size</i> was use instead of
+ <i>array exists</i> in some places which can cause an empty
+ array to be treated as if it is a normal variable.</li>
+ <li>Merged in Steve Landers code for Scripted Document
+ support</li>
+ </ul>
+
+ <h2>Changes in release 5.1.6p7 (22 Mar 2002)</h2>
+
+ <ul>
+ <li>A raft of bugs have been fixed - see the
+ <a href="ChangeLog">ChangeLog</a> for just what.</li>
+ <li>Added a DDE implementation of <i>send</i> for use on
+ Windows.</li>
+ </ul>
+
<h2>Changes in release 5.1.6p6 (14 Mar 2002)</h2>
- The original code plus some patches have been collected together and
+ <p>The original code plus some patches have been collected together and
added to the <a href="http://sourceforge.net/projects/tkcon">tkcon</a>
project as <a href="http://sourceforge.net/">SourceForge</a>. Some
general work has been done to bring tkinspect up to date for use with
- Tcl 8.3 and 8.4 and incr Tcl 3.2.
+ Tcl 8.3 and 8.4 and incr Tcl 3.2.</p>
<h2>Changes in release 5.1.6 (23 June 1995)</h2>
- 5.1.6 has only 2 bug fixes, see the
- <a href="ChangeLog">ChangeLog</a> if you're really interested.
+ <p>5.1.6 has only 2 bug fixes, see the
+ <a href="ChangeLog">ChangeLog</a> if you're really interested.</p>
<h2>Changes in release 5.1.4 (21 June 1995)</h2>
text $self.t -yscroll "$self.sb set" -setgrid 1
pack $self.sb -side right -fill y
pack $self.t -side right -fill both -expand 1
- if {[send $slot(target) array size $slot(variable)] == 0} {
+ if {![send $slot(target) array exists $slot(variable)]} {
set slot(trace_cmd) "send [winfo name .] $self update_scalar"
$self update_scalar "" "" w
set slot(is_array) 0
proc value {target var} {
set tail [namespace tail $var]
- if [send $target [list array size $var]] {
+ if {[send $target [list array exists $var]]} {
return "variable $tail ; # $var is an array\n" ; # dump it out?
}
set cmd [list set $var]
wm withdraw .
-if [file exists @tkinspect_library@/tclIndex] {
+# Find the tkinspect library - support scripted documents (Steve Landers)
+if {[info exists ::scripdoc::self]} {
+ lappend auto_path [file join $::scripdoc::self lib]
+ set tkinspect_library [file join $::scripdoc::self lib tkinspect]
+ lappend auto_path $tkinspect_library
+} elseif [file exists @tkinspect_library@/tclIndex] {
lappend auto_path [set tkinspect_library @tkinspect_library@]
} else {
- lappend auto_path [set tkinspect_library .]
+ lappend auto_path [set tkinspect_library [file dirname [info script]]]
}
-# Emulate the 'send' command using the dde package if available.
+# Use the winsend package if available.
if {[info command send] == {}} {
+ if {![catch {package require winsend}]} {
+ set tkinspect(title) [winsend appname]
+
+ proc send {app args} {
+ eval winsend send [list $app] $args
+ }
+ }
+}
+
+# Emulate the 'send' command using the dde package if available.
+if {[info command send] == {} || [package provide winsend] != {}} {
if {![catch {package require dde}]} {
array set dde [list count 0 topic $tkinspect(title)]
while {[dde services TclEval $dde(topic)] != {}} {
dde servername $dde(topic)
set tkinspect(title) $dde(topic)
unset dde
- proc send {app args} {
- eval dde eval [list $app] $args
+ if {[package provide winsend] != {}} {
+ proc send {app args} {
+ if {[string match {!*} $app]} {
+ eval dde eval [list [string range $app 1 end]] $args
+ } else {
+ eval winsend send [list $app] $args
+ }
+ }
+ } else {
+ proc send {app args} {
+ eval dde eval [list $app] $args
+ }
}
}
}
method fill_interp_menu {} {
set m $self.menu.file.m.interps
catch {$m delete 0 last}
+ set winsend 0
+ if {[package provide winsend] != {}} {
+ set winsend 1
+ foreach interp [winsend interps] {
+ $m add command -label $interp \
+ -command [list $self set_target $interp]
+ }
+ }
if {[package provide dde] != {}} {
foreach service [dde services TclEval {}] {
- $m add command -label [lindex $service 1] \
- -command [list $self set_target [lindex $service 1]]
+ if {$winsend} {
+ set label "[lindex $service 1] (dde)"
+ set app "![lindex $service 1]"
+ } else {
+ set label [lindex $service 1]
+ set app $label
+ }
+ $m add command -label $label \
+ -command [list $self set_target $app]
}
} else {
foreach interp [winfo interps] {
proc version_init {} {
global tkinspect tk_version tk_patchLevel
- set tkinspect(release) 5.1.6p7
- set tkinspect(release_date) "22 Mar 2002"
+ set tkinspect(release) 5.1.6p8
+ set tkinspect(release_date) "04 Apr 2002"
scan $tk_version "%d.%d" major minor
if {$major < 8} {
puts stderr \