Search functionality for branch diagram

Christoph
2008-04-11
2013-04-17
  • Christoph
    Christoph
    2008-04-11

    Hi *,

    as we have a huge version tree in our project, it always took us a quite long time to search a specific version in the version / branch diagram. So I added a search functionality to TkCVS's log viewer that searches for strings in the log windows. It will create a new button and an entry box below the logs. You can enter a glob-style search pattern in the entry field and click the search button. With every click (or pressing enter), the log viewer jumps from one occurrence of the pattern to the next, highlighting it in red.

    The following special characters are used in the search pattern:

    *      Matches any sequence of characters in string, including a null string.

    ?      Matches any single character in string.

    [chars] Matches any character in the set given by chars. If a sequence of the form x-y appears in chars, then any character between x and y, inclusive, will match.

    \x      Matches the single character x. This provides a way of avoiding the special interpretation of the characters *?[]\ in pattern.

    If you only enter "FOO" (without the ") in the entry box, it searches the exact string "FOO". If you want to search all strings starting with "FOO", you have to put "FOO*". For all strings containing "FOO", you must put "*FOO*".

    This feature requires a change to file "branch_diagram.tcl". As I don't know if you are interested in adding this feature (and if I can make submits to the repository as anonymous), I attach the modified code (based on tkcvs 8.1):

    #
    # Tcl Library for TkCVS
    #

    # This is a major rewrite over the original version. It uses a
    # top down, recursive, branch-at-a-time, latest-revision-first
    # algorithm to layout the graph sensibly.
    # -- Mike Jagdis <jaggy@purplet.demon.co.uk>
    #

    namespace eval ::logcanvas {
      variable instance 0

      proc new {filename how scope} {
        #
        # Creates a new log canvas.
        #
        variable instance
        set my_idx $instance
        incr instance
        global current_tagname
        global module_dir
        variable sys
        variable loc

        if {[catch "image type Modules"]} {
          workdir_images
        }
        if {[catch "image type Workdir"]} {
          modbrowse_images
        }

        namespace eval $my_idx {
          set my_idx [uplevel {concat $my_idx}]
          set how [uplevel {concat $how}]
          set filename [uplevel {concat $filename}]
          set scope [uplevel {concat $scope}]
          #variable cmd_log
          # Global constants scaled by current scaling factor for this instance
          variable curr
          global cvscfg
          global cvsglb
          global tcl_platform
          # User options for info display for this instance
          variable opt
          variable revwho
          variable revdate
          variable revtime
          variable revstate
          variable revbranches
          variable branchrevs
          variable revcomment
          variable revtags
          variable revbtags
          variable revpath
          variable sel_tag
          set sel_tag(A) {}
          set sel_tag(B) {}
          variable sel_rev
          variable revnum_current
          set sel_rev(A) {}
          set sel_rev(B) {}
          variable logcanvas ".logcanvas$my_idx"
          variable search_lastpattern ""
          variable search_elements [list]
          variable search_index 0
          variable search_lastfill ""
          variable search_lastcase 0
          variable search_nocase

          gen_log:log T "ENTER [namespace current]"
          set sys_loc [split $how {,}]
          set sys [lindex $sys_loc 0]
          set loc [lindex $sys_loc 1]

          proc ClearSelection {AorB} {
            variable logcanvas
            variable sel_tag
            variable sel_rev
            #catch {$logcanvas.canvas itemconfigure Sel$AorB -outline black}
            catch {$logcanvas.canvas itemconfigure Sel$AorB -fill gray90}
            $logcanvas.canvas dtag Sel$AorB
            $logcanvas.up.rev${AorB}_rvers configure -text {}
            $logcanvas.up.log${AorB}_rlogfm.rcomment configure -state normal
            $logcanvas.up.log${AorB}_rlogfm.rcomment delete 1.0 end
            $logcanvas.up.log${AorB}_rlogfm.rcomment configure -state disabled
            $logcanvas.up.rev${AorB}_rwho configure -text {}
            $logcanvas.up.rev${AorB}_rdate configure -text {}
            set sel_tag($AorB) {}
            set sel_rev($AorB) {}
            return
          }

          proc SetSelection {AorB tag rev} {
            global cvscfg
            variable logcanvas
            variable revdate
            variable revtime
            variable revwho
            variable revcomment
            variable sel_tag
            variable sel_rev

            ClearSelection $AorB
            set other [expr {$AorB == "A" ? {B} : {A}}]
            if {$rev == $sel_rev($other)} { ClearSelection $other }
            if {! [info exists revcomment($rev)]} {
               set revcomment($rev) "*** empty log message ***"
            }
            if {$tag != {}} {
              $logcanvas.up.rev${AorB}_rvers configure -text $tag
            } else {
              $logcanvas.up.rev${AorB}_rvers configure -text $rev
            }
            if {$rev != {} && [info exists revwho($rev)]} {
              $logcanvas.up.rev${AorB}_rwho configure -text $revwho($rev)
              $logcanvas.up.rev${AorB}_rdate configure -text\               "$revdate($rev) $revtime($rev)"
              $logcanvas.up.log${AorB}_rlogfm.rcomment configure -state normal
              $logcanvas.up.log${AorB}_rlogfm.rcomment insert end $revcomment($rev)
              $logcanvas.up.log${AorB}_rlogfm.rcomment configure -state disabled
            }
            $logcanvas.canvas addtag Sel$AorB withtag rect$rev
            $logcanvas.canvas itemconfigure SelA -fill $cvscfg(colourA)
            $logcanvas.canvas itemconfigure SelB -fill $cvscfg(colourB)
            set sel_tag($AorB) $tag
            set sel_rev($AorB) $rev
            return
          }

          proc RevSelect {AorB} {
            variable logcanvas
            set t [$logcanvas.canvas gettags current]
            SetSelection $AorB \           [string range [lindex $t [lsearch -glob $t {T*}]] 1 end] \           [string range [lindex $t [lsearch -glob $t {R*}]] 1 end]
            return
          }

          proc Unselect {AorB} {
            variable logcanvas
            set t [$logcanvas.canvas gettags current]
            if {$t != {} } {return}
            ClearSelection $AorB
          }

          proc ConfigureButtons {fname} {
            global cvsglb
            variable logcanvas
            variable sys
            variable loc
            variable revnum_current

            switch -- $sys {
              "SVN" {
                # Find out current rev and if it's a directory, if we can
                set kind ""
                set info_cmd [exec::new "svn info \&quot;[file tail $fname]\&quot;"]
                set info_lines [split [$info_cmd\::output] "\n"]
                foreach infoline $info_lines {
                  if {[string match "Node Kind:*" $infoline]} {
                    gen_log:log D "$infoline"
                    set kind [lindex $infoline end]
                  } elseif {[string match "Last Changed Rev:*" $infoline]} {
                    gen_log:log D "$infoline"
                    set revnum_current [lindex $infoline end]
                  }
                }
                if {! [info exists revnum_current]} {
                    gen_log:log E "Warning: couldn't find current revision number!"
                }
                $logcanvas.up.bmodbrowse configure -command {modbrowse_run svn} \               -image Modules_svn
                $logcanvas.up.lfname configure -text "SVN Path"
                $logcanvas.up.rfname delete 0 end
                $logcanvas.up.rfname insert end "$fname"
                $logcanvas.up.rfname configure -state readonly -bg $cvsglb(textbg)
                $logcanvas.log configure \                 -command [namespace code {
                        set rev [$logcanvas.up.revA_rvers cget -text]
                        if {$rev =="" || [file isdirectory $filename]} {
                          svn_log $filename
                        } else {
                          svn_log $revpath($rev) $filename
                        }
                     }]
                if {$kind == "directory"} {
                  $logcanvas.diff configure -state disabled
                  $logcanvas.annotate configure -state disabled
                  $logcanvas.view configure \                  -command [namespace code {
                        set rev [$logcanvas.up.revA_rvers cget -text]
                        if {$rev ==""} { set rev "r$revnum_current" }
                        svn_fileview $rev $revpath($rev) directory
                     }]
                } else {
                  $logcanvas.view configure \                  -command [namespace code {
                        set rev [$logcanvas.up.revA_rvers cget -text]
                        if {$rev ==""} { set rev "r$revnum_current" }
                        svn_fileview $rev $revpath($rev) file
                     }]
                  $logcanvas.diff configure \                 -command [namespace code {
                       set revA [$logcanvas.up.revA_rvers cget -text]
                       set revB [$logcanvas.up.revB_rvers cget -text]
                       set A [string trimleft $revA {r}]
                       set B [string trimleft $revB {r}]
                       # Let's be generous and let either A or B be selected
                       if {$revB == ""} {
                         comparediff_r "$revpath($revA)@$A" "" $logcanvas $filename
                       } elseif {$revA == ""} {
                         comparediff_r "" "$revpath($revB)@$B" $logcanvas $filename
                       } else {
                         comparediff_files $logcanvas "$revpath($revA)@$A" "$revpath($revB)@$B"
                       }
                    }]
                  $logcanvas.annotate configure \                  -command [namespace code {
                       set rev [$logcanvas.up.revA_rvers cget -text]
                       if {$rev == ""} {
                         svn_annotate_r "" $filename
                       } else {
                         svn_annotate_r [string trimleft $rev {r}] $revpath($rev)
                       }
                     }]
                }
                $logcanvas.delta configure \               -command [namespace code {
                     set currentrevpath "$revpath(r$revnum_current)@$revnum_current"
                     set fromrev [$logcanvas.up.revA_rvers cget -text]
                     if {$fromrev == ""} {cvsfail "Please select a revision!" $logcanvas; return}
                     set fromrevpath "$revpath($fromrev)@[string trimleft $fromrev {r}]"
                     set sincerev [$logcanvas.up.revB_rvers cget -text]
                     set fromtag ""
                     if {[info exists revbtags($sincerev)]} {
                       set fromtag [lindex $revbtags($sincerev) 0]
                     }
                     if {$fromtag == ""} {
                       foreach brev [array names revbtags] {
                         set b $revbtags($brev)
                         foreach r $branchrevs($b) {
                           if {$r == $fromrev} {
                             set fromtag $b
                           }
                         }
                       }
                     }
                     if {$sincerev == ""} {
                       svn_merge $logcanvas $fromrevpath "" $currentrevpath $fromtag $filename
                     } else {
                       set sincerevpath "$revpath($sincerev)@[string trimleft $sincerev {r}]"
                       svn_merge $logcanvas $fromrevpath $sincerev $sincerevpath $fromtag $filename
                     }
                   }]
              }
             "CVS" {
               $logcanvas.up.bmodbrowse configure -command {modbrowse_run cvs} \               -image Modules_cvs
               $logcanvas.up.lfname configure -text "RCS file"
               $logcanvas.up.rfname delete 0 end
               $logcanvas.up.rfname insert end "$fname,v"
               $logcanvas.up.rfname configure -state readonly -bg $cvsglb(textbg)
               if {$loc == "rep"} {
                 # Working on repository files, not checked out
                 $logcanvas.view configure \                 -command [namespace code {
                      cvs_fileview_checkout [$logcanvas.up.revA_rvers cget -text] $filename
                    }]
                 $logcanvas.log configure \                   -command [namespace code {
                        cvs_filelog $filename $logcanvas 0
                      }]
                 $logcanvas.annotate configure \                 -command [namespace code {
                       cvs_annotate_r [$logcanvas.up.revA_rvers cget\                    -text] $filename
                    }]
                 $logcanvas.diff configure \                 -command [namespace code {
                       comparediff_sandbox [$logcanvas.up.revA_rvers cget -text] \                      [$logcanvas.up.revB_rvers cget -text] $logcanvas \                      $filename
                    }]
                 $logcanvas.delta configure -state disabled
               } else {
                 # We have a checked-out local file
                 $logcanvas.log configure \                   -command [namespace code {
                        cvs_log $filename
                      }]
                 $logcanvas.view configure \                -command [namespace code {
                      cvs_fileview_update [$logcanvas.up.revA_rvers cget -text] \                   $filename
                   }]
                 $logcanvas.annotate configure \                -command [namespace code {
                     cvs_annotate [$logcanvas.up.revA_rvers cget -text] \                  $filename
                   }]
                 $logcanvas.delta configure \                -command [namespace code {
                     set fromrev [$logcanvas.up.revA_rvers cget -text]
                     set sincerev [$logcanvas.up.revB_rvers cget -text]
                     set fromtag ""
                     set fromrev_root [join [lrange [split $fromrev {.}] 0 end-1] {.}]
                     if {[info exists revbtags($fromrev_root)]} {
                       set fromtag [lindex $revbtags($fromrev_root) 0]
                     } else {
                       # Just a rev number will do
                       set fromtag $fromrev_root
                     }
                     cvs_merge $logcanvas $fromrev $sincerev $fromtag [list $filename]
                    }]
                }
             }
             "RCS" {
               $logcanvas.up.rfname delete 0 end
               $logcanvas.up.rfname insert end "$fname"
               $logcanvas.up.rfname configure -state readonly -bg $cvsglb(textbg)
               $logcanvas.view configure -state disabled
               $logcanvas.annotate configure -state disabled
               $logcanvas.log configure -command [namespace code {rcs_log $filename}]
               $logcanvas.delta configure -state disabled
              }
            }
          }

          proc PopupTags { x y } {
          #
          # Pop up a transient window with a listbox of the tags for a specific\       # revision
          #
            global cvscfg
            variable logcanvas
            variable revtags
            foreach tag [$logcanvas.canvas gettags current] {
              if {[string index $tag 0] == {R}} {
                set rev [string range $tag 1 end]
                break
              }
            }
            set mname "$logcanvas.[join [split $rev {.}] {_}]"
            if {[winfo exists $mname]} {
              # Don't let them hit the button twice
              wm deiconify $mname
              raise $mname
            } else {
              toplevel $mname
              wm title $mname "Tags: $rev"
              wm transient $mname $logcanvas.canvas
              set ntags [llength $revtags($rev)]
              set h [expr {400 / [font metrics $cvscfg(listboxfont)\               -displayof $mname -linespace]}]
              if {$h > $ntags} {
                set h $ntags
              }
              listbox $mname.lbx -font $cvscfg(listboxfont) \             -width 0 -height $h \             -listvar [namespace current]::revtags($rev)
              # Always have a scroll bar because a reload of the log might find
              # more tags and the list might not fit in the window any longer.
              scrollbar $mname.scroll -command "$mname.lbx yview"
              $mname.lbx configure -yscroll "$mname.scroll set"
              pack $mname.scroll -side right -fill y
              pack $mname.lbx -ipadx 10 -ipady 10 -expand y -fill both
              bind $mname.lbx <Button-1> [namespace code "
                    variable revtags
                    set i \[$mname.lbx nearest %y\]
                    SetSelection A \[lindex \$revtags($rev) \$i\] $rev
                    $mname.lbx selection clear 0 end
                    $mname.lbx selection set \$i"]
              bind $mname.lbx <Button-2> [namespace code "
                    variable revtags
                    set i \[$mname.lbx nearest %y\]
                    SetSelection A \[lindex \$revtags($rev) \$i\] $rev
                    $mname.lbx selection clear 0 end
                    $mname.lbx selection set \$i"]
              bind $mname.lbx <Button-3> [namespace code "
                    variable revtags
                    set i \[$mname.lbx nearest %y\]
                    SetSelection B \[lindex \$revtags($rev) \$i\] $rev
                    $mname.lbx selection clear 0 end
                    $mname.lbx selection set \$i"]
              # FIXME: add capability to delete a tag here?
              # We need it to get laid out before we query its geometry.
              update
            }
            # Centre the pop up on the cursor position then adjust so it doesn't
            # run off the edge of the screen (if possible!).
            set w [winfo width $mname]
            set h [winfo height $mname]
            set x [expr {$x - $w/2}]
            set y [expr {$y - $h/2}]
            set sx [expr {[winfo vrootx $mname] + [winfo vrootwidth $mname]}]
            if {[expr {$x + $w}] >= $sx} {
              set x [expr {$sx - $w}]
            }
            if {$x < 0} {
              set x 0
            }
            set sy [expr {[winfo vrooty $mname] + [winfo vrootheight $mname]}]
            if {[expr {$y + $h}] >= $sy} {
              set y [expr {$sy - $h}]
            }
            if {$y < 0} {
              set y 0
            }
            wm geometry $mname +$x+$y
            return
          }

          proc CalcCurrent { revision } {
            variable curr
            variable font_bold
            variable font_bold_h
            variable logcanvas

            #gen_log:log T "ENTER ($revision)"
            set box_width \           [expr {[image width Man] \                  + $curr(padx) \                  + [font measure $font_bold \                      -displayof $logcanvas.canvas {You are}] \                  + $curr(padx,2)}]
            set box_height [image height Man]
            set h [expr {2 * $font_bold_h}]
            if {$h > $box_height} {
              set box_height $h
            }
            incr box_height $curr(pady,2)
            #gen_log:log T "LEAVE"
            return [list $box_width $box_height]
          }

          proc DrawCurrent { x y box_width box_height revision } {
            variable curr
            variable revstate
            variable font_bold
            variable logcanvas
            variable curr_x
            variable curr_y

            #gen_log:log T "ENTER ($x $y $box_width $box_height $revision)"
            set curr_x $x
            set curr_y $y
            # draw the box
            set tx [expr {$x + $box_width}]
            set ty [expr {$y - $box_height}]
            $logcanvas.canvas create rectangle \           $x $y $tx $ty \           -width $curr(width) -fill gray90 -outline red3
            if {[info exists revstate(current)]} {
              if {$revstate(current) == {dead}} {
                $logcanvas.canvas create line \               $x $y $tx $ty -fill red -width $curr(width)
                $logcanvas.canvas create line \               $tx $y $x $ty -fill red -width $curr(width)
              }
            }
            set pad \           [expr {($box_width - [image width Man] - \             [font measure $font_bold -displayof $logcanvas.canvas {You are}]) \             / 3}]
            set ty [expr {$y - [expr {$box_height/2}]}]
            # add the contents
            $logcanvas.canvas create image \           [expr {$x + $pad}] $ty \           -image Man -anchor w
            $logcanvas.canvas create text \           [expr {$x + $box_width - $pad}] $ty \           -text "You are\nhere" -anchor e \           -fill red3 \           -font $font_bold
            #gen_log:log T "LEAVE"
            return
          }

          proc CalcRoot { root_rev } {
            global cvscfg
            variable opt
            variable curr
            variable box_height
            variable font_bold
            variable font_norm
            variable font_norm_h
            variable logcanvas
            variable root_info
            variable revtags
            variable revbtags
            variable tlist

            #gen_log:log T "ENTER ($root_rev)"
            gen_log:log D "CalcRoot ($root_rev)"
            set height $box_height
            set tag_width 0
            set box_width 0
            set tlist($root_rev) {}
            if {[info exists revtags($root_rev)]} {
              # We want to show all the coloured tags plus others to take
              # the total to at least cvscfg(tagdepth)
              set tag_colour {}
              set tag_black {}
              foreach tag $revtags($root_rev) {
                if {[info exists cvscfg(tagcolour,$tag)]} {
                  lappend tag_colour $tag
                } else {
                  lappend tag_black $tag
                }
              }
              set tlist($root_rev) [concat $tag_colour $tag_black]

              if {$opt(show_tags)} {
                if {[info exists cvscfg(tagdepth)] && $cvscfg(tagdepth) != 0} {
                  set n [expr {$cvscfg(tagdepth) - [llength $tag_colour]}]
                  if {$n < [llength $tag_black]} {
                    set tag_black [concat [lrange $tag_black 0 [expr {$n-1}]] {more...}]
                  }
                }
                foreach tag $tlist($root_rev) {
                  if {$tag == {more...}} {
                    set my_font $font_bold
                  } else {
                    set my_font $font_norm
                  }
                  set w [font measure $my_font -displayof $logcanvas.canvas $tag]
                  if {$w > $tag_width} {
                    set tag_width $w
                  }
                }
                incr tag_width $curr(tspcb,2)
                set h [expr {[llength $tlist($root_rev)] * $font_norm_h}]
                if {$h > $height} {
                  set height $h
                }
              }
            }
            if {![info exists revbtags($root_rev)]} {set revbtags($root_rev) {}}
            foreach s [subst $root_info] {
              set w [font measure $font_norm -displayof $logcanvas.canvas $s]
              if {$w > $box_width} {
                set box_width $w
              }
            }
            incr box_width $curr(padx,2)
            set text_height [expr {$curr(pady,2) + \           [llength [subst $root_info]] * $font_norm_h}]
            return [list $tag_width $box_width $text_height]
          }

          proc DrawRoot { x y box_width box_height cur_rev root_rev } {
            global cvscfg
            variable curr
            variable opt
            variable font_norm
            variable font_norm_h
            variable font_bold
            variable logcanvas
            variable root_info
            variable revbtags
            variable revbranches
            variable tlist

            #gen_log:log T "ENTER ($x $y $box_width $box_height $cur_rev $root_rev )"
            gen_log:log D "Drawing Root for \&quot;$root_rev\&quot; \&quot;$cur_rev\&quot;"

            # draw the box
            $logcanvas.canvas create rectangle \           $x $y \           [expr {$x + $box_width}] [expr {$y - $box_height}] \           -width $curr(width) \           -fill gray90 -outline blue

            set tx [expr {$x + $box_width/2}]
            set ty [expr {$y - $curr(pady)}]
            gen_log:log D "[subst $root_info]"
            foreach s [subst $root_info] {
              $logcanvas.canvas create text \             $tx $ty \             -text $s \             -anchor s \             -font $font_norm -fill navy \             -tags [list R$root_rev box active]
              incr ty -$font_norm_h
            }
            #gen_log:log T "LEAVE"
            return
          }

          proc CalcRevision { revision } {
            global cvscfg
            variable opt
            variable curr
            variable box_height
            variable rev_info
            variable revdate
            variable revtime
            variable revwho
            variable font_norm
            variable font_norm_h
            variable font_bold
            variable logcanvas
            variable revtags
            variable tlist

            #gen_log:log T "ENTER ($revision)"
            set height $box_height
            set tag_width 0
            set box_width 0
            set tlist($revision) {}
            if {[info exists revtags($revision)]} {
              # We want to show all the coloured tags plus others to take
              # the total to at least cvscfg(tagdepth)
              set tag_colour {}
              set tag_black {}
              foreach tag $revtags($revision) {
                if {[info exists cvscfg(tagcolour,$tag)]} {
                  lappend tag_colour $tag
                } else {
                  lappend tag_black $tag
                }
              }
              if {[info exists cvscfg(tagdepth)] && $cvscfg(tagdepth) != 0} {
                set n [expr {$cvscfg(tagdepth) - [llength $tag_colour]}]
                if {$n < [llength $tag_black]} {
                  set tag_black [concat [lrange $tag_black 0 [expr {$n-1}]] {more...}]
                }
              }
              set tlist($revision) [concat $tag_colour $tag_black]
              if {$opt(show_tags)} {
                foreach tag $tlist($revision) {
                  if {$tag == {more...}} {
                    set my_font $font_bold
                  } else {
                    set my_font $font_norm
                  }
                  set w [font measure $my_font -displayof $logcanvas.canvas $tag]
                  if {$w > $tag_width} {
                    set tag_width $w
                  }
                }
                incr tag_width $curr(tspcb,2)
                set h [expr {[llength $tlist($revision)] * $font_norm_h}]
                if {$h > $height} {
                  set height $h
                }
              }
            }

            if {![info exists revtime($revision)]} {set revtime($revision) {}}
            if {![info exists revdate($revision)]} {set revdate($revision) {}}
            if {![info exists revinfo($revision)]} {set revinfo($revision) {}}
            if {![info exists revwho($revision)]} {set revwho($revision) {}}
            foreach s [subst $rev_info] {
              set w [font measure $font_norm -displayof $logcanvas.canvas $s]
              if {$w > $box_width} {
                set box_width $w
              }
            }
            incr box_width $curr(padx,2)
            #gen_log:log T "LEAVE"
            return [list $tag_width $box_width $height]
          }

          proc DrawRevision { x y box_width height revision} {
            global cvscfg
            variable opt
            variable curr
            variable box_height
            variable rev_info
            variable revdate
            variable revtime
            variable revwho
            variable revstate
            variable revkind
            variable revtags
            variable revbtags
            variable font_norm
            variable font_norm_h
            variable font_bold
            variable logcanvas
            variable tlist
            variable match
            variable fromtags
            variable totags
            variable xy
            variable boxwidth
            variable fromprefix
            variable toprefix
            upvar branch branch

            gen_log:log T "ENTER ($x $y $box_width $height $revision)"
            # Draw the list of tags
            set tx [expr {$x - $curr(tspcb)}]
            set ty $y
            set revbtag $revbtags($branch)
            foreach tag $tlist($revision) {
              gen_log:log D "$revision: tag $tag"
              if {[string match "${fromprefix}_*" $tag]} {
                lappend fromtags $tag
                regsub {.*_(.*$)} $tag {\1} tagend
                gen_log:log D "  $tag is a FROM TAG"
                gen_log:log D "  will need a TO TAG ${toprefix}_${revbtag}_$tagend"
                set match($tag) ${toprefix}_${revbtag}_$tagend
                set boxwidth($tag) $box_width
                set xy($tag) [list $x [expr {$y - ($box_height / 4)}]]
              }
              if {[string match "${toprefix}_*" $tag]} {
                lappend totags $tag
                regsub {.*_(.*$)} $tag {\1} tagend
                gen_log:log D "  $tag is a TO TAG"
                gen_log:log D "  will need a FROM TAG ${toprefix}_${revbtag}_$tagend"
                set match($tag) ${toprefix}_${revbtag}_$tagend
                set boxwidth($tag) $box_width
                set xy($tag) [list $x [expr {$y - ($box_height / 4)}]]
              }
              if {$opt(show_tags)} {
                set my_font $font_norm
                set tagcolour black
                set taglist {}
                if {$tag == {more...}} {
                  set my_font $font_bold
                  set taglist [list R$revision tag active]
                } elseif {[info exists cvscfg(tagcolour,$tag)]} {
                  set tagcolour $cvscfg(tagcolour,$tag)
                }
                $logcanvas.canvas create text \               $tx $ty \               -text $tag \               -anchor se -fill $tagcolour \               -font $my_font \               -tags $taglist
                incr ty -$font_norm_h
              }
            }
            # draw the box...
            set tx [expr {$x + $box_width}]
            set ty [expr {$y - $box_height}]
            $logcanvas.canvas create rectangle \           $x $y $tx $ty \           -width $curr(width) -fill gray90 \           -tags [list box R$revision rect$revision active]
            # ...and add the contents
            if {[info exists revstate($revision)]} {
              if {$revstate($revision) == {dead}} {
                $logcanvas.canvas create line \               $x $y $tx $ty -fill red -width $curr(width)
                $logcanvas.canvas create line \               $tx $y $x $ty -fill red -width $curr(width)
              }
            }
            set tx [expr {$x + $box_width/2}]
            set ty [expr {$y - $curr(pady)}]
            foreach s [subst $rev_info] {
              $logcanvas.canvas create text \             $tx $ty \             -text $s \             -anchor s \             -font $font_norm \             -tags [list R$revision box active]
              incr ty -$font_norm_h
            }
            #gen_log:log T "LEAVE"
            return
          }

          proc DrawBranch { x y root_rev branch } {
            variable logcanvas
            variable opt
            variable curr
            variable box_height
            variable revkind
            variable branchrevs
            variable revbranches

     #gen_log:log T ($x $y $root_rev $branch)_log:log D \&quot;$branch\&quot; rooted at \&quot;$root_rev\&quot;# What revisions to show on this branch?{![info exists branchrevs($branch)]} {set branchrevs($branch) {}}{$branchrevs($branch) == {}} {{}} else {# Always have the head revision[lindex $branchrevs($branch) 0][lrange $branchrevs($branch) 1 end-1] {{![info exists revbranches($r)]} {set revbranches($r) {}}{$opt(show_inter_revs) || $opt(show_empty_branches) \ ($r) != {}} {} else {# Only if there are non-empty branches off this revision($r) {{![info exists branchrevs($b)]} {set branchrevs($b) {}}{$branchrevs($b) != {}} {}}}}{[llength $branchrevs($branch)] } {# Always have the first revision on a branch[lindex $branchrevs($branch) end]}}

    klzzwxh:10618klzzwxh:10619klzzwxh:10620klzzwxh:10621klzzwxh:10622klzzwxh:10623klzzwxh:10624 klzzwxh:10358 Work out width and height of this limb, saving sizes of revisionsklzzwxh:11466klzzwxh:10625klzzwxh:10626klzzwxh:10627klzzwxh:10628klzzwxh:10629klzzwxh:10630klzzwxh:10631 set tagklzzwxh:10359width 0klzzwxh:11467klzzwxh:10632klzzwxh:10633klzzwxh:10634klzzwxh:10635klzzwxh:10636klzzwxh:10637klzzwxh:10638 set rdata klzzwxh:10360klzzwxh:10361klzzwxh:11468klzzwxh:10639klzzwxh:10640klzzwxh:10641klzzwxh:10642klzzwxh:10643klzzwxh:10644klzzwxh:10645 if klzzwxh:10362$branch == klzzwxh:10363currentklzzwxh:10364klzzwxh:10365 klzzwxh:10366klzzwxh:11469klzzwxh:10646klzzwxh:10647klzzwxh:10648klzzwxh:10649klzzwxh:10650klzzwxh:10651klzzwxh:10652klzzwxh:10653klzzwxh:10654 set rtw 0klzzwxh:11470klzzwxh:10655klzzwxh:10656klzzwxh:10657klzzwxh:10658klzzwxh:10659klzzwxh:10660klzzwxh:10661klzzwxh:10662klzzwxh:10663 foreach klzzwxh:10367boxklzzwxh:10368width rootklzzwxh:10369heightklzzwxh:10370 klzzwxh:10371CalcCurrent $branchklzzwxh:10372 klzzwxh:10373 break klzzwxh:10374klzzwxh:11471klzzwxh:10664klzzwxh:10665klzzwxh:10666klzzwxh:10667klzzwxh:10668klzzwxh:10669klzzwxh:10670 klzzwxh:10375 else klzzwxh:10376klzzwxh:11472klzzwxh:10671klzzwxh:10672klzzwxh:10673klzzwxh:10674klzzwxh:10675klzzwxh:10676klzzwxh:10677klzzwxh:10678klzzwxh:10679 foreach klzzwxh:10377rtw boxklzzwxh:10378width rootklzzwxh:10379heightklzzwxh:10380 klzzwxh:10381CalcRoot $branchklzzwxh:10382 klzzwxh:10383 break klzzwxh:10384klzzwxh:11473klzzwxh:10680klzzwxh:10681klzzwxh:10682klzzwxh:10683klzzwxh:10684klzzwxh:10685klzzwxh:10686 klzzwxh:10385klzzwxh:11474klzzwxh:10687klzzwxh:10688klzzwxh:10689klzzwxh:10690klzzwxh:10691klzzwxh:10692klzzwxh:10693 if klzzwxh:10386$rtw klzzwxh:10694 $tagklzzwxh:10387widthklzzwxh:10388 klzzwxh:10389klzzwxh:11475klzzwxh:10695klzzwxh:10696klzzwxh:10697klzzwxh:10698klzzwxh:10699klzzwxh:10700klzzwxh:10701klzzwxh:10702klzzwxh:10703 set tagklzzwxh:10390width $rtwklzzwxh:11476klzzwxh:10704klzzwxh:10705klzzwxh:10706klzzwxh:10707klzzwxh:10708klzzwxh:10709klzzwxh:10710 klzzwxh:10391klzzwxh:11477klzzwxh:10711klzzwxh:10712klzzwxh:10713klzzwxh:10714klzzwxh:10715klzzwxh:10716klzzwxh:10717 set height klzzwxh:10392expr klzzwxh:10393$rootklzzwxh:10394height + $currklzzwxh:10395spcyklzzwxh:10396klzzwxh:10397klzzwxh:10398klzzwxh:11478klzzwxh:10718klzzwxh:10719klzzwxh:10720klzzwxh:10721klzzwxh:10722klzzwxh:10723klzzwxh:10724 foreach revision $revlist klzzwxh:10399klzzwxh:11479klzzwxh:10725klzzwxh:10726klzzwxh:10727klzzwxh:10728klzzwxh:10729klzzwxh:10730klzzwxh:10731klzzwxh:10732klzzwxh:10733 if klzzwxh:10400$revision == klzzwxh:10401currentklzzwxh:10402klzzwxh:10403 klzzwxh:10404klzzwxh:11480klzzwxh:10734klzzwxh:10735klzzwxh:10736klzzwxh:10737klzzwxh:10738klzzwxh:10739klzzwxh:10740klzzwxh:10741klzzwxh:10742klzzwxh:10743klzzwxh:10744 set rtw 0klzzwxh:11481klzzwxh:10745klzzwxh:10746klzzwxh:10747klzzwxh:10748klzzwxh:10749klzzwxh:10750klzzwxh:10751klzzwxh:10752klzzwxh:10753klzzwxh:10754klzzwxh:10755 foreach klzzwxh:10405rbw rhklzzwxh:10406 klzzwxh:10407CalcCurrent $revisionklzzwxh:10408 klzzwxh:10409 break klzzwxh:10410klzzwxh:11482klzzwxh:10756klzzwxh:10757klzzwxh:10758klzzwxh:10759klzzwxh:10760klzzwxh:10761klzzwxh:10762klzzwxh:10763klzzwxh:10764 klzzwxh:10411 else klzzwxh:10412klzzwxh:11483klzzwxh:10765klzzwxh:10766klzzwxh:10767klzzwxh:10768klzzwxh:10769klzzwxh:10770klzzwxh:10771klzzwxh:10772klzzwxh:10773klzzwxh:10774klzzwxh:10775 foreach klzzwxh:10413rtw rbw rhklzzwxh:10414 klzzwxh:10415CalcRevision $revisionklzzwxh:10416 klzzwxh:10417 break klzzwxh:10418klzzwxh:11484klzzwxh:10776klzzwxh:10777klzzwxh:10778klzzwxh:10779klzzwxh:10780klzzwxh:10781klzzwxh:10782klzzwxh:10783klzzwxh:10784 klzzwxh:10419klzzwxh:11485klzzwxh:10785klzzwxh:10786klzzwxh:10787klzzwxh:10788klzzwxh:10789klzzwxh:10790klzzwxh:10791klzzwxh:10792klzzwxh:10793 lappend rdata $rtw $rhklzzwxh:11486klzzwxh:10794klzzwxh:10795klzzwxh:10796klzzwxh:10797klzzwxh:10798klzzwxh:10799klzzwxh:10800klzzwxh:10801klzzwxh:10802 if klzzwxh:10420$rtw klzzwxh:10803 $tagklzzwxh:10421widthklzzwxh:10422 klzzwxh:10423klzzwxh:11487klzzwxh:10804klzzwxh:10805klzzwxh:10806klzzwxh:10807klzzwxh:10808klzzwxh:10809klzzwxh:10810klzzwxh:10811klzzwxh:10812klzzwxh:10813klzzwxh:10814 set tagklzzwxh:10424width $rtwklzzwxh:11488klzzwxh:10815klzzwxh:10816klzzwxh:10817klzzwxh:10818klzzwxh:10819klzzwxh:10820klzzwxh:10821klzzwxh:10822klzzwxh:10823 klzzwxh:10425klzzwxh:11489klzzwxh:10824klzzwxh:10825klzzwxh:10826klzzwxh:10827klzzwxh:10828klzzwxh:10829klzzwxh:10830klzzwxh:10831klzzwxh:10832 if klzzwxh:10426$rbw klzzwxh:10833 $boxklzzwxh:10427widthklzzwxh:10428 klzzwxh:10429klzzwxh:11490klzzwxh:10834klzzwxh:10835klzzwxh:10836klzzwxh:10837klzzwxh:10838klzzwxh:10839klzzwxh:10840klzzwxh:10841klzzwxh:10842klzzwxh:10843klzzwxh:10844 set boxklzzwxh:10430width $rbwklzzwxh:11491klzzwxh:10845klzzwxh:10846klzzwxh:10847klzzwxh:10848klzzwxh:10849klzzwxh:10850klzzwxh:10851klzzwxh:10852klzzwxh:10853 klzzwxh:10431klzzwxh:11492klzzwxh:10854klzzwxh:10855klzzwxh:10856klzzwxh:10857klzzwxh:10858klzzwxh:10859klzzwxh:10860klzzwxh:10861klzzwxh:10862 incr height $currklzzwxh:10432spcyklzzwxh:10433klzzwxh:11493klzzwxh:10863klzzwxh:10864klzzwxh:10865klzzwxh:10866klzzwxh:10867klzzwxh:10868klzzwxh:10869klzzwxh:10870klzzwxh:10871 incr height $rhklzzwxh:11494klzzwxh:10872klzzwxh:10873klzzwxh:10874klzzwxh:10875klzzwxh:10876klzzwxh:10877klzzwxh:10878 klzzwxh:10434klzzwxh:11495klzzwxh:10879klzzwxh:10880klzzwxh:10881klzzwxh:10882klzzwxh:10883klzzwxh:10884klzzwxh:10885 klzzwxh:10435 Position branch.klzzwxh:11496klzzwxh:10886klzzwxh:10887klzzwxh:10888klzzwxh:10889klzzwxh:10890klzzwxh:10891klzzwxh:10892 klzzwxh:10436 Look for overlap horizontallyklzzwxh:11497klzzwxh:10893klzzwxh:10894klzzwxh:10895klzzwxh:10896klzzwxh:10897klzzwxh:10898klzzwxh:10899 while klzzwxh:104371klzzwxh:10438 klzzwxh:10439klzzwxh:11498klzzwxh:10900klzzwxh:10901klzzwxh:10902klzzwxh:10903klzzwxh:10904klzzwxh:10905klzzwxh:10906klzzwxh:10907klzzwxh:10908 $logcanvas.canvas addtag olklzzwxh:10440x overlapping klzzwxh:10441klzzwxh:10909klzzwxh:10910klzzwxh:10911klzzwxh:10912klzzwxh:10913klzzwxh:10914klzzwxh:10915klzzwxh:10916klzzwxh:10917klzzwxh:10918klzzwxh:10919 klzzwxh:10442expr klzzwxh:10443$x - $currklzzwxh:10444spcxklzzwxh:10445klzzwxh:10446klzzwxh:10447 klzzwxh:10448expr klzzwxh:10449$y - $height + $currklzzwxh:10450yfudgeklzzwxh:10451klzzwxh:10452klzzwxh:10453 klzzwxh:10454klzzwxh:10920klzzwxh:10921klzzwxh:10922klzzwxh:10923klzzwxh:10924klzzwxh:10925klzzwxh:10926klzzwxh:10927klzzwxh:10928klzzwxh:10929klzzwxh:10930 klzzwxh:10455expr klzzwxh:10456$x + $tagklzzwxh:10457width + $boxklzzwxh:10458widthklzzwxh:10459klzzwxh:10460 $yklzzwxh:11499klzzwxh:10931klzzwxh:10932klzzwxh:10933klzzwxh:10934klzzwxh:10935klzzwxh:10936klzzwxh:10937klzzwxh:10938klzzwxh:10939klzzwxh:10940klzzwxh:10941 set bbox klzzwxh:10461$logcanvas.canvas bbox olklzzwxh:10462xklzzwxh:10463klzzwxh:11500klzzwxh:10942klzzwxh:10943klzzwxh:10944klzzwxh:10945klzzwxh:10946klzzwxh:10947klzzwxh:10948klzzwxh:10949klzzwxh:10950 $logcanvas.canvas dtag olklzzwxh:10464xklzzwxh:11501klzzwxh:10951klzzwxh:10952klzzwxh:10953klzzwxh:10954klzzwxh:10955klzzwxh:10956klzzwxh:10957klzzwxh:10958klzzwxh:10959 if klzzwxh:10465$bbox == klzzwxh:10466klzzwxh:10467klzzwxh:10468 klzzwxh:10469klzzwxh:11502klzzwxh:10960klzzwxh:10961klzzwxh:10962klzzwxh:10963klzzwxh:10964klzzwxh:10965klzzwxh:10966klzzwxh:10967klzzwxh:10968 breakklzzwxh:11503klzzwxh:10969klzzwxh:10970klzzwxh:10971klzzwxh:10972klzzwxh:10973klzzwxh:10974klzzwxh:10975 klzzwxh:10470klzzwxh:11504klzzwxh:10976klzzwxh:10977klzzwxh:10978klzzwxh:10979klzzwxh:10980klzzwxh:10981klzzwxh:10982 genklzzwxh:10471log:log D klzzwxh:10983horizontal overlap with $bboxklzzwxh:10984klzzwxh:11505klzzwxh:10985klzzwxh:10986klzzwxh:10987klzzwxh:10988klzzwxh:10989klzzwxh:10990klzzwxh:10991klzzwxh:10992klzzwxh:10993 klzzwxh:10472 Move branch to rightmost point of overlapped objects plus some spaceklzzwxh:11506klzzwxh:10994klzzwxh:10995klzzwxh:10996klzzwxh:10997klzzwxh:10998klzzwxh:10999klzzwxh:11000klzzwxh:11001klzzwxh:11002 klzzwxh:10473 N.B. +1 because exactly equal counts as an overlapklzzwxh:11507klzzwxh:11003klzzwxh:11004klzzwxh:11005klzzwxh:11006klzzwxh:11007klzzwxh:11008klzzwxh:11009klzzwxh:11010klzzwxh:11011 set x klzzwxh:10474expr klzzwxh:10475klzzwxh:10476lindex $bbox 2klzzwxh:10477 + $currklzzwxh:10478spcxklzzwxh:10479 + 1klzzwxh:10480klzzwxh:10481klzzwxh:11508klzzwxh:11012klzzwxh:11013klzzwxh:11014klzzwxh:11015klzzwxh:11016klzzwxh:11017klzzwxh:11018 klzzwxh:10482klzzwxh:11509klzzwxh:11019klzzwxh:11020klzzwxh:11021klzzwxh:11022klzzwxh:11023klzzwxh:11024klzzwxh:11025 klzzwxh:10483 Look for overlap verticallyklzzwxh:11510klzzwxh:11026klzzwxh:11027klzzwxh:11028klzzwxh:11029klzzwxh:11030klzzwxh:11031klzzwxh:11032 $logcanvas.canvas addtag olklzzwxh:10484y overlapping klzzwxh:10485klzzwxh:11033klzzwxh:11034klzzwxh:11035klzzwxh:11036klzzwxh:11037klzzwxh:11038klzzwxh:11039klzzwxh:11040klzzwxh:11041 $x klzzwxh:10486expr klzzwxh:10487$y - $heightklzzwxh:10488klzzwxh:10489 klzzwxh:10490klzzwxh:11042klzzwxh:11043klzzwxh:11044klzzwxh:11045klzzwxh:11046klzzwxh:11047klzzwxh:11048klzzwxh:11049klzzwxh:11050 klzzwxh:10491expr klzzwxh:10492$x + $tagklzzwxh:10493width + $boxklzzwxh:10494widthklzzwxh:10495klzzwxh:10496 klzzwxh:10497expr klzzwxh:10498$y - $height +klzzwxh:10499klzzwxh:11051klzzwxh:11052klzzwxh:11053klzzwxh:11054klzzwxh:11055klzzwxh:11056klzzwxh:11057klzzwxh:11058klzzwxh:11059klzzwxh:11060klzzwxh:11061klzzwxh:11062klzzwxh:11063klzzwxh:11064 $currklzzwxh:10500yfudgeklzzwxh:10501klzzwxh:10502klzzwxh:10503klzzwxh:11511klzzwxh:11065klzzwxh:11066klzzwxh:11067klzzwxh:11068klzzwxh:11069klzzwxh:11070klzzwxh:11071 set bbox klzzwxh:10504$logcanvas.canvas bbox olklzzwxh:10505yklzzwxh:10506klzzwxh:11512klzzwxh:11072klzzwxh:11073klzzwxh:11074klzzwxh:11075klzzwxh:11076klzzwxh:11077klzzwxh:11078 $logcanvas.canvas dtag olklzzwxh:10507yklzzwxh:11513klzzwxh:11079klzzwxh:11080klzzwxh:11081klzzwxh:11082klzzwxh:11083klzzwxh:11084klzzwxh:11085 if klzzwxh:10508$bbox klzzwxh:10509= klzzwxh:10510klzzwxh:10511klzzwxh:10512 klzzwxh:10513klzzwxh:11514klzzwxh:11086klzzwxh:11087klzzwxh:11088klzzwxh:11089klzzwxh:11090klzzwxh:11091klzzwxh:11092klzzwxh:11093klzzwxh:11094 klzzwxh:10514 Move down to make spaceklzzwxh:11515klzzwxh:11095klzzwxh:11096klzzwxh:11097klzzwxh:11098klzzwxh:11099klzzwxh:11100klzzwxh:11101klzzwxh:11102klzzwxh:11103 genklzzwxh:10515log:log D klzzwxh:11104vertical overlap with $bboxklzzwxh:11105klzzwxh:11516klzzwxh:11106klzzwxh:11107klzzwxh:11108klzzwxh:11109klzzwxh:11110klzzwxh:11111klzzwxh:11112klzzwxh:11113klzzwxh:11114 incr y klzzwxh:10516expr klzzwxh:10517klzzwxh:10518lindex $bbox 3klzzwxh:10519 - klzzwxh:10520$y - $heightklzzwxh:10521klzzwxh:10522klzzwxh:10523klzzwxh:11517klzzwxh:11115klzzwxh:11116klzzwxh:11117klzzwxh:11118klzzwxh:11119klzzwxh:11120klzzwxh:11121 klzzwxh:10524klzzwxh:11518klzzwxh:11122klzzwxh:11123klzzwxh:11124klzzwxh:11125klzzwxh:11126klzzwxh:11127klzzwxh:11128 klzzwxh:10525 Position to top of branchklzzwxh:11519klzzwxh:11129klzzwxh:11130klzzwxh:11131klzzwxh:11132klzzwxh:11133klzzwxh:11134klzzwxh:11135 incr x $tagklzzwxh:10526widthklzzwxh:11520klzzwxh:11136klzzwxh:11137klzzwxh:11138klzzwxh:11139klzzwxh:11140klzzwxh:11141klzzwxh:11142 incr y -$heightklzzwxh:11521klzzwxh:11143klzzwxh:11144klzzwxh:11145klzzwxh:11146klzzwxh:11147klzzwxh:11148klzzwxh:11149 klzzwxh:10527 Draw the branchklzzwxh:11522klzzwxh:11150klzzwxh:11151klzzwxh:11152klzzwxh:11153klzzwxh:11154klzzwxh:11155klzzwxh:11156 set midx klzzwxh:10528expr klzzwxh:10529$x + $boxklzzwxh:10530width/2klzzwxh:10531klzzwxh:10532klzzwxh:11523klzzwxh:11157klzzwxh:11158klzzwxh:11159klzzwxh:11160klzzwxh:11161klzzwxh:11162klzzwxh:11163 set lastklzzwxh:10533y klzzwxh:10534klzzwxh:10535klzzwxh:11524klzzwxh:11164klzzwxh:11165klzzwxh:11166klzzwxh:11167klzzwxh:11168klzzwxh:11169klzzwxh:11170 foreach revision $revlist klzzwxh:10536rtagklzzwxh:10537width rheightklzzwxh:10538 $rdata klzzwxh:10539klzzwxh:11525klzzwxh:11171klzzwxh:11172klzzwxh:11173klzzwxh:11174klzzwxh:11175klzzwxh:11176klzzwxh:11177klzzwxh:11178klzzwxh:11179 incr y $currklzzwxh:10540spcyklzzwxh:10541klzzwxh:11526klzzwxh:11180klzzwxh:11181klzzwxh:11182klzzwxh:11183klzzwxh:11184klzzwxh:11185klzzwxh:11186klzzwxh:11187klzzwxh:11188 incr y $rheightklzzwxh:11527klzzwxh:11189klzzwxh:11190klzzwxh:11191klzzwxh:11192klzzwxh:11193klzzwxh:11194klzzwxh:11195klzzwxh:11196klzzwxh:11197 klzzwxh:10542 For each branch off this revision, draw it to the right of thisklzzwxh:11528klzzwxh:11198klzzwxh:11199klzzwxh:11200klzzwxh:11201klzzwxh:11202klzzwxh:11203klzzwxh:11204klzzwxh:11205klzzwxh:11206 klzzwxh:10543 revision box and a little above the centre line of this box.klzzwxh:11529klzzwxh:11207klzzwxh:11208klzzwxh:11209klzzwxh:11210klzzwxh:11211klzzwxh:11212klzzwxh:11213klzzwxh:11214klzzwxh:11215 set x2 klzzwxh:10544expr klzzwxh:10545$x +$boxklzzwxh:10546width + $currklzzwxh:10547spcxklzzwxh:10548klzzwxh:10549klzzwxh:10550klzzwxh:11530klzzwxh:11216klzzwxh:11217klzzwxh:11218klzzwxh:11219klzzwxh:11220klzzwxh:11221klzzwxh:11222klzzwxh:11223klzzwxh:11224 set y2 klzzwxh:10551expr klzzwxh:10552$y - $boxklzzwxh:10553height/2 - $currklzzwxh:10554boffklzzwxh:10555klzzwxh:10556klzzwxh:10557klzzwxh:11531klzzwxh:11225klzzwxh:11226klzzwxh:11227klzzwxh:11228klzzwxh:11229klzzwxh:11230klzzwxh:11231klzzwxh:11232klzzwxh:11233 set brevs klzzwxh:10558klzzwxh:10559klzzwxh:11532klzzwxh:11234klzzwxh:11235klzzwxh:11236klzzwxh:11237klzzwxh:11238klzzwxh:11239klzzwxh:11240klzzwxh:11241klzzwxh:11242 set bxys klzzwxh:10560klzzwxh:10561klzzwxh:11533klzzwxh:11243klzzwxh:11244klzzwxh:11245klzzwxh:11246klzzwxh:11247klzzwxh:11248klzzwxh:11249klzzwxh:11250klzzwxh:11251 if klzzwxh:10562klzzwxh:10563info exists revbranchesklzzwxh:10564$revisionklzzwxh:10565klzzwxh:10566klzzwxh:10567 klzzwxh:10568klzzwxh:11534klzzwxh:11252klzzwxh:11253klzzwxh:11254klzzwxh:11255klzzwxh:11256klzzwxh:11257klzzwxh:11258klzzwxh:11259klzzwxh:11260klzzwxh:11261klzzwxh:11262 foreach r2 $revbranchesklzzwxh:10569$revisionklzzwxh:10570 klzzwxh:10571klzzwxh:11535klzzwxh:11263klzzwxh:11264klzzwxh:11265klzzwxh:11266klzzwxh:11267klzzwxh:11268klzzwxh:11269klzzwxh:11270klzzwxh:11271klzzwxh:11272klzzwxh:11273klzzwxh:11274klzzwxh:11275 klzzwxh:10572 Do we display the branch if it is empty?klzzwxh:11536klzzwxh:11276klzzwxh:11277klzzwxh:11278klzzwxh:11279klzzwxh:11280klzzwxh:11281klzzwxh:11282klzzwxh:11283klzzwxh:11284klzzwxh:11285klzzwxh:11286klzzwxh:11287klzzwxh:11288 klzzwxh:10573 If it's the you-are-here, we do anywayklzzwxh:11537klzzwxh:11289klzzwxh:11290klzzwxh:11291klzzwxh:11292klzzwxh:11293klzzwxh:11294klzzwxh:11295klzzwxh:11296klzzwxh:11297klzzwxh:11298klzzwxh:11299klzzwxh:11300klzzwxh:11301 if klzzwxh:10574klzzwxh:10575klzzwxh:10576info exists branchrevsklzzwxh:10577$r2klzzwxh:10578klzzwxh:10579 klzzwxh:10580 klzzwxh:10581 set branchrevsklzzwxh:10582$r2klzzwxh:10583 klzzwxh:10584klzzwxh:10585 klzzwxh:10586klzzwxh:11538klzzwxh:11302klzzwxh:11303klzzwxh:11304klzzwxh:11305klzzwxh:11306klzzwxh:11307klzzwxh:11308klzzwxh:11309klzzwxh:11310klzzwxh:11311klzzwxh:11312klzzwxh:11313klzzwxh:11314 if klzzwxh:10587$branchrevsklzzwxh:10588$r2klzzwxh:10589 == klzzwxh:10590klzzwxh:10591 klzzwxh:11315klzzwxh:11316 $r2 klzzwxh:10592= klzzwxh:10593currentklzzwxh:10594 klzzwxh:11317klzzwxh:11318 klzzwxh:10595klzzwxh:10596klzzwxh:11319klzzwxh:11320klzzwxh:11321klzzwxh:11322klzzwxh:11323klzzwxh:11324klzzwxh:11325klzzwxh:11326klzzwxh:11327klzzwxh:11328klzzwxh:11329klzzwxh:11330klzzwxh:11331klzzwxh:11332klzzwxh:11333klzzwxh:11334klzzwxh:11335 $optklzzwxh:10597showklzzwxh:10598emptyklzzwxh:10599branchesklzzwxh:10600klzzwxh:10601 klzzwxh:10602klzzwxh:11539klzzwxh:11336klzzwxh:11337klzzwxh:11338klzzwxh:11339klzzwxh:11340klzzwxh:11341klzzwxh:11342klzzwxh:11343klzzwxh:11344klzzwxh:11345klzzwxh:11346klzzwxh:11347klzzwxh:11348klzzwxh:11349klzzwxh:11350 continueklzzwxh:11540klzzwxh:11351klzzwxh:11352klzzwxh:11353klzzwxh:11354klzzwxh:11355klzzwxh:11356klzzwxh:11357klzzwxh:11358klzzwxh:11359klzzwxh:11360klzzwxh:11361klzzwxh:11362klzzwxh:11363 klzzwxh:10603klzzwxh:11541klzzwxh:11364klzzwxh:11365klzzwxh:11366klzzwxh:11367klzzwxh:11368klzzwxh:11369klzzwxh:11370klzzwxh:11371klzzwxh:11372klzzwxh:11373klzzwxh:11374klzzwxh:11375klzzwxh:11376 lappend brevs $r2klzzwxh:11542klzzwxh:11377klzzwxh:11378klzzwxh:11379klzzwxh:11380klzzwxh:11381klzzwxh:11382klzzwxh:11383klzzwxh:11384klzzwxh:11385klzzwxh:11386klzzwxh:11387klzzwxh:11388klzzwxh:11389 foreach klzzwxh:10604lx y2 lbw rh llyklzzwxh:10605 klzzwxh:10606DrawBranch $x2 $y2 $revision $r2klzzwxh:10607 klzzwxh:10608klzzwxh:11543klzzwxh:11390klzzwxh:11391klzzwxh:11392klzzwxh:11393klzzwxh:11394klzzwxh:11395klzzwxh:11396klzzwxh:11397klzzwxh:11398klzzwxh:11399klzzwxh:11400klzzwxh:11401klzzwxh:11402klzzwxh:11403klzzwxh:11404 lappend bxys $lx $lbw $rh $llyklzzwxh:11544klzzwxh:11405klzzwxh:11406klzzwxh:11407klzzwxh:11408klzzwxh:11409klzzwxh:11410klzzwxh:11411klzzwxh:11412klzzwxh:11413klzzwxh:11414klzzwxh:11415klzzwxh:11416klzzwxh:11417klzzwxh:11418klzzwxh:11419 breakklzzwxh:11545klzzwxh:11420klzzwxh:11421klzzwxh:11422klzzwxh:11423klzzwxh:11424klzzwxh:11425klzzwxh:11426klzzwxh:11427klzzwxh:11428klzzwxh:11429klzzwxh:11430klzzwxh:11431klzzwxh:11432 klzzwxh:10609klzzwxh:11546klzzwxh:11433klzzwxh:11434klzzwxh:11435klzzwxh:11436klzzwxh:11437klzzwxh:11438klzzwxh:11439klzzwxh:11440klzzwxh:11441klzzwxh:11442klzzwxh:11443klzzwxh:11444klzzwxh:11445 set x2 klzzwxh:10610expr klzzwxh:10611$lx + $lbw + $currklzzwxh:10612spcxklzzwxh:10613klzzwxh:10614klzzwxh:10615klzzwxh:11547klzzwxh:11446klzzwxh:11447klzzwxh:11448klzzwxh:11449klzzwxh:11450klzzwxh:11451klzzwxh:11452klzzwxh:11453klzzwxh:11454klzzwxh:11455klzzwxh:11456 klzzwxh:10616klzzwxh:11548klzzwxh:11457klzzwxh:11458klzzwxh:11459klzzwxh:11460klzzwxh:11461klzzwxh:11462klzzwxh:11463klzzwxh:11464klzzwxh:11465 klzzwxh:10617

    klzzwxh:11575klzzwxh:11576klzzwxh:11577klzzwxh:11578klzzwxh:11579klzzwxh:11580klzzwxh:11581klzzwxh:11582klzzwxh:11583 klzzwxh:11549 y2 may have changed to accomodate a long branch. If so we needklzzwxh:11638klzzwxh:11584klzzwxh:11585klzzwxh:11586klzzwxh:11587klzzwxh:11588klzzwxh:11589klzzwxh:11590klzzwxh:11591klzzwxh:11592 klzzwxh:11550 to figure out what our y should beklzzwxh:11639klzzwxh:11593klzzwxh:11594klzzwxh:11595klzzwxh:11596klzzwxh:11597klzzwxh:11598klzzwxh:11599klzzwxh:11600klzzwxh:11601 set y klzzwxh:11551expr klzzwxh:11552$y2 + $boxklzzwxh:11553height/2 + $currklzzwxh:11554boffklzzwxh:11555klzzwxh:11556klzzwxh:11557klzzwxh:11640klzzwxh:11602klzzwxh:11603klzzwxh:11604klzzwxh:11605klzzwxh:11606klzzwxh:11607klzzwxh:11608klzzwxh:11609klzzwxh:11610 set rx klzzwxh:11558expr klzzwxh:11559$x + $boxklzzwxh:11560widthklzzwxh:11561klzzwxh:11562klzzwxh:11641klzzwxh:11611klzzwxh:11612klzzwxh:11613klzzwxh:11614klzzwxh:11615klzzwxh:11616klzzwxh:11617klzzwxh:11618klzzwxh:11619 set ry klzzwxh:11563expr klzzwxh:11564$y - $boxklzzwxh:11565height/2klzzwxh:11566klzzwxh:11567klzzwxh:11642klzzwxh:11620klzzwxh:11621klzzwxh:11622klzzwxh:11623klzzwxh:11624klzzwxh:11625klzzwxh:11626klzzwxh:11627klzzwxh:11628 set by klzzwxh:11568expr klzzwxh:11569$ry - $currklzzwxh:11570boffklzzwxh:11571klzzwxh:11572klzzwxh:11573klzzwxh:11643klzzwxh:11629klzzwxh:11630klzzwxh:11631klzzwxh:11632klzzwxh:11633klzzwxh:11634klzzwxh:11635klzzwxh:11636klzzwxh:11637 klzzwxh:11574 If it has brevs, it's the root of a branch

    klzzwxh:11711klzzwxh:11712klzzwxh:11713klzzwxh:11714klzzwxh:11715klzzwxh:11716klzzwxh:11717klzzwxh:11718klzzwxh:11719 foreach b $brevs klzzwxh:11644bx bw rh lyklzzwxh:11645 $bxys klzzwxh:11646klzzwxh:12034klzzwxh:11720klzzwxh:11721klzzwxh:11722klzzwxh:11723klzzwxh:11724klzzwxh:11725klzzwxh:11726klzzwxh:11727klzzwxh:11728klzzwxh:11729klzzwxh:11730 set mx klzzwxh:11647expr klzzwxh:11648$bx + $bw/2klzzwxh:11649klzzwxh:11650klzzwxh:12035klzzwxh:11731klzzwxh:11732klzzwxh:11733klzzwxh:11734klzzwxh:11735klzzwxh:11736klzzwxh:11737klzzwxh:11738klzzwxh:11739klzzwxh:11740klzzwxh:11741 if klzzwxh:11651$ly klzzwxh:11652= klzzwxh:11653klzzwxh:11654klzzwxh:11655 klzzwxh:11656klzzwxh:12036klzzwxh:11742klzzwxh:11743klzzwxh:11744klzzwxh:11745klzzwxh:11746klzzwxh:11747klzzwxh:11748klzzwxh:11749klzzwxh:11750klzzwxh:11751klzzwxh:11752klzzwxh:11753klzzwxh:11754 $logcanvas.canvas create line klzzwxh:11657klzzwxh:11755klzzwxh:11756klzzwxh:11757klzzwxh:11758klzzwxh:11759klzzwxh:11760klzzwxh:11761klzzwxh:11762klzzwxh:11763klzzwxh:11764klzzwxh:11765klzzwxh:11766klzzwxh:11767klzzwxh:11768klzzwxh:11769 $mx $ly $mx klzzwxh:11658expr klzzwxh:11659$by - $rhklzzwxh:11660klzzwxh:11661 klzzwxh:11662klzzwxh:11770klzzwxh:11771klzzwxh:11772klzzwxh:11773klzzwxh:11774klzzwxh:11775klzzwxh:11776klzzwxh:11777klzzwxh:11778klzzwxh:11779klzzwxh:11780klzzwxh:11781klzzwxh:11782klzzwxh:11783klzzwxh:11784 -arrow first -arrowshape $currklzzwxh:11663arrowshapeklzzwxh:11664 -width $currklzzwxh:11665widthklzzwxh:11666klzzwxh:12037klzzwxh:11785klzzwxh:11786klzzwxh:11787klzzwxh:11788klzzwxh:11789klzzwxh:11790klzzwxh:11791klzzwxh:11792klzzwxh:11793klzzwxh:11794klzzwxh:11795 klzzwxh:11667klzzwxh:12038klzzwxh:11796klzzwxh:11797klzzwxh:11798klzzwxh:11799klzzwxh:11800klzzwxh:11801klzzwxh:11802klzzwxh:11803klzzwxh:11804klzzwxh:11805klzzwxh:11806 if klzzwxh:11668$b == klzzwxh:11669currentklzzwxh:11670klzzwxh:11671 klzzwxh:11672klzzwxh:12039klzzwxh:11807klzzwxh:11808klzzwxh:11809klzzwxh:11810klzzwxh:11811klzzwxh:11812klzzwxh:11813klzzwxh:11814klzzwxh:11815klzzwxh:11816klzzwxh:11817klzzwxh:11818klzzwxh:11819 DrawCurrent $bx $by $bw $rh $revisionklzzwxh:12040klzzwxh:11820klzzwxh:11821klzzwxh:11822klzzwxh:11823klzzwxh:11824klzzwxh:11825klzzwxh:11826klzzwxh:11827klzzwxh:11828klzzwxh:11829klzzwxh:11830 klzzwxh:11673 else klzzwxh:11674klzzwxh:12041klzzwxh:11831klzzwxh:11832klzzwxh:11833klzzwxh:11834klzzwxh:11835klzzwxh:11836klzzwxh:11837klzzwxh:11838klzzwxh:11839klzzwxh:11840klzzwxh:11841klzzwxh:11842klzzwxh:11843 set lastklzzwxh:11675rev klzzwxh:11676lindex $branchrevsklzzwxh:11677$bklzzwxh:11678 0klzzwxh:11679klzzwxh:12042klzzwxh:11844klzzwxh:11845klzzwxh:11846klzzwxh:11847klzzwxh:11848klzzwxh:11849klzzwxh:11850klzzwxh:11851klzzwxh:11852klzzwxh:11853klzzwxh:11854klzzwxh:11855klzzwxh:11856 if klzzwxh:11680$lastklzzwxh:11681rev == klzzwxh:11682currentklzzwxh:11683klzzwxh:11684 klzzwxh:11685klzzwxh:12043klzzwxh:11857klzzwxh:11858klzzwxh:11859klzzwxh:11860klzzwxh:11861klzzwxh:11862klzzwxh:11863klzzwxh:11864klzzwxh:11865klzzwxh:11866klzzwxh:11867klzzwxh:11868klzzwxh:11869klzzwxh:11870klzzwxh:11871 set lastklzzwxh:11686rev klzzwxh:11687lindex $branchrevsklzzwxh:11688$bklzzwxh:11689 1klzzwxh:11690klzzwxh:12044klzzwxh:11872klzzwxh:11873klzzwxh:11874klzzwxh:11875klzzwxh:11876klzzwxh:11877klzzwxh:11878klzzwxh:11879klzzwxh:11880klzzwxh:11881klzzwxh:11882klzzwxh:11883klzzwxh:11884 klzzwxh:11691klzzwxh:12045klzzwxh:11885klzzwxh:11886klzzwxh:11887klzzwxh:11888klzzwxh:11889klzzwxh:11890klzzwxh:11891klzzwxh:11892klzzwxh:11893klzzwxh:11894klzzwxh:11895klzzwxh:11896klzzwxh:11897 DrawRoot $bx $by $bw $rh $revision $bklzzwxh:12046klzzwxh:11898klzzwxh:11899klzzwxh:11900klzzwxh:11901klzzwxh:11902klzzwxh:11903klzzwxh:11904klzzwxh:11905klzzwxh:11906klzzwxh:11907klzzwxh:11908 klzzwxh:11692klzzwxh:12047klzzwxh:11909klzzwxh:11910klzzwxh:11911klzzwxh:11912klzzwxh:11913klzzwxh:11914klzzwxh:11915klzzwxh:11916klzzwxh:11917klzzwxh:11918klzzwxh:11919 $logcanvas.canvas lower klzzwxh:11693 klzzwxh:11694klzzwxh:11920klzzwxh:11921klzzwxh:11922klzzwxh:11923klzzwxh:11924klzzwxh:11925klzzwxh:11926klzzwxh:11927klzzwxh:11928klzzwxh:11929klzzwxh:11930klzzwxh:11931klzzwxh:11932 $logcanvas.canvas create line klzzwxh:11695klzzwxh:11933klzzwxh:11934klzzwxh:11935klzzwxh:11936klzzwxh:11937klzzwxh:11938klzzwxh:11939klzzwxh:11940klzzwxh:11941klzzwxh:11942klzzwxh:11943klzzwxh:11944klzzwxh:11945klzzwxh:11946klzzwxh:11947 $rx $ry $mx $ry $mx $by klzzwxh:11696klzzwxh:11948klzzwxh:11949klzzwxh:11950klzzwxh:11951klzzwxh:11952klzzwxh:11953klzzwxh:11954klzzwxh:11955klzzwxh:11956klzzwxh:11957klzzwxh:11958klzzwxh:11959klzzwxh:11960klzzwxh:11961klzzwxh:11962 -arrow last -arrowshape $currklzzwxh:11697arrowshapeklzzwxh:11698 -width $currklzzwxh:11699widthklzzwxh:11700 klzzwxh:11701klzzwxh:11963klzzwxh:11964klzzwxh:11965klzzwxh:11966klzzwxh:11967klzzwxh:11968klzzwxh:11969klzzwxh:11970klzzwxh:11971klzzwxh:11972klzzwxh:11973klzzwxh:11974klzzwxh:11975klzzwxh:11976klzzwxh:11977 -fill blueklzzwxh:12048klzzwxh:11978klzzwxh:11979klzzwxh:11980klzzwxh:11981klzzwxh:11982klzzwxh:11983klzzwxh:11984klzzwxh:11985klzzwxh:11986klzzwxh:11987klzzwxh:11988 klzzwxh:11702klzzwxh:12049klzzwxh:11989klzzwxh:11990klzzwxh:11991klzzwxh:11992klzzwxh:11993klzzwxh:11994klzzwxh:11995klzzwxh:11996klzzwxh:11997klzzwxh:11998klzzwxh:11999 if klzzwxh:11703$optklzzwxh:11704updateklzzwxh:11705drawingklzzwxh:11706 klzzwxh:12000 1klzzwxh:11707 klzzwxh:11708klzzwxh:12050klzzwxh:12001klzzwxh:12002klzzwxh:12003klzzwxh:12004klzzwxh:12005klzzwxh:12006klzzwxh:12007klzzwxh:12008klzzwxh:12009klzzwxh:12010klzzwxh:12011klzzwxh:12012klzzwxh:12013 UpdateBndBoxklzzwxh:12051klzzwxh:12014klzzwxh:12015klzzwxh:12016klzzwxh:12017klzzwxh:12018klzzwxh:12019klzzwxh:12020klzzwxh:12021klzzwxh:12022klzzwxh:12023klzzwxh:12024 klzzwxh:11709klzzwxh:12052klzzwxh:12025klzzwxh:12026klzzwxh:12027klzzwxh:12028klzzwxh:12029klzzwxh:12030klzzwxh:12031klzzwxh:12032klzzwxh:12033 klzzwxh:11710

    klzzwxh:12122klzzwxh:12123klzzwxh:12124klzzwxh:12125klzzwxh:12126klzzwxh:12127klzzwxh:12128klzzwxh:12129klzzwxh:12130 if klzzwxh:12053$lastklzzwxh:12054y klzzwxh:12055= klzzwxh:12056klzzwxh:12057klzzwxh:12058 klzzwxh:12059klzzwxh:12372klzzwxh:12131klzzwxh:12132klzzwxh:12133klzzwxh:12134klzzwxh:12135klzzwxh:12136klzzwxh:12137klzzwxh:12138klzzwxh:12139klzzwxh:12140klzzwxh:12141 $logcanvas.canvas create line klzzwxh:12060klzzwxh:12142klzzwxh:12143klzzwxh:12144klzzwxh:12145klzzwxh:12146klzzwxh:12147klzzwxh:12148klzzwxh:12149klzzwxh:12150klzzwxh:12151klzzwxh:12152klzzwxh:12153klzzwxh:12154 $midx $lastklzzwxh:12061y $midx klzzwxh:12062expr klzzwxh:12063$y - $boxklzzwxh:12064heightklzzwxh:12065klzzwxh:12066 klzzwxh:12067klzzwxh:12155klzzwxh:12156klzzwxh:12157klzzwxh:12158klzzwxh:12159klzzwxh:12160klzzwxh:12161klzzwxh:12162klzzwxh:12163klzzwxh:12164klzzwxh:12165klzzwxh:12166klzzwxh:12167 -arrow first -arrowshape $currklzzwxh:12068arrowshapeklzzwxh:12069 -width $currklzzwxh:12070widthklzzwxh:12071klzzwxh:12373klzzwxh:12168klzzwxh:12169klzzwxh:12170klzzwxh:12171klzzwxh:12172klzzwxh:12173klzzwxh:12174klzzwxh:12175klzzwxh:12176 klzzwxh:12072klzzwxh:12374klzzwxh:12177klzzwxh:12178klzzwxh:12179klzzwxh:12180klzzwxh:12181klzzwxh:12182klzzwxh:12183klzzwxh:12184klzzwxh:12185 if klzzwxh:12073$revision == klzzwxh:12074currentklzzwxh:12075klzzwxh:12076 klzzwxh:12077klzzwxh:12375klzzwxh:12186klzzwxh:12187klzzwxh:12188klzzwxh:12189klzzwxh:12190klzzwxh:12191klzzwxh:12192klzzwxh:12193klzzwxh:12194klzzwxh:12195klzzwxh:12196 DrawCurrent $x $y $boxklzzwxh:12078width $rheight $revisionklzzwxh:12376klzzwxh:12197klzzwxh:12198klzzwxh:12199klzzwxh:12200klzzwxh:12201klzzwxh:12202klzzwxh:12203klzzwxh:12204klzzwxh:12205 klzzwxh:12079 else klzzwxh:12080klzzwxh:12377klzzwxh:12206klzzwxh:12207klzzwxh:12208klzzwxh:12209klzzwxh:12210klzzwxh:12211klzzwxh:12212klzzwxh:12213klzzwxh:12214klzzwxh:12215klzzwxh:12216 DrawRevision $x $y $boxklzzwxh:12081width $rheight $revisionklzzwxh:12378klzzwxh:12217klzzwxh:12218klzzwxh:12219klzzwxh:12220klzzwxh:12221klzzwxh:12222klzzwxh:12223klzzwxh:12224klzzwxh:12225 klzzwxh:12082klzzwxh:12379klzzwxh:12226klzzwxh:12227klzzwxh:12228klzzwxh:12229klzzwxh:12230klzzwxh:12231klzzwxh:12232klzzwxh:12233klzzwxh:12234 if klzzwxh:12083$optklzzwxh:12084updateklzzwxh:12085drawingklzzwxh:12086 klzzwxh:12235 1klzzwxh:12087 klzzwxh:12088klzzwxh:12380klzzwxh:12236klzzwxh:12237klzzwxh:12238klzzwxh:12239klzzwxh:12240klzzwxh:12241klzzwxh:12242klzzwxh:12243klzzwxh:12244klzzwxh:12245klzzwxh:12246 UpdateBndBoxklzzwxh:12381klzzwxh:12247klzzwxh:12248klzzwxh:12249klzzwxh:12250klzzwxh:12251klzzwxh:12252klzzwxh:12253klzzwxh:12254klzzwxh:12255 klzzwxh:12089klzzwxh:12382klzzwxh:12256klzzwxh:12257klzzwxh:12258klzzwxh:12259klzzwxh:12260klzzwxh:12261klzzwxh:12262klzzwxh:12263klzzwxh:12264 set lastklzzwxh:12090y $yklzzwxh:12383klzzwxh:12265klzzwxh:12266klzzwxh:12267klzzwxh:12268klzzwxh:12269klzzwxh:12270klzzwxh:12271klzzwxh:12272klzzwxh:12273 set lastklzzwxh:12091rev $revisionklzzwxh:12384klzzwxh:12274klzzwxh:12275klzzwxh:12276klzzwxh:12277klzzwxh:12278klzzwxh:12279klzzwxh:12280 klzzwxh:12092klzzwxh:12385klzzwxh:12281klzzwxh:12282klzzwxh:12283klzzwxh:12284klzzwxh:12285klzzwxh:12286klzzwxh:12287 if klzzwxh:12093$optklzzwxh:12094updateklzzwxh:12095drawingklzzwxh:12096 klzzwxh:12288 2klzzwxh:12097 klzzwxh:12098klzzwxh:12386klzzwxh:12289klzzwxh:12290klzzwxh:12291klzzwxh:12292klzzwxh:12293klzzwxh:12294klzzwxh:12295klzzwxh:12296klzzwxh:12297 UpdateBndBoxklzzwxh:12387klzzwxh:12298klzzwxh:12299klzzwxh:12300klzzwxh:12301klzzwxh:12302klzzwxh:12303klzzwxh:12304 klzzwxh:12099klzzwxh:12388klzzwxh:12305klzzwxh:12306klzzwxh:12307klzzwxh:12308klzzwxh:12309klzzwxh:12310klzzwxh:12311 return klzzwxh:12100list $x klzzwxh:12101expr klzzwxh:12102$y + $rootklzzwxh:12103height + $currklzzwxh:12104spcyklzzwxh:12105klzzwxh:12106klzzwxh:12107 klzzwxh:12108klzzwxh:12312klzzwxh:12313klzzwxh:12314klzzwxh:12315klzzwxh:12316klzzwxh:12317klzzwxh:12318 $boxklzzwxh:12109width $rootklzzwxh:12110height $lastklzzwxh:12111yklzzwxh:12112klzzwxh:12389klzzwxh:12319klzzwxh:12320klzzwxh:12321klzzwxh:12322klzzwxh:12323 klzzwxh:12113klzzwxh:12390klzzwxh:12324 klzzwxh:12391klzzwxh:12325klzzwxh:12326klzzwxh:12327klzzwxh:12328klzzwxh:12329 proc UpdateBndBox klzzwxh:12114klzzwxh:12115 klzzwxh:12116klzzwxh:12392klzzwxh:12330klzzwxh:12331klzzwxh:12332klzzwxh:12333klzzwxh:12334klzzwxh:12335klzzwxh:12336 variable logcanvasklzzwxh:12393klzzwxh:12337klzzwxh:12338klzzwxh:12339klzzwxh:12340klzzwxh:12341klzzwxh:12342klzzwxh:12343 variable fontklzzwxh:12117boldklzzwxh:12394klzzwxh:12344klzzwxh:12345klzzwxh:12346klzzwxh:12347klzzwxh:12348klzzwxh:12349klzzwxh:12350 variable viewklzzwxh:12118xoffklzzwxh:12395klzzwxh:12351klzzwxh:12352klzzwxh:12353klzzwxh:12354klzzwxh:12355klzzwxh:12356klzzwxh:12357 variable viewklzzwxh:12119yoffklzzwxh:12396klzzwxh:12358klzzwxh:12359klzzwxh:12360klzzwxh:12361klzzwxh:12362klzzwxh:12363klzzwxh:12364 variable currklzzwxh:12120xklzzwxh:12397klzzwxh:12365klzzwxh:12366klzzwxh:12367klzzwxh:12368klzzwxh:12369klzzwxh:12370klzzwxh:12371 variable currklzzwxh:12121y

    klzzwxh:12400klzzwxh:12401klzzwxh:12402klzzwxh:12403klzzwxh:12404klzzwxh:12405klzzwxh:12406 klzzwxh:12398genklzzwxh:12399log:log T klzzwxh:12407ENTERklzzwxh:12408

    klzzwxh:12436klzzwxh:12437klzzwxh:12438klzzwxh:12439klzzwxh:12440klzzwxh:12441klzzwxh:12442 foreach klzzwxh:12409x1 y1 x2 y2klzzwxh:12410 klzzwxh:12411$logcanvas.canvas bbox allklzzwxh:12412 klzzwxh:12413 break klzzwxh:12414klzzwxh:12490klzzwxh:12443klzzwxh:12444klzzwxh:12445klzzwxh:12446klzzwxh:12447klzzwxh:12448klzzwxh:12449 $logcanvas.canvas configure klzzwxh:12415klzzwxh:12450klzzwxh:12451klzzwxh:12452klzzwxh:12453klzzwxh:12454klzzwxh:12455klzzwxh:12456klzzwxh:12457klzzwxh:12458 -scrollregion klzzwxh:12416list klzzwxh:12417klzzwxh:12459klzzwxh:12460klzzwxh:12461klzzwxh:12462klzzwxh:12463klzzwxh:12464klzzwxh:12465klzzwxh:12466klzzwxh:12467klzzwxh:12468klzzwxh:12469 klzzwxh:12418expr klzzwxh:12419$x1 - 5klzzwxh:12420klzzwxh:12421 klzzwxh:12422expr klzzwxh:12423$y1 - 5klzzwxh:12424klzzwxh:12425 klzzwxh:12426klzzwxh:12470klzzwxh:12471klzzwxh:12472klzzwxh:12473klzzwxh:12474klzzwxh:12475klzzwxh:12476klzzwxh:12477klzzwxh:12478klzzwxh:12479klzzwxh:12480 klzzwxh:12427expr klzzwxh:12428$x2 + 5klzzwxh:12429klzzwxh:12430 klzzwxh:12431expr klzzwxh:12432$y2 + 5klzzwxh:12433klzzwxh:12434klzzwxh:12491klzzwxh:12481klzzwxh:12482klzzwxh:12483klzzwxh:12484klzzwxh:12485klzzwxh:12486klzzwxh:12487klzzwxh:12488klzzwxh:12489 klzzwxh:12435

    klzzwxh:12695klzzwxh:12696klzzwxh:12697klzzwxh:12698klzzwxh:12699klzzwxh:12700klzzwxh:12701 if klzzwxh:12492klzzwxh:12493info exists currklzzwxh:12494xklzzwxh:12495klzzwxh:12496 klzzwxh:12497klzzwxh:13372klzzwxh:12702klzzwxh:12703klzzwxh:12704klzzwxh:12705klzzwxh:12706klzzwxh:12707klzzwxh:12708klzzwxh:12709klzzwxh:12710 set canvklzzwxh:12498width klzzwxh:12499$logcanvas.canvas cget -widthklzzwxh:12500klzzwxh:13373klzzwxh:12711klzzwxh:12712klzzwxh:12713klzzwxh:12714klzzwxh:12715klzzwxh:12716klzzwxh:12717klzzwxh:12718klzzwxh:12719 set canvklzzwxh:12501height klzzwxh:12502$logcanvas.canvas cget -heightklzzwxh:12503klzzwxh:13374klzzwxh:12720klzzwxh:12721klzzwxh:12722klzzwxh:12723klzzwxh:12724klzzwxh:12725klzzwxh:12726klzzwxh:12727klzzwxh:12728 set bbox klzzwxh:12504$logcanvas.canvas bbox allklzzwxh:12505klzzwxh:13375klzzwxh:12729klzzwxh:12730klzzwxh:12731klzzwxh:12732klzzwxh:12733klzzwxh:12734klzzwxh:12735klzzwxh:12736klzzwxh:12737 set llx klzzwxh:12506lindex $bbox 0klzzwxh:12507klzzwxh:13376klzzwxh:12738klzzwxh:12739klzzwxh:12740klzzwxh:12741klzzwxh:12742klzzwxh:12743klzzwxh:12744klzzwxh:12745klzzwxh:12746 set lly klzzwxh:12508lindex $bbox 1klzzwxh:12509klzzwxh:13377klzzwxh:12747klzzwxh:12748klzzwxh:12749klzzwxh:12750klzzwxh:12751klzzwxh:12752klzzwxh:12753klzzwxh:12754klzzwxh:12755 set urx klzzwxh:12510lindex $bbox 2klzzwxh:12511klzzwxh:13378klzzwxh:12756klzzwxh:12757klzzwxh:12758klzzwxh:12759klzzwxh:12760klzzwxh:12761klzzwxh:12762klzzwxh:12763klzzwxh:12764 set ury klzzwxh:12512lindex $bbox 3klzzwxh:12513klzzwxh:13379klzzwxh:12765klzzwxh:12766klzzwxh:12767klzzwxh:12768klzzwxh:12769klzzwxh:12770klzzwxh:12771klzzwxh:12772klzzwxh:12773 set bboxklzzwxh:12514width klzzwxh:12515expr klzzwxh:12516$urx - $llxklzzwxh:12517klzzwxh:12518klzzwxh:13380klzzwxh:12774klzzwxh:12775klzzwxh:12776klzzwxh:12777klzzwxh:12778klzzwxh:12779klzzwxh:12780klzzwxh:12781klzzwxh:12782 set bboxklzzwxh:12519height klzzwxh:12520expr klzzwxh:12521$ury - $llyklzzwxh:12522klzzwxh:12523klzzwxh:13381klzzwxh:12783klzzwxh:12784klzzwxh:12785klzzwxh:12786klzzwxh:12787klzzwxh:12788klzzwxh:12789klzzwxh:12790klzzwxh:12791 genklzzwxh:12524log:log D klzzwxh:12792diagram size: $bboxklzzwxh:12525width x $bboxklzzwxh:12526heightklzzwxh:12793klzzwxh:13382klzzwxh:12794klzzwxh:12795klzzwxh:12796klzzwxh:12797klzzwxh:12798klzzwxh:12799klzzwxh:12800klzzwxh:12801klzzwxh:12802 genklzzwxh:12527log:log D klzzwxh:12803canvas size:klzzwxh:12804 $canvklzzwxh:12528width x $canvklzzwxh:12529heightklzzwxh:12805klzzwxh:13383klzzwxh:12806klzzwxh:12807klzzwxh:12808klzzwxh:12809klzzwxh:12810klzzwxh:12811klzzwxh:12812klzzwxh:12813klzzwxh:12814 set canvklzzwxh:12530bot klzzwxh:12531expr klzzwxh:12532$ury - $canvklzzwxh:12533heightklzzwxh:12534klzzwxh:12535klzzwxh:13384klzzwxh:12815klzzwxh:12816klzzwxh:12817klzzwxh:12818klzzwxh:12819klzzwxh:12820klzzwxh:12821klzzwxh:12822klzzwxh:12823 set viewklzzwxh:12536y klzzwxh:12537expr klzzwxh:12538$canvklzzwxh:12539bot - $uryklzzwxh:12540klzzwxh:12541klzzwxh:13385klzzwxh:12824klzzwxh:12825klzzwxh:12826klzzwxh:12827klzzwxh:12828klzzwxh:12829klzzwxh:12830klzzwxh:12831klzzwxh:12832 genklzzwxh:12542log:log D klzzwxh:12833bbox:klzzwxh:12834klzzwxh:12835klzzwxh:12836klzzwxh:12837klzzwxh:12838klzzwxh:12839klzzwxh:12840klzzwxh:12841 $bboxklzzwxh:12842klzzwxh:13386klzzwxh:12843klzzwxh:12844klzzwxh:12845klzzwxh:12846klzzwxh:12847klzzwxh:12848klzzwxh:12849klzzwxh:12850klzzwxh:12851 genklzzwxh:12543log:log D klzzwxh:12852canvas view:klzzwxh:12853 $llx $canvklzzwxh:12544botklzzwxh:12854 $canvklzzwxh:12545width $viewklzzwxh:12546yklzzwxh:12855klzzwxh:13387klzzwxh:12856klzzwxh:12857klzzwxh:12858klzzwxh:12859klzzwxh:12860klzzwxh:12861klzzwxh:12862klzzwxh:12863klzzwxh:12864 genklzzwxh:12547log:log D klzzwxh:12865curr x klzzwxh:12866 y:klzzwxh:12867 $currklzzwxh:12548x, $currklzzwxh:12549yklzzwxh:12868klzzwxh:13388klzzwxh:12869klzzwxh:12870klzzwxh:12871klzzwxh:12872klzzwxh:12873klzzwxh:12874klzzwxh:12875klzzwxh:12876klzzwxh:12877 genklzzwxh:12550log:log D klzzwxh:12878x: klzzwxh:12551currklzzwxh:12552x $currklzzwxh:12553xklzzwxh:12554 klzzwxh:12879? klzzwxh:12555canvklzzwxh:12556width $canvklzzwxh:12557widthklzzwxh:12558klzzwxh:12880klzzwxh:13389klzzwxh:12881klzzwxh:12882klzzwxh:12883klzzwxh:12884klzzwxh:12885klzzwxh:12886klzzwxh:12887klzzwxh:12888klzzwxh:12889 if klzzwxh:12559$currklzzwxh:12560x klzzwxh:12890 $canvklzzwxh:12561widthklzzwxh:12562 klzzwxh:12563klzzwxh:13390klzzwxh:12891klzzwxh:12892klzzwxh:12893klzzwxh:12894klzzwxh:12895klzzwxh:12896klzzwxh:12897klzzwxh:12898klzzwxh:12899klzzwxh:12900klzzwxh:12901 set distklzzwxh:12564x klzzwxh:12565expr klzzwxh:12566$currklzzwxh:12567x - $canvklzzwxh:12568width/2klzzwxh:12569klzzwxh:12570klzzwxh:13391klzzwxh:12902klzzwxh:12903klzzwxh:12904klzzwxh:12905klzzwxh:12906klzzwxh:12907klzzwxh:12908klzzwxh:12909klzzwxh:12910klzzwxh:12911klzzwxh:12912 set distklzzwxh:12571x klzzwxh:12572expr klzzwxh:12573$distklzzwxh:12574x - 3 klzzwxh:12575 klzzwxh:12576font measure $fontklzzwxh:12577bold klzzwxh:12578klzzwxh:12913klzzwxh:12914klzzwxh:12915klzzwxh:12916klzzwxh:12917klzzwxh:12918klzzwxh:12919klzzwxh:12920klzzwxh:12921klzzwxh:12922klzzwxh:12923klzzwxh:12924klzzwxh:12925klzzwxh:12926klzzwxh:12927klzzwxh:12928klzzwxh:12929klzzwxh:12930klzzwxh:12931klzzwxh:12932 -displayof $logcanvas.canvas klzzwxh:12579You areklzzwxh:12580klzzwxh:12581klzzwxh:12582klzzwxh:12583klzzwxh:13392klzzwxh:12933klzzwxh:12934klzzwxh:12935klzzwxh:12936klzzwxh:12937klzzwxh:12938klzzwxh:12939klzzwxh:12940klzzwxh:12941klzzwxh:12942klzzwxh:12943 genklzzwxh:12584log:log D klzzwxh:12944positioning x:klzzwxh:12945 new x $distklzzwxh:12585xklzzwxh:12946klzzwxh:13393klzzwxh:12947klzzwxh:12948klzzwxh:12949klzzwxh:12950klzzwxh:12951klzzwxh:12952klzzwxh:12953klzzwxh:12954klzzwxh:12955 klzzwxh:12586 else klzzwxh:12587klzzwxh:13394klzzwxh:12956klzzwxh:12957klzzwxh:12958klzzwxh:12959klzzwxh:12960klzzwxh:12961klzzwxh:12962klzzwxh:12963klzzwxh:12964klzzwxh:12965klzzwxh:12966 genklzzwxh:12588log:log D klzzwxh:12967not re-positioning xklzzwxh:12968klzzwxh:13395klzzwxh:12969klzzwxh:12970klzzwxh:12971klzzwxh:12972klzzwxh:12973klzzwxh:12974klzzwxh:12975klzzwxh:12976klzzwxh:12977klzzwxh:12978klzzwxh:12979 set distklzzwxh:12589x 0klzzwxh:13396klzzwxh:12980klzzwxh:12981klzzwxh:12982klzzwxh:12983klzzwxh:12984klzzwxh:12985klzzwxh:12986klzzwxh:12987klzzwxh:12988 klzzwxh:12590klzzwxh:13397klzzwxh:12989klzzwxh:12990klzzwxh:12991klzzwxh:12992klzzwxh:12993klzzwxh:12994klzzwxh:12995klzzwxh:12996klzzwxh:12997 genklzzwxh:12591log:log D klzzwxh:12998y: klzzwxh:12592currklzzwxh:12593y $currklzzwxh:12594yklzzwxh:12595 klzzwxh:12999? klzzwxh:12596viewklzzwxh:12597y $viewklzzwxh:12598yklzzwxh:12599klzzwxh:13000klzzwxh:13398klzzwxh:13001klzzwxh:13002klzzwxh:13003klzzwxh:13004klzzwxh:13005klzzwxh:13006klzzwxh:13007klzzwxh:13008klzzwxh:13009 if klzzwxh:12600$currklzzwxh:12601y klzzwxh:13010 $viewklzzwxh:12602yklzzwxh:12603 klzzwxh:12604klzzwxh:13399klzzwxh:13011klzzwxh:13012klzzwxh:13013klzzwxh:13014klzzwxh:13015klzzwxh:13016klzzwxh:13017klzzwxh:13018klzzwxh:13019klzzwxh:13020klzzwxh:13021 set distklzzwxh:12605y klzzwxh:12606expr klzzwxh:12607$currklzzwxh:12608y - $llyklzzwxh:12609klzzwxh:12610klzzwxh:13400klzzwxh:13022klzzwxh:13023klzzwxh:13024klzzwxh:13025klzzwxh:13026klzzwxh:13027klzzwxh:13028klzzwxh:13029klzzwxh:13030klzzwxh:13031klzzwxh:13032 klzzwxh:12611genklzzwxh:12612log:log D klzzwxh:13033 $currklzzwxh:12613y is $distklzzwxh:12614y pixels from the topklzzwxh:13034klzzwxh:13401klzzwxh:13035klzzwxh:13036klzzwxh:13037klzzwxh:13038klzzwxh:13039klzzwxh:13040klzzwxh:13041klzzwxh:13042klzzwxh:13043klzzwxh:13044klzzwxh:13045 set distklzzwxh:12615y klzzwxh:12616expr klzzwxh:12617$distklzzwxh:12618y - 2 klzzwxh:12619 klzzwxh:12620image height Manklzzwxh:12621klzzwxh:12622klzzwxh:12623klzzwxh:13402klzzwxh:13046klzzwxh:13047klzzwxh:13048klzzwxh:13049klzzwxh:13050klzzwxh:13051klzzwxh:13052klzzwxh:13053klzzwxh:13054klzzwxh:13055klzzwxh:13056 genklzzwxh:12624log:log D klzzwxh:13057positioning y:klzzwxh:13058 new y $distklzzwxh:12625yklzzwxh:13059klzzwxh:13403klzzwxh:13060klzzwxh:13061klzzwxh:13062klzzwxh:13063klzzwxh:13064klzzwxh:13065klzzwxh:13066klzzwxh:13067klzzwxh:13068 klzzwxh:12626 else klzzwxh:12627klzzwxh:13404klzzwxh:13069klzzwxh:13070klzzwxh:13071klzzwxh:13072klzzwxh:13073klzzwxh:13074klzzwxh:13075klzzwxh:13076klzzwxh:13077klzzwxh:13078klzzwxh:13079 genklzzwxh:12628log:log D klzzwxh:13080not re-positioning yklzzwxh:13081klzzwxh:13405klzzwxh:13082klzzwxh:13083klzzwxh:13084klzzwxh:13085klzzwxh:13086klzzwxh:13087klzzwxh:13088klzzwxh:13089klzzwxh:13090klzzwxh:13091klzzwxh:13092 set distklzzwxh:12629y 0klzzwxh:13406klzzwxh:13093klzzwxh:13094klzzwxh:13095klzzwxh:13096klzzwxh:13097klzzwxh:13098klzzwxh:13099klzzwxh:13100klzzwxh:13101 klzzwxh:12630klzzwxh:13407klzzwxh:13102klzzwxh:13103klzzwxh:13104klzzwxh:13105klzzwxh:13106klzzwxh:13107klzzwxh:13108klzzwxh:13109klzzwxh:13110 klzzwxh:12631 Multiplying by 1.0 keeps it from being rounded to an intklzzwxh:13408klzzwxh:13111klzzwxh:13112klzzwxh:13113klzzwxh:13114klzzwxh:13115klzzwxh:13116klzzwxh:13117klzzwxh:13118klzzwxh:13119 set xklzzwxh:12632proportion klzzwxh:12633expr klzzwxh:12634klzzwxh:12635$distklzzwxh:12636x klzzwxh:12637 1.0klzzwxh:12638 / klzzwxh:12639$bboxklzzwxh:12640width klzzwxh:12641 1.0klzzwxh:12642klzzwxh:12643klzzwxh:12644klzzwxh:13409klzzwxh:13120klzzwxh:13121klzzwxh:13122klzzwxh:13123klzzwxh:13124klzzwxh:13125klzzwxh:13126klzzwxh:13127klzzwxh:13128 set viewklzzwxh:12645xoff $xklzzwxh:12646proportionklzzwxh:13410klzzwxh:13129klzzwxh:13130klzzwxh:13131klzzwxh:13132klzzwxh:13133klzzwxh:13134klzzwxh:13135klzzwxh:13136klzzwxh:13137 set yklzzwxh:12647proportion klzzwxh:12648expr klzzwxh:12649klzzwxh:12650$distklzzwxh:12651y klzzwxh:12652 1.0klzzwxh:12653 / klzzwxh:12654$bboxklzzwxh:12655height klzzwxh:12656 1.0klzzwxh:12657klzzwxh:12658klzzwxh:12659klzzwxh:13411klzzwxh:13138klzzwxh:13139klzzwxh:13140klzzwxh:13141klzzwxh:13142klzzwxh:13143klzzwxh:13144klzzwxh:13145klzzwxh:13146 set viewklzzwxh:12660yoff $yklzzwxh:12661proportionklzzwxh:13412klzzwxh:13147klzzwxh:13148klzzwxh:13149klzzwxh:13150klzzwxh:13151klzzwxh:13152klzzwxh:13153 klzzwxh:12662klzzwxh:13413klzzwxh:13154klzzwxh:13155klzzwxh:13156klzzwxh:13157klzzwxh:13158klzzwxh:13159klzzwxh:13160 genklzzwxh:12663log:log D klzzwxh:13161set offset $viewklzzwxh:12664xoff $viewklzzwxh:12665yoffklzzwxh:13162klzzwxh:13414klzzwxh:13163klzzwxh:13164klzzwxh:13165klzzwxh:13166klzzwxh:13167klzzwxh:13168klzzwxh:13169 $logcanvas.canvas xview moveto $viewklzzwxh:12666xoffklzzwxh:13415klzzwxh:13170klzzwxh:13171klzzwxh:13172klzzwxh:13173klzzwxh:13174klzzwxh:13175klzzwxh:13176 $logcanvas.canvas yview moveto $viewklzzwxh:12667yoffklzzwxh:13416klzzwxh:13177klzzwxh:13178klzzwxh:13179klzzwxh:13180klzzwxh:13181klzzwxh:13182klzzwxh:13183 updateklzzwxh:13417klzzwxh:13184klzzwxh:13185klzzwxh:13186klzzwxh:13187klzzwxh:13188klzzwxh:13189klzzwxh:13190 klzzwxh:12668genklzzwxh:12669log:log T klzzwxh:13191LEAVEklzzwxh:13192klzzwxh:13418klzzwxh:13193klzzwxh:13194klzzwxh:13195klzzwxh:13196klzzwxh:13197klzzwxh:13198klzzwxh:13199 returnklzzwxh:13419klzzwxh:13200klzzwxh:13201klzzwxh:13202klzzwxh:13203klzzwxh:13204 klzzwxh:12670klzzwxh:13420klzzwxh:13205 klzzwxh:13421klzzwxh:13206klzzwxh:13207klzzwxh:13208klzzwxh:13209klzzwxh:13210 proc DrawTree klzzwxh:12671 klzzwxh:12672now klzzwxh:12673klzzwxh:12674klzzwxh:12675 klzzwxh:12676 klzzwxh:12677klzzwxh:13422klzzwxh:13211klzzwxh:13212klzzwxh:13213klzzwxh:13214klzzwxh:13215klzzwxh:13216klzzwxh:13217 global cvscfgklzzwxh:13423klzzwxh:13218klzzwxh:13219klzzwxh:13220klzzwxh:13221klzzwxh:13222klzzwxh:13223klzzwxh:13224 global logcfgklzzwxh:13424klzzwxh:13225klzzwxh:13226klzzwxh:13227klzzwxh:13228klzzwxh:13229klzzwxh:13230klzzwxh:13231 variable scopeklzzwxh:13425klzzwxh:13232klzzwxh:13233klzzwxh:13234klzzwxh:13235klzzwxh:13236klzzwxh:13237klzzwxh:13238 variable afterklzzwxh:12678idklzzwxh:12679drawklzzwxh:13426klzzwxh:13239klzzwxh:13240klzzwxh:13241klzzwxh:13242klzzwxh:13243klzzwxh:13244klzzwxh:13245 variable logcanvasklzzwxh:13427klzzwxh:13246klzzwxh:13247klzzwxh:13248klzzwxh:13249klzzwxh:13250klzzwxh:13251klzzwxh:13252 variable boxklzzwxh:12680heightklzzwxh:13428klzzwxh:13253klzzwxh:13254klzzwxh:13255klzzwxh:13256klzzwxh:13257klzzwxh:13258klzzwxh:13259 variable rootklzzwxh:12681infoklzzwxh:13429klzzwxh:13260klzzwxh:13261klzzwxh:13262klzzwxh:13263klzzwxh:13264klzzwxh:13265klzzwxh:13266 variable fromtags klzzwxh:12682klzzwxh:12683klzzwxh:13430klzzwxh:13267klzzwxh:13268klzzwxh:13269klzzwxh:13270klzzwxh:13271klzzwxh:13272klzzwxh:13273 variable totags klzzwxh:12684klzzwxh:12685klzzwxh:13431klzzwxh:13274klzzwxh:13275klzzwxh:13276klzzwxh:13277klzzwxh:13278klzzwxh:13279klzzwxh:13280 variable toprefixklzzwxh:13432klzzwxh:13281klzzwxh:13282klzzwxh:13283klzzwxh:13284klzzwxh:13285klzzwxh:13286klzzwxh:13287 variable fromprefixklzzwxh:13433klzzwxh:13288klzzwxh:13289klzzwxh:13290klzzwxh:13291klzzwxh:13292klzzwxh:13293klzzwxh:13294 variable xyklzzwxh:13434klzzwxh:13295klzzwxh:13296klzzwxh:13297klzzwxh:13298klzzwxh:13299klzzwxh:13300klzzwxh:13301 variable boxwidthklzzwxh:13435klzzwxh:13302klzzwxh:13303klzzwxh:13304klzzwxh:13305klzzwxh:13306klzzwxh:13307klzzwxh:13308 variable viewklzzwxh:12686xoffklzzwxh:13436klzzwxh:13309klzzwxh:13310klzzwxh:13311klzzwxh:13312klzzwxh:13313klzzwxh:13314klzzwxh:13315 variable viewklzzwxh:12687yoffklzzwxh:13437klzzwxh:13316klzzwxh:13317klzzwxh:13318klzzwxh:13319klzzwxh:13320klzzwxh:13321klzzwxh:13322 variable currklzzwxh:13438klzzwxh:13323klzzwxh:13324klzzwxh:13325klzzwxh:13326klzzwxh:13327klzzwxh:13328klzzwxh:13329 variable optklzzwxh:13439klzzwxh:13330klzzwxh:13331klzzwxh:13332klzzwxh:13333klzzwxh:13334klzzwxh:13335klzzwxh:13336 variable revklzzwxh:12688infoklzzwxh:13440klzzwxh:13337klzzwxh:13338klzzwxh:13339klzzwxh:13340klzzwxh:13341klzzwxh:13342klzzwxh:13343 variable scaleklzzwxh:13441klzzwxh:13344klzzwxh:13345klzzwxh:13346klzzwxh:13347klzzwxh:13348klzzwxh:13349klzzwxh:13350 variable fontklzzwxh:12689normklzzwxh:13442klzzwxh:13351klzzwxh:13352klzzwxh:13353klzzwxh:13354klzzwxh:13355klzzwxh:13356klzzwxh:13357 variable fontklzzwxh:12690normklzzwxh:12691hklzzwxh:13443klzzwxh:13358klzzwxh:13359klzzwxh:13360klzzwxh:13361klzzwxh:13362klzzwxh:13363klzzwxh:13364 variable fontklzzwxh:12692boldklzzwxh:13444klzzwxh:13365klzzwxh:13366klzzwxh:13367klzzwxh:13368klzzwxh:13369klzzwxh:13370klzzwxh:13371 variable fontklzzwxh:12693boldklzzwxh:12694h

    klzzwxh:13445klzzwxh:13446klzzwxh:13447klzzwxh:13448klzzwxh:13449klzzwxh:13450klzzwxh:13451 variable revwhoklzzwxh:13529klzzwxh:13452klzzwxh:13453klzzwxh:13454klzzwxh:13455klzzwxh:13456klzzwxh:13457klzzwxh:13458 variable revdateklzzwxh:13530klzzwxh:13459klzzwxh:13460klzzwxh:13461klzzwxh:13462klzzwxh:13463klzzwxh:13464klzzwxh:13465 variable revtimeklzzwxh:13531klzzwxh:13466klzzwxh:13467klzzwxh:13468klzzwxh:13469klzzwxh:13470klzzwxh:13471klzzwxh:13472 variable revcommentklzzwxh:13532klzzwxh:13473klzzwxh:13474klzzwxh:13475klzzwxh:13476klzzwxh:13477klzzwxh:13478klzzwxh:13479 variable revstateklzzwxh:13533klzzwxh:13480klzzwxh:13481klzzwxh:13482klzzwxh:13483klzzwxh:13484klzzwxh:13485klzzwxh:13486 variable revtagsklzzwxh:13534klzzwxh:13487klzzwxh:13488klzzwxh:13489klzzwxh:13490klzzwxh:13491klzzwxh:13492klzzwxh:13493 variable revbtagsklzzwxh:13535klzzwxh:13494klzzwxh:13495klzzwxh:13496klzzwxh:13497klzzwxh:13498klzzwxh:13499klzzwxh:13500 variable revpathklzzwxh:13536klzzwxh:13501klzzwxh:13502klzzwxh:13503klzzwxh:13504klzzwxh:13505klzzwxh:13506klzzwxh:13507 variable revkindklzzwxh:13537klzzwxh:13508klzzwxh:13509klzzwxh:13510klzzwxh:13511klzzwxh:13512klzzwxh:13513klzzwxh:13514 variable revbranchesklzzwxh:13538klzzwxh:13515klzzwxh:13516klzzwxh:13517klzzwxh:13518klzzwxh:13519klzzwxh:13520klzzwxh:13521 variable branchrevsklzzwxh:13539klzzwxh:13522klzzwxh:13523klzzwxh:13524klzzwxh:13525klzzwxh:13526klzzwxh:13527klzzwxh:13528 variable match

    klzzwxh:13543klzzwxh:13544klzzwxh:13545klzzwxh:13546klzzwxh:13547klzzwxh:13548klzzwxh:13549 genklzzwxh:13540log:log T klzzwxh:13550ENTER klzzwxh:13541$nowklzzwxh:13542klzzwxh:13551

    klzzwxh:13706klzzwxh:13707klzzwxh:13708klzzwxh:13709klzzwxh:13710klzzwxh:13711klzzwxh:13712 catch klzzwxh:13552 unset revwho klzzwxh:13553klzzwxh:14036klzzwxh:13713klzzwxh:13714klzzwxh:13715klzzwxh:13716klzzwxh:13717klzzwxh:13718klzzwxh:13719 foreach a klzzwxh:13554array names $scopeklzzwxh:13555:revwhoklzzwxh:13556 klzzwxh:13557klzzwxh:14037klzzwxh:13720klzzwxh:13721klzzwxh:13722klzzwxh:13723klzzwxh:13724klzzwxh:13725klzzwxh:13726klzzwxh:13727klzzwxh:13728 set revwhoklzzwxh:13558$aklzzwxh:13559 klzzwxh:13560set $scopeklzzwxh:13561:revwhoklzzwxh:13562$aklzzwxh:13563klzzwxh:13564klzzwxh:14038klzzwxh:13729klzzwxh:13730klzzwxh:13731klzzwxh:13732klzzwxh:13733klzzwxh:13734klzzwxh:13735 klzzwxh:13565klzzwxh:14039klzzwxh:13736klzzwxh:13737klzzwxh:13738klzzwxh:13739klzzwxh:13740klzzwxh:13741klzzwxh:13742 catch klzzwxh:13566 unset revdate klzzwxh:13567klzzwxh:14040klzzwxh:13743klzzwxh:13744klzzwxh:13745klzzwxh:13746klzzwxh:13747klzzwxh:13748klzzwxh:13749 foreach a klzzwxh:13568array names $scopeklzzwxh:13569:revdateklzzwxh:13570 klzzwxh:13571klzzwxh:14041klzzwxh:13750klzzwxh:13751klzzwxh:13752klzzwxh:13753klzzwxh:13754klzzwxh:13755klzzwxh:13756klzzwxh:13757klzzwxh:13758 set revdateklzzwxh:13572$aklzzwxh:13573 klzzwxh:13574set $scopeklzzwxh:13575:revdateklzzwxh:13576$aklzzwxh:13577klzzwxh:13578klzzwxh:14042klzzwxh:13759klzzwxh:13760klzzwxh:13761klzzwxh:13762klzzwxh:13763klzzwxh:13764klzzwxh:13765 klzzwxh:13579klzzwxh:14043klzzwxh:13766klzzwxh:13767klzzwxh:13768klzzwxh:13769klzzwxh:13770klzzwxh:13771klzzwxh:13772 catch klzzwxh:13580 unset revtime klzzwxh:13581klzzwxh:14044klzzwxh:13773klzzwxh:13774klzzwxh:13775klzzwxh:13776klzzwxh:13777klzzwxh:13778klzzwxh:13779 foreach a klzzwxh:13582array names $scopeklzzwxh:13583:revtimeklzzwxh:13584 klzzwxh:13585klzzwxh:14045klzzwxh:13780klzzwxh:13781klzzwxh:13782klzzwxh:13783klzzwxh:13784klzzwxh:13785klzzwxh:13786klzzwxh:13787klzzwxh:13788 set revtimeklzzwxh:13586$aklzzwxh:13587 klzzwxh:13588set $scopeklzzwxh:13589:revtimeklzzwxh:13590$aklzzwxh:13591klzzwxh:13592klzzwxh:14046klzzwxh:13789klzzwxh:13790klzzwxh:13791klzzwxh:13792klzzwxh:13793klzzwxh:13794klzzwxh:13795 klzzwxh:13593klzzwxh:14047klzzwxh:13796klzzwxh:13797klzzwxh:13798klzzwxh:13799klzzwxh:13800klzzwxh:13801klzzwxh:13802 catch klzzwxh:13594 unset revcomment klzzwxh:13595klzzwxh:14048klzzwxh:13803klzzwxh:13804klzzwxh:13805klzzwxh:13806klzzwxh:13807klzzwxh:13808klzzwxh:13809 foreach a klzzwxh:13596array names $scopeklzzwxh:13597:revcommentklzzwxh:13598 klzzwxh:13599klzzwxh:14049klzzwxh:13810klzzwxh:13811klzzwxh:13812klzzwxh:13813klzzwxh:13814klzzwxh:13815klzzwxh:13816klzzwxh:13817klzzwxh:13818 set revcommentklzzwxh:13600$aklzzwxh:13601 klzzwxh:13602set $scopeklzzwxh:13603:revcommentklzzwxh:13604$aklzzwxh:13605klzzwxh:13606klzzwxh:14050klzzwxh:13819klzzwxh:13820klzzwxh:13821klzzwxh:13822klzzwxh:13823klzzwxh:13824klzzwxh:13825 klzzwxh:13607klzzwxh:14051klzzwxh:13826klzzwxh:13827klzzwxh:13828klzzwxh:13829klzzwxh:13830klzzwxh:13831klzzwxh:13832 catch klzzwxh:13608 unset revstate klzzwxh:13609klzzwxh:14052klzzwxh:13833klzzwxh:13834klzzwxh:13835klzzwxh:13836klzzwxh:13837klzzwxh:13838klzzwxh:13839 foreach a klzzwxh:13610array names $scopeklzzwxh:13611:revstateklzzwxh:13612 klzzwxh:13613klzzwxh:14053klzzwxh:13840klzzwxh:13841klzzwxh:13842klzzwxh:13843klzzwxh:13844klzzwxh:13845klzzwxh:13846klzzwxh:13847klzzwxh:13848 set revstateklzzwxh:13614$aklzzwxh:13615 klzzwxh:13616set $scopeklzzwxh:13617:revstateklzzwxh:13618$aklzzwxh:13619klzzwxh:13620klzzwxh:14054klzzwxh:13849klzzwxh:13850klzzwxh:13851klzzwxh:13852klzzwxh:13853klzzwxh:13854klzzwxh:13855 klzzwxh:13621klzzwxh:14055klzzwxh:13856klzzwxh:13857klzzwxh:13858klzzwxh:13859klzzwxh:13860klzzwxh:13861klzzwxh:13862 catch klzzwxh:13622 unset revtags klzzwxh:13623klzzwxh:14056klzzwxh:13863klzzwxh:13864klzzwxh:13865klzzwxh:13866klzzwxh:13867klzzwxh:13868klzzwxh:13869 foreach a klzzwxh:13624array names $scopeklzzwxh:13625:revtagsklzzwxh:13626 klzzwxh:13627klzzwxh:14057klzzwxh:13870klzzwxh:13871klzzwxh:13872klzzwxh:13873klzzwxh:13874klzzwxh:13875klzzwxh:13876klzzwxh:13877klzzwxh:13878 set revtagsklzzwxh:13628$aklzzwxh:13629 klzzwxh:13630set $scopeklzzwxh:13631:revtagsklzzwxh:13632$aklzzwxh:13633klzzwxh:13634klzzwxh:14058klzzwxh:13879klzzwxh:13880klzzwxh:13881klzzwxh:13882klzzwxh:13883klzzwxh:13884klzzwxh:13885 klzzwxh:13635klzzwxh:14059klzzwxh:13886klzzwxh:13887klzzwxh:13888klzzwxh:13889klzzwxh:13890klzzwxh:13891klzzwxh:13892 catch klzzwxh:13636 unset revbtags klzzwxh:13637klzzwxh:14060klzzwxh:13893klzzwxh:13894klzzwxh:13895klzzwxh:13896klzzwxh:13897klzzwxh:13898klzzwxh:13899 foreach a klzzwxh:13638array names $scopeklzzwxh:13639:revbtagsklzzwxh:13640 klzzwxh:13641klzzwxh:14061klzzwxh:13900klzzwxh:13901klzzwxh:13902klzzwxh:13903klzzwxh:13904klzzwxh:13905klzzwxh:13906klzzwxh:13907klzzwxh:13908 set revbtagsklzzwxh:13642$aklzzwxh:13643 klzzwxh:13644set $scopeklzzwxh:13645:revbtagsklzzwxh:13646$aklzzwxh:13647klzzwxh:13648klzzwxh:14062klzzwxh:13909klzzwxh:13910klzzwxh:13911klzzwxh:13912klzzwxh:13913klzzwxh:13914klzzwxh:13915 klzzwxh:13649klzzwxh:14063klzzwxh:13916klzzwxh:13917klzzwxh:13918klzzwxh:13919klzzwxh:13920klzzwxh:13921klzzwxh:13922 catch klzzwxh:13650 unset revpath klzzwxh:13651klzzwxh:14064klzzwxh:13923klzzwxh:13924klzzwxh:13925klzzwxh:13926klzzwxh:13927klzzwxh:13928klzzwxh:13929 foreach a klzzwxh:13652array names $scopeklzzwxh:13653:revpathklzzwxh:13654 klzzwxh:13655klzzwxh:14065klzzwxh:13930klzzwxh:13931klzzwxh:13932klzzwxh:13933klzzwxh:13934klzzwxh:13935klzzwxh:13936klzzwxh:13937klzzwxh:13938 set revpathklzzwxh:13656$aklzzwxh:13657 klzzwxh:13658set $scopeklzzwxh:13659:revpathklzzwxh:13660$aklzzwxh:13661klzzwxh:13662klzzwxh:14066klzzwxh:13939klzzwxh:13940klzzwxh:13941klzzwxh:13942klzzwxh:13943klzzwxh:13944klzzwxh:13945 klzzwxh:13663klzzwxh:14067klzzwxh:13946klzzwxh:13947klzzwxh:13948klzzwxh:13949klzzwxh:13950klzzwxh:13951klzzwxh:13952 catch klzzwxh:13664 unset revbranches klzzwxh:13665klzzwxh:14068klzzwxh:13953klzzwxh:13954klzzwxh:13955klzzwxh:13956klzzwxh:13957klzzwxh:13958klzzwxh:13959 foreach a klzzwxh:13666array names $scopeklzzwxh:13667:revbranchesklzzwxh:13668 klzzwxh:13669klzzwxh:14069klzzwxh:13960klzzwxh:13961klzzwxh:13962klzzwxh:13963klzzwxh:13964klzzwxh:13965klzzwxh:13966klzzwxh:13967klzzwxh:13968 set revbranchesklzzwxh:13670$aklzzwxh:13671 klzzwxh:13672set $scopeklzzwxh:13673:revbranchesklzzwxh:13674$aklzzwxh:13675klzzwxh:13676klzzwxh:14070klzzwxh:13969klzzwxh:13970klzzwxh:13971klzzwxh:13972klzzwxh:13973klzzwxh:13974klzzwxh:13975 klzzwxh:13677klzzwxh:14071klzzwxh:13976klzzwxh:13977klzzwxh:13978klzzwxh:13979klzzwxh:13980klzzwxh:13981klzzwxh:13982 catch klzzwxh:13678 unset revkind klzzwxh:13679klzzwxh:14072klzzwxh:13983klzzwxh:13984klzzwxh:13985klzzwxh:13986klzzwxh:13987klzzwxh:13988klzzwxh:13989 foreach a klzzwxh:13680array names $scopeklzzwxh:13681:revkindklzzwxh:13682 klzzwxh:13683klzzwxh:14073klzzwxh:13990klzzwxh:13991klzzwxh:13992klzzwxh:13993klzzwxh:13994klzzwxh:13995klzzwxh:13996klzzwxh:13997klzzwxh:13998 set revkindklzzwxh:13684$aklzzwxh:13685 klzzwxh:13686set $scopeklzzwxh:13687:revkindklzzwxh:13688$aklzzwxh:13689klzzwxh:13690klzzwxh:14074klzzwxh:13999klzzwxh:14000klzzwxh:14001klzzwxh:14002klzzwxh:14003klzzwxh:14004klzzwxh:14005 klzzwxh:13691klzzwxh:14075klzzwxh:14006klzzwxh:14007klzzwxh:14008klzzwxh:14009klzzwxh:14010klzzwxh:14011klzzwxh:14012 catch klzzwxh:13692 unset branchrevs klzzwxh:13693klzzwxh:14076klzzwxh:14013klzzwxh:14014klzzwxh:14015klzzwxh:14016klzzwxh:14017klzzwxh:14018klzzwxh:14019 foreach a klzzwxh:13694array names $scopeklzzwxh:13695:branchrevsklzzwxh:13696 klzzwxh:13697klzzwxh:14077klzzwxh:14020klzzwxh:14021klzzwxh:14022klzzwxh:14023klzzwxh:14024klzzwxh:14025klzzwxh:14026klzzwxh:14027klzzwxh:14028 set branchrevsklzzwxh:13698$aklzzwxh:13699 klzzwxh:13700set $scopeklzzwxh:13701:branchrevsklzzwxh:13702$aklzzwxh:13703klzzwxh:13704klzzwxh:14078klzzwxh:14029klzzwxh:14030klzzwxh:14031klzzwxh:14032klzzwxh:14033klzzwxh:14034klzzwxh:14035 klzzwxh:13705

    klzzwxh:14107klzzwxh:14108klzzwxh:14109klzzwxh:14110klzzwxh:14111klzzwxh:14112klzzwxh:14113 set totagbegin klzzwxh:14079string first klzzwxh:14114klzzwxh:14080BRANCHklzzwxh:14081klzzwxh:14115 $cvscfgklzzwxh:14082mergetoformatklzzwxh:14083 klzzwxh:14084klzzwxh:14139klzzwxh:14116klzzwxh:14117klzzwxh:14118klzzwxh:14119klzzwxh:14120klzzwxh:14121klzzwxh:14122 set fromtagbegin klzzwxh:14085string first klzzwxh:14123klzzwxh:14086BRANCHklzzwxh:14087klzzwxh:14124 $cvscfgklzzwxh:14088mergefromformatklzzwxh:14089 klzzwxh:14090klzzwxh:14140klzzwxh:14125klzzwxh:14126klzzwxh:14127klzzwxh:14128klzzwxh:14129klzzwxh:14130klzzwxh:14131 set fromprefix klzzwxh:14091string range $cvscfgklzzwxh:14092mergefromformatklzzwxh:14093 0 klzzwxh:14094expr klzzwxh:14095$fromtagbegin -1klzzwxh:14096klzzwxh:14097klzzwxh:14098klzzwxh:14141klzzwxh:14132klzzwxh:14133klzzwxh:14134klzzwxh:14135klzzwxh:14136klzzwxh:14137klzzwxh:14138 set toprefix klzzwxh:14099string range $cvscfgklzzwxh:14100mergetoformatklzzwxh:14101 0 klzzwxh:14102expr klzzwxh:14103$totagbegin - 1klzzwxh:14104klzzwxh:14105klzzwxh:14106

    klzzwxh:14268klzzwxh:14269klzzwxh:14270klzzwxh:14271klzzwxh:14272klzzwxh:14273klzzwxh:14274 catch klzzwxh:14142after cancel $afterklzzwxh:14143idklzzwxh:14144drawklzzwxh:14145klzzwxh:14576klzzwxh:14275klzzwxh:14276klzzwxh:14277klzzwxh:14278klzzwxh:14279klzzwxh:14280klzzwxh:14281 busyklzzwxh:14146start $logcanvasklzzwxh:14577klzzwxh:14282klzzwxh:14283klzzwxh:14284klzzwxh:14285klzzwxh:14286klzzwxh:14287klzzwxh:14288 if klzzwxh:14147$now klzzwxh:14148= klzzwxh:14149nowklzzwxh:14150 klzzwxh:14289klzzwxh:14290 klzzwxh:14151info exists logcfgklzzwxh:14152drawklzzwxh:14153delayklzzwxh:14154klzzwxh:14155klzzwxh:14156 klzzwxh:14157klzzwxh:14578klzzwxh:14291klzzwxh:14292klzzwxh:14293klzzwxh:14294klzzwxh:14295klzzwxh:14296klzzwxh:14297klzzwxh:14298klzzwxh:14299 set afterklzzwxh:14158idklzzwxh:14159draw klzzwxh:14160klzzwxh:14300klzzwxh:14301klzzwxh:14302klzzwxh:14303klzzwxh:14304klzzwxh:14305klzzwxh:14306klzzwxh:14307klzzwxh:14308klzzwxh:14309klzzwxh:14310 klzzwxh:14161after $logcfgklzzwxh:14162drawklzzwxh:14163delayklzzwxh:14164 klzzwxh:14165namespace code klzzwxh:14166DrawTree nowklzzwxh:14167klzzwxh:14168klzzwxh:14169klzzwxh:14579klzzwxh:14311klzzwxh:14312klzzwxh:14313klzzwxh:14314klzzwxh:14315klzzwxh:14316klzzwxh:14317 klzzwxh:14170 else klzzwxh:14171klzzwxh:14580klzzwxh:14318klzzwxh:14319klzzwxh:14320klzzwxh:14321klzzwxh:14322klzzwxh:14323klzzwxh:14324klzzwxh:14325klzzwxh:14326 set viewklzzwxh:14172xoff klzzwxh:14173lindex klzzwxh:14174$logcanvas.canvas xviewklzzwxh:14175 0klzzwxh:14176klzzwxh:14581klzzwxh:14327klzzwxh:14328klzzwxh:14329klzzwxh:14330klzzwxh:14331klzzwxh:14332klzzwxh:14333klzzwxh:14334klzzwxh:14335 set viewklzzwxh:14177yoff klzzwxh:14178lindex klzzwxh:14179$logcanvas.canvas yviewklzzwxh:14180 0klzzwxh:14181klzzwxh:14582klzzwxh:14336klzzwxh:14337klzzwxh:14338klzzwxh:14339klzzwxh:14340klzzwxh:14341klzzwxh:14342klzzwxh:14343klzzwxh:14344 $logcanvas.canvas delete allklzzwxh:14583klzzwxh:14345klzzwxh:14346klzzwxh:14347klzzwxh:14348klzzwxh:14349klzzwxh:14350klzzwxh:14351klzzwxh:14352klzzwxh:14353 klzzwxh:14182 These put the names of variables into one variable to be passed.klzzwxh:14584klzzwxh:14354klzzwxh:14355klzzwxh:14356klzzwxh:14357klzzwxh:14358klzzwxh:14359klzzwxh:14360klzzwxh:14361klzzwxh:14362 klzzwxh:14183 Because they're in braces, we don't need to know about theklzzwxh:14585klzzwxh:14363klzzwxh:14364klzzwxh:14365klzzwxh:14366klzzwxh:14367klzzwxh:14368klzzwxh:14369klzzwxh:14370klzzwxh:14371 klzzwxh:14184 variables here.klzzwxh:14372 But the proc they're evaluated in has to knowklzzwxh:14586klzzwxh:14373klzzwxh:14374klzzwxh:14375klzzwxh:14376klzzwxh:14377klzzwxh:14378klzzwxh:14379klzzwxh:14380klzzwxh:14381 klzzwxh:14185 about them.klzzwxh:14587klzzwxh:14382klzzwxh:14383klzzwxh:14384klzzwxh:14385klzzwxh:14386klzzwxh:14387klzzwxh:14388klzzwxh:14389klzzwxh:14390 set rootklzzwxh:14186info klzzwxh:14187klzzwxh:14188klzzwxh:14588klzzwxh:14391klzzwxh:14392klzzwxh:14393klzzwxh:14394klzzwxh:14395klzzwxh:14396klzzwxh:14397klzzwxh:14398klzzwxh:14399 if klzzwxh:14189$optklzzwxh:14190showklzzwxh:14191rootklzzwxh:14192tagsklzzwxh:14193klzzwxh:14194 klzzwxh:14195klzzwxh:14589klzzwxh:14400klzzwxh:14401klzzwxh:14402klzzwxh:14403klzzwxh:14404klzzwxh:14405klzzwxh:14406klzzwxh:14407klzzwxh:14408klzzwxh:14409klzzwxh:14410 append rootklzzwxh:14196info klzzwxh:14197$revbtagsklzzwxh:14198$rootklzzwxh:14199revklzzwxh:14200 klzzwxh:14201klzzwxh:14590klzzwxh:14411klzzwxh:14412klzzwxh:14413klzzwxh:14414klzzwxh:14415klzzwxh:14416klzzwxh:14417klzzwxh:14418klzzwxh:14419 klzzwxh:14202klzzwxh:14591klzzwxh:14420klzzwxh:14421klzzwxh:14422klzzwxh:14423klzzwxh:14424klzzwxh:14425klzzwxh:14426klzzwxh:14427klzzwxh:14428 if klzzwxh:14203$optklzzwxh:14204showklzzwxh:14205rootklzzwxh:14206revklzzwxh:14207klzzwxh:14208 klzzwxh:14209klzzwxh:14592klzzwxh:14429klzzwxh:14430klzzwxh:14431klzzwxh:14432klzzwxh:14433klzzwxh:14434klzzwxh:14435klzzwxh:14436klzzwxh:14437klzzwxh:14438klzzwxh:14439 append rootklzzwxh:14210info klzzwxh:14211$rootklzzwxh:14212rev klzzwxh:14213klzzwxh:14593klzzwxh:14440klzzwxh:14441klzzwxh:14442klzzwxh:14443klzzwxh:14444klzzwxh:14445klzzwxh:14446klzzwxh:14447klzzwxh:14448 klzzwxh:14214klzzwxh:14594klzzwxh:14449klzzwxh:14450klzzwxh:14451klzzwxh:14452klzzwxh:14453klzzwxh:14454klzzwxh:14455klzzwxh:14456klzzwxh:14457 set revklzzwxh:14215info klzzwxh:14216klzzwxh:14217klzzwxh:14595klzzwxh:14458klzzwxh:14459klzzwxh:14460klzzwxh:14461klzzwxh:14462klzzwxh:14463klzzwxh:14464klzzwxh:14465klzzwxh:14466 if klzzwxh:14218$optklzzwxh:14219showklzzwxh:14220boxklzzwxh:14221revtimeklzzwxh:14222klzzwxh:14223 klzzwxh:14224klzzwxh:14596klzzwxh:14467klzzwxh:14468klzzwxh:14469klzzwxh:14470klzzwxh:14471klzzwxh:14472klzzwxh:14473klzzwxh:14474klzzwxh:14475klzzwxh:14476klzzwxh:14477 append revklzzwxh:14225info klzzwxh:14226$revtimeklzzwxh:14227$revisionklzzwxh:14228 klzzwxh:14229klzzwxh:14597klzzwxh:14478klzzwxh:14479klzzwxh:14480klzzwxh:14481klzzwxh:14482klzzwxh:14483klzzwxh:14484klzzwxh:14485klzzwxh:14486 klzzwxh:14230klzzwxh:14598klzzwxh:14487klzzwxh:14488klzzwxh:14489klzzwxh:14490klzzwxh:14491klzzwxh:14492klzzwxh:14493klzzwxh:14494klzzwxh:14495 if klzzwxh:14231$optklzzwxh:14232showklzzwxh:14233boxklzzwxh:14234revdateklzzwxh:14235klzzwxh:14236 klzzwxh:14237klzzwxh:14599klzzwxh:14496klzzwxh:14497klzzwxh:14498klzzwxh:14499klzzwxh:14500klzzwxh:14501klzzwxh:14502klzzwxh:14503klzzwxh:14504klzzwxh:14505klzzwxh:14506 append revklzzwxh:14238info klzzwxh:14239$revdateklzzwxh:14240$revisionklzzwxh:14241 klzzwxh:14242klzzwxh:14600klzzwxh:14507klzzwxh:14508klzzwxh:14509klzzwxh:14510klzzwxh:14511klzzwxh:14512klzzwxh:14513klzzwxh:14514klzzwxh:14515 klzzwxh:14243klzzwxh:14601klzzwxh:14516klzzwxh:14517klzzwxh:14518klzzwxh:14519klzzwxh:14520klzzwxh:14521klzzwxh:14522klzzwxh:14523klzzwxh:14524 if klzzwxh:14244$optklzzwxh:14245showklzzwxh:14246boxklzzwxh:14247revwhoklzzwxh:14248klzzwxh:14249 klzzwxh:14250klzzwxh:14602klzzwxh:14525klzzwxh:14526klzzwxh:14527klzzwxh:14528klzzwxh:14529klzzwxh:14530klzzwxh:14531klzzwxh:14532klzzwxh:14533klzzwxh:14534klzzwxh:14535 append revklzzwxh:14251info klzzwxh:14252klzzwxh:14536$revwhoklzzwxh:14253$revisionklzzwxh:14254klzzwxh:14537 klzzwxh:14255klzzwxh:14603klzzwxh:14538klzzwxh:14539klzzwxh:14540klzzwxh:14541klzzwxh:14542klzzwxh:14543klzzwxh:14544klzzwxh:14545klzzwxh:14546 klzzwxh:14256klzzwxh:14604klzzwxh:14547klzzwxh:14548klzzwxh:14549klzzwxh:14550klzzwxh:14551klzzwxh:14552klzzwxh:14553klzzwxh:14554klzzwxh:14555 if klzzwxh:14257$optklzzwxh:14258showklzzwxh:14259boxklzzwxh:14260revklzzwxh:14261klzzwxh:14262 klzzwxh:14263klzzwxh:14605klzzwxh:14556klzzwxh:14557klzzwxh:14558klzzwxh:14559klzzwxh:14560klzzwxh:14561klzzwxh:14562klzzwxh:14563klzzwxh:14564klzzwxh:14565klzzwxh:14566 append revklzzwxh:14264info klzzwxh:14265$revisionklzzwxh:14266klzzwxh:14606klzzwxh:14567klzzwxh:14568klzzwxh:14569klzzwxh:14570klzzwxh:14571klzzwxh:14572klzzwxh:14573klzzwxh:14574klzzwxh:14575 klzzwxh:14267

    klzzwxh:14728klzzwxh:14729klzzwxh:14730klzzwxh:14731klzzwxh:14732klzzwxh:14733klzzwxh:14734klzzwxh:14735klzzwxh:14736 klzzwxh:14607 Note: the boxes and tag lists are sized according to the fontklzzwxh:14998klzzwxh:14737klzzwxh:14738klzzwxh:14739klzzwxh:14740klzzwxh:14741klzzwxh:14742klzzwxh:14743klzzwxh:14744klzzwxh:14745 klzzwxh:14608 so do not need to be scaled.klzzwxh:14999klzzwxh:14746klzzwxh:14747klzzwxh:14748klzzwxh:14749klzzwxh:14750klzzwxh:14751klzzwxh:14752klzzwxh:14753klzzwxh:14754 set myklzzwxh:14609size klzzwxh:14610expr klzzwxh:14611roundklzzwxh:14612$logcfgklzzwxh:14613fontklzzwxh:14614sizeklzzwxh:14615 klzzwxh:14616 $optklzzwxh:14617scaleklzzwxh:14618klzzwxh:14619klzzwxh:14620klzzwxh:14621klzzwxh:15000klzzwxh:14755klzzwxh:14756klzzwxh:14757klzzwxh:14758klzzwxh:14759klzzwxh:14760klzzwxh:14761klzzwxh:14762klzzwxh:14763 set fontklzzwxh:14622norm klzzwxh:14623font create klzzwxh:14624klzzwxh:14764klzzwxh:14765klzzwxh:14766klzzwxh:14767klzzwxh:14768klzzwxh:14769klzzwxh:14770klzzwxh:14771klzzwxh:14772klzzwxh:14773klzzwxh:14774 -family Helvetica -size $myklzzwxh:14625sizeklzzwxh:14626klzzwxh:15001klzzwxh:14775klzzwxh:14776klzzwxh:14777klzzwxh:14778klzzwxh:14779klzzwxh:14780klzzwxh:14781klzzwxh:14782klzzwxh:14783 set fontklzzwxh:14627normklzzwxh:14628h klzzwxh:14629font metrics klzzwxh:14630klzzwxh:14784klzzwxh:14785klzzwxh:14786klzzwxh:14787klzzwxh:14788klzzwxh:14789klzzwxh:14790klzzwxh:14791klzzwxh:14792klzzwxh:14793klzzwxh:14794 $fontklzzwxh:14631norm -displayof $logcanvas -linespaceklzzwxh:14632klzzwxh:15002klzzwxh:14795klzzwxh:14796klzzwxh:14797klzzwxh:14798klzzwxh:14799klzzwxh:14800klzzwxh:14801klzzwxh:14802klzzwxh:14803 set fontklzzwxh:14633bold klzzwxh:14634font create klzzwxh:14635klzzwxh:14804klzzwxh:14805klzzwxh:14806klzzwxh:14807klzzwxh:14808klzzwxh:14809klzzwxh:14810klzzwxh:14811klzzwxh:14812klzzwxh:14813klzzwxh:14814 -family Helvetica -size $myklzzwxh:14636size -weight boldklzzwxh:14637klzzwxh:15003klzzwxh:14815klzzwxh:14816klzzwxh:14817klzzwxh:14818klzzwxh:14819klzzwxh:14820klzzwxh:14821klzzwxh:14822klzzwxh:14823 set fontklzzwxh:14638boldklzzwxh:14639h klzzwxh:14640font metrics klzzwxh:14641klzzwxh:14824klzzwxh:14825klzzwxh:14826klzzwxh:14827klzzwxh:14828klzzwxh:14829klzzwxh:14830klzzwxh:14831klzzwxh:14832klzzwxh:14833klzzwxh:14834 $fontklzzwxh:14642bold -displayof $logcanvas -linespaceklzzwxh:14643klzzwxh:15004klzzwxh:14835klzzwxh:14836klzzwxh:14837klzzwxh:14838klzzwxh:14839klzzwxh:14840klzzwxh:14841klzzwxh:14842klzzwxh:14843 klzzwxh:14644 Scale the layout constantsklzzwxh:15005klzzwxh:14844klzzwxh:14845klzzwxh:14846klzzwxh:14847klzzwxh:14848klzzwxh:14849klzzwxh:14850klzzwxh:14851klzzwxh:14852 foreach x klzzwxh:14645spcx spcy yfudge boffklzzwxh:14646 klzzwxh:14647klzzwxh:15006klzzwxh:14853klzzwxh:14854klzzwxh:14855klzzwxh:14856klzzwxh:14857klzzwxh:14858klzzwxh:14859klzzwxh:14860klzzwxh:14861klzzwxh:14862klzzwxh:14863 set currklzzwxh:14648$xklzzwxh:14649 klzzwxh:14650expr klzzwxh:14651roundklzzwxh:14652$logcfgklzzwxh:14653$xklzzwxh:14654 klzzwxh:14655 $fontklzzwxh:14656normklzzwxh:14657h klzzwxh:14658 $optklzzwxh:14659scaleklzzwxh:14660klzzwxh:14661klzzwxh:14662klzzwxh:14663klzzwxh:15007klzzwxh:14864klzzwxh:14865klzzwxh:14866klzzwxh:14867klzzwxh:14868klzzwxh:14869klzzwxh:14870klzzwxh:14871klzzwxh:14872klzzwxh:14873klzzwxh:14874 if klzzwxh:14664$currklzzwxh:14665$xklzzwxh:14666 klzzwxh:14875 1klzzwxh:14667 klzzwxh:14668klzzwxh:15008klzzwxh:14876klzzwxh:14877klzzwxh:14878klzzwxh:14879klzzwxh:14880klzzwxh:14881klzzwxh:14882klzzwxh:14883klzzwxh:14884klzzwxh:14885klzzwxh:14886klzzwxh:14887klzzwxh:14888 set currklzzwxh:14669$xklzzwxh:14670 1klzzwxh:15009klzzwxh:14889klzzwxh:14890klzzwxh:14891klzzwxh:14892klzzwxh:14893klzzwxh:14894klzzwxh:14895klzzwxh:14896klzzwxh:14897klzzwxh:14898klzzwxh:14899 klzzwxh:14671klzzwxh:15010klzzwxh:14900klzzwxh:14901klzzwxh:14902klzzwxh:14903klzzwxh:14904klzzwxh:14905klzzwxh:14906klzzwxh:14907klzzwxh:14908 klzzwxh:14672klzzwxh:15011klzzwxh:14909klzzwxh:14910klzzwxh:14911klzzwxh:14912klzzwxh:14913klzzwxh:14914klzzwxh:14915klzzwxh:14916klzzwxh:14917 foreach x klzzwxh:14673padx pady tspcb widthklzzwxh:14674 klzzwxh:14675klzzwxh:15012klzzwxh:14918klzzwxh:14919klzzwxh:14920klzzwxh:14921klzzwxh:14922klzzwxh:14923klzzwxh:14924klzzwxh:14925klzzwxh:14926klzzwxh:14927klzzwxh:14928 set currklzzwxh:14676$xklzzwxh:14677 klzzwxh:14678expr klzzwxh:14679roundklzzwxh:14680$logcfgklzzwxh:14681$xklzzwxh:14682 klzzwxh:14683 $optklzzwxh:14684scaleklzzwxh:14685klzzwxh:14686klzzwxh:14687klzzwxh:14688klzzwxh:15013klzzwxh:14929klzzwxh:14930klzzwxh:14931klzzwxh:14932klzzwxh:14933klzzwxh:14934klzzwxh:14935klzzwxh:14936klzzwxh:14937klzzwxh:14938klzzwxh:14939 set currklzzwxh:14689$x,2klzzwxh:14690 klzzwxh:14691expr klzzwxh:14692$currklzzwxh:14693$xklzzwxh:14694 klzzwxh:14940klzzwxh:14941 1klzzwxh:14695klzzwxh:14696klzzwxh:15014klzzwxh:14942klzzwxh:14943klzzwxh:14944klzzwxh:14945klzzwxh:14946klzzwxh:14947klzzwxh:14948klzzwxh:14949klzzwxh:14950 klzzwxh:14697klzzwxh:15015klzzwxh:14951klzzwxh:14952klzzwxh:14953klzzwxh:14954klzzwxh:14955klzzwxh:14956klzzwxh:14957klzzwxh:14958klzzwxh:14959 set currklzzwxh:14698arrowshapeklzzwxh:14699 klzzwxh:14700klzzwxh:14701klzzwxh:15016klzzwxh:14960klzzwxh:14961klzzwxh:14962klzzwxh:14963klzzwxh:14964klzzwxh:14965klzzwxh:14966klzzwxh:14967klzzwxh:14968 foreach x $logcfgklzzwxh:14702arrowshapeklzzwxh:14703 klzzwxh:14704klzzwxh:15017klzzwxh:14969klzzwxh:14970klzzwxh:14971klzzwxh:14972klzzwxh:14973klzzwxh:14974klzzwxh:14975klzzwxh:14976klzzwxh:14977klzzwxh:14978klzzwxh:14979 lappend currklzzwxh:14705arrowshapeklzzwxh:14706 klzzwxh:14707expr klzzwxh:14708$x klzzwxh:14709 $optklzzwxh:14710scaleklzzwxh:14711klzzwxh:14712klzzwxh:14713klzzwxh:15018klzzwxh:14980klzzwxh:14981klzzwxh:14982klzzwxh:14983klzzwxh:14984klzzwxh:14985klzzwxh:14986klzzwxh:14987klzzwxh:14988 klzzwxh:14714klzzwxh:15019klzzwxh:14989klzzwxh:14990klzzwxh:14991klzzwxh:14992klzzwxh:14993klzzwxh:14994klzzwxh:14995klzzwxh:14996klzzwxh:14997 set boxklzzwxh:14715height klzzwxh:14716expr klzzwxh:14717$currklzzwxh:14718pady,2klzzwxh:14719 + klzzwxh:14720llength $revklzzwxh:14721infoklzzwxh:14722klzzwxh:14723$fontklzzwxh:14724normklzzwxh:14725hklzzwxh:14726klzzwxh:14727

    klzzwxh:15077klzzwxh:15078klzzwxh:15079klzzwxh:15080klzzwxh:15081klzzwxh:15082klzzwxh:15083klzzwxh:15084klzzwxh:15085 klzzwxh:15020 Find the root. klzzwxh:15021needed for SVNklzzwxh:15022.klzzwxh:15086 If there's a trunk, of course use thatklzzwxh:15390klzzwxh:15087klzzwxh:15088klzzwxh:15089klzzwxh:15090klzzwxh:15091klzzwxh:15092klzzwxh:15093klzzwxh:15094klzzwxh:15095 foreach a klzzwxh:15023array names revbtagsklzzwxh:15024 klzzwxh:15025klzzwxh:15391klzzwxh:15096klzzwxh:15097klzzwxh:15098klzzwxh:15099klzzwxh:15100klzzwxh:15101klzzwxh:15102klzzwxh:15103klzzwxh:15104klzzwxh:15105klzzwxh:15106 foreach tag $revbtagsklzzwxh:15026$aklzzwxh:15027 klzzwxh:15028klzzwxh:15392klzzwxh:15107klzzwxh:15108klzzwxh:15109klzzwxh:15110klzzwxh:15111klzzwxh:15112klzzwxh:15113klzzwxh:15114klzzwxh:15115klzzwxh:15116klzzwxh:15117klzzwxh:15118klzzwxh:15119 if klzzwxh:15029$tag == klzzwxh:15120trunkklzzwxh:15121klzzwxh:15030 klzzwxh:15031klzzwxh:15393klzzwxh:15122klzzwxh:15123klzzwxh:15124klzzwxh:15125klzzwxh:15126klzzwxh:15127klzzwxh:15128klzzwxh:15129klzzwxh:15130klzzwxh:15131klzzwxh:15132klzzwxh:15133klzzwxh:15134klzzwxh:15135klzzwxh:15136 set trunkrev $aklzzwxh:15394klzzwxh:15137klzzwxh:15138klzzwxh:15139klzzwxh:15140klzzwxh:15141klzzwxh:15142klzzwxh:15143klzzwxh:15144klzzwxh:15145klzzwxh:15146klzzwxh:15147klzzwxh:15148klzzwxh:15149klzzwxh:15150klzzwxh:15151 breakklzzwxh:15395klzzwxh:15152klzzwxh:15153klzzwxh:15154klzzwxh:15155klzzwxh:15156klzzwxh:15157klzzwxh:15158klzzwxh:15159klzzwxh:15160klzzwxh:15161klzzwxh:15162klzzwxh:15163klzzwxh:15164 klzzwxh:15032klzzwxh:15396klzzwxh:15165klzzwxh:15166klzzwxh:15167klzzwxh:15168klzzwxh:15169klzzwxh:15170klzzwxh:15171klzzwxh:15172klzzwxh:15173klzzwxh:15174klzzwxh:15175 klzzwxh:15033klzzwxh:15397klzzwxh:15176klzzwxh:15177klzzwxh:15178klzzwxh:15179klzzwxh:15180klzzwxh:15181klzzwxh:15182klzzwxh:15183klzzwxh:15184 klzzwxh:15034klzzwxh:15398klzzwxh:15185klzzwxh:15186klzzwxh:15187klzzwxh:15188klzzwxh:15189klzzwxh:15190klzzwxh:15191klzzwxh:15192klzzwxh:15193 klzzwxh:15035 If there's no trunk, find the beginning of a branchklzzwxh:15399klzzwxh:15194klzzwxh:15195klzzwxh:15196klzzwxh:15197klzzwxh:15198klzzwxh:15199klzzwxh:15200klzzwxh:15201klzzwxh:15202 if klzzwxh:15036klzzwxh:15037 klzzwxh:15038info exists trunkrevklzzwxh:15039 || $trunkrev == klzzwxh:15203klzzwxh:15204klzzwxh:15040 klzzwxh:15041klzzwxh:15400klzzwxh:15205klzzwxh:15206klzzwxh:15207klzzwxh:15208klzzwxh:15209klzzwxh:15210klzzwxh:15211klzzwxh:15212klzzwxh:15213klzzwxh:15214klzzwxh:15215 set min 999999klzzwxh:15401klzzwxh:15216klzzwxh:15217klzzwxh:15218klzzwxh:15219klzzwxh:15220klzzwxh:15221klzzwxh:15222klzzwxh:15223klzzwxh:15224klzzwxh:15225klzzwxh:15226 foreach a klzzwxh:15042array names revbtagsklzzwxh:15043 klzzwxh:15044klzzwxh:15402klzzwxh:15227klzzwxh:15228klzzwxh:15229klzzwxh:15230klzzwxh:15231klzzwxh:15232klzzwxh:15233klzzwxh:15234klzzwxh:15235klzzwxh:15236klzzwxh:15237klzzwxh:15238klzzwxh:15239 if klzzwxh:15045$a == klzzwxh:15240klzzwxh:15241 klzzwxh:15046 klzzwxh:15047continueklzzwxh:15048klzzwxh:15403klzzwxh:15242klzzwxh:15243klzzwxh:15244klzzwxh:15245klzzwxh:15246klzzwxh:15247klzzwxh:15248klzzwxh:15249klzzwxh:15250klzzwxh:15251klzzwxh:15252klzzwxh:15253klzzwxh:15254 foreach tag $revbtagsklzzwxh:15049$aklzzwxh:15050 klzzwxh:15051klzzwxh:15404klzzwxh:15255klzzwxh:15256klzzwxh:15257klzzwxh:15258klzzwxh:15259klzzwxh:15260klzzwxh:15261klzzwxh:15262klzzwxh:15263klzzwxh:15264klzzwxh:15265klzzwxh:15266klzzwxh:15267klzzwxh:15268klzzwxh:15269 if klzzwxh:15052$revbtagsklzzwxh:15053$aklzzwxh:15054 klzzwxh:15055= klzzwxh:15056klzzwxh:15057 klzzwxh:15058 klzzwxh:15059klzzwxh:15405klzzwxh:15270klzzwxh:15271klzzwxh:15272klzzwxh:15273klzzwxh:15274klzzwxh:15275klzzwxh:15276klzzwxh:15277klzzwxh:15278klzzwxh:15279klzzwxh:15280klzzwxh:15281klzzwxh:15282klzzwxh:15283klzzwxh:15284klzzwxh:15285klzzwxh:15286 set rnum klzzwxh:15060string trimleft $a klzzwxh:15061rklzzwxh:15062klzzwxh:15063klzzwxh:15406klzzwxh:15287klzzwxh:15288klzzwxh:15289klzzwxh:15290klzzwxh:15291klzzwxh:15292klzzwxh:15293klzzwxh:15294klzzwxh:15295klzzwxh:15296klzzwxh:15297klzzwxh:15298klzzwxh:15299klzzwxh:15300klzzwxh:15301klzzwxh:15302klzzwxh:15303 if klzzwxh:15064$rnum klzzwxh:15304 $minklzzwxh:15065 klzzwxh:15066set min $rnumklzzwxh:15067klzzwxh:15407klzzwxh:15305klzzwxh:15306klzzwxh:15307klzzwxh:15308klzzwxh:15309klzzwxh:15310klzzwxh:15311klzzwxh:15312klzzwxh:15313klzzwxh:15314klzzwxh:15315klzzwxh:15316klzzwxh:15317klzzwxh:15318klzzwxh:15319 klzzwxh:15068klzzwxh:15408klzzwxh:15320klzzwxh:15321klzzwxh:15322klzzwxh:15323klzzwxh:15324klzzwxh:15325klzzwxh:15326klzzwxh:15327klzzwxh:15328klzzwxh:15329klzzwxh:15330klzzwxh:15331klzzwxh:15332 klzzwxh:15069klzzwxh:15409klzzwxh:15333klzzwxh:15334klzzwxh:15335klzzwxh:15336klzzwxh:15337klzzwxh:15338klzzwxh:15339klzzwxh:15340klzzwxh:15341klzzwxh:15342klzzwxh:15343 klzzwxh:15070klzzwxh:15410klzzwxh:15344klzzwxh:15345klzzwxh:15346klzzwxh:15347klzzwxh:15348klzzwxh:15349klzzwxh:15350klzzwxh:15351klzzwxh:15352klzzwxh:15353klzzwxh:15354 if klzzwxh:15071$min klzzwxh:15072= 999999klzzwxh:15073 klzzwxh:15074klzzwxh:15411klzzwxh:15355klzzwxh:15356klzzwxh:15357klzzwxh:15358klzzwxh:15359klzzwxh:15360klzzwxh:15361klzzwxh:15362klzzwxh:15363klzzwxh:15364klzzwxh:15365klzzwxh:15366klzzwxh:15367 set basebranch klzzwxh:15368r$minklzzwxh:15369klzzwxh:15412klzzwxh:15370klzzwxh:15371klzzwxh:15372klzzwxh:15373klzzwxh:15374klzzwxh:15375klzzwxh:15376klzzwxh:15377klzzwxh:15378klzzwxh:15379klzzwxh:15380 klzzwxh:15075klzzwxh:15413klzzwxh:15381klzzwxh:15382klzzwxh:15383klzzwxh:15384klzzwxh:15385klzzwxh:15386klzzwxh:15387klzzwxh:15388klzzwxh:15389 klzzwxh:15076

    klzzwxh:15470klzzwxh:15471klzzwxh:15472klzzwxh:15473klzzwxh:15474klzzwxh:15475klzzwxh:15476klzzwxh:15477klzzwxh:15478 klzzwxh:15414 Start drawing, beginning with the trunk or the lowest branchklzzwxh:15658klzzwxh:15479klzzwxh:15480klzzwxh:15481klzzwxh:15482klzzwxh:15483klzzwxh:15484klzzwxh:15485klzzwxh:15486klzzwxh:15487 if klzzwxh:15415klzzwxh:15416info exists trunkrevklzzwxh:15417 klzzwxh:15488klzzwxh:15489 $trunkrev klzzwxh:15418= klzzwxh:15490klzzwxh:15491klzzwxh:15419 klzzwxh:15420klzzwxh:15659klzzwxh:15492klzzwxh:15493klzzwxh:15494klzzwxh:15495klzzwxh:15496klzzwxh:15497klzzwxh:15498klzzwxh:15499klzzwxh:15500klzzwxh:15501klzzwxh:15502 genklzzwxh:15421log:log D klzzwxh:15503Drawing trunkrev $trunkrevklzzwxh:15504klzzwxh:15660klzzwxh:15505klzzwxh:15506klzzwxh:15507klzzwxh:15508klzzwxh:15509klzzwxh:15510klzzwxh:15511klzzwxh:15512klzzwxh:15513klzzwxh:15514klzzwxh:15515 foreach klzzwxh:15422lx y2 lbw rh llyklzzwxh:15423 klzzwxh:15424DrawBranch 0 0 klzzwxh:15425klzzwxh:15426 $trunkrevklzzwxh:15427 klzzwxh:15428klzzwxh:15661klzzwxh:15516klzzwxh:15517klzzwxh:15518klzzwxh:15519klzzwxh:15520klzzwxh:15521klzzwxh:15522klzzwxh:15523klzzwxh:15524klzzwxh:15525klzzwxh:15526klzzwxh:15527klzzwxh:15528 lappend bxys $lx $lbw $rh $llyklzzwxh:15662klzzwxh:15529klzzwxh:15530klzzwxh:15531klzzwxh:15532klzzwxh:15533klzzwxh:15534klzzwxh:15535klzzwxh:15536klzzwxh:15537klzzwxh:15538klzzwxh:15539klzzwxh:15540klzzwxh:15541 breakklzzwxh:15663klzzwxh:15542klzzwxh:15543klzzwxh:15544klzzwxh:15545klzzwxh:15546klzzwxh:15547klzzwxh:15548klzzwxh:15549klzzwxh:15550klzzwxh:15551klzzwxh:15552 klzzwxh:15429klzzwxh:15664klzzwxh:15553klzzwxh:15554klzzwxh:15555klzzwxh:15556klzzwxh:15557klzzwxh:15558klzzwxh:15559klzzwxh:15560klzzwxh:15561klzzwxh:15562klzzwxh:15563 set x2 klzzwxh:15430expr klzzwxh:15431$lx + $lbw + $currklzzwxh:15432spcxklzzwxh:15433klzzwxh:15434klzzwxh:15435klzzwxh:15665klzzwxh:15564klzzwxh:15565klzzwxh:15566klzzwxh:15567klzzwxh:15568klzzwxh:15569klzzwxh:15570klzzwxh:15571klzzwxh:15572klzzwxh:15573klzzwxh:15574 set mx klzzwxh:15436expr klzzwxh:15437$lx + $lbw/2klzzwxh:15438klzzwxh:15439klzzwxh:15666klzzwxh:15575klzzwxh:15576klzzwxh:15577klzzwxh:15578klzzwxh:15579klzzwxh:15580klzzwxh:15581klzzwxh:15582klzzwxh:15583klzzwxh:15584klzzwxh:15585 klzzwxh:15440set ry klzzwxh:15441expr klzzwxh:15442$y2 - $rh/2 - $currklzzwxh:15443spcyklzzwxh:15444klzzwxh:15445klzzwxh:15446klzzwxh:15667klzzwxh:15586klzzwxh:15587klzzwxh:15588klzzwxh:15589klzzwxh:15590klzzwxh:15591klzzwxh:15592klzzwxh:15593klzzwxh:15594klzzwxh:15595klzzwxh:15596 set ry klzzwxh:15447expr klzzwxh:15448$y2 - $rh/4 - $currklzzwxh:15449spcyklzzwxh:15450klzzwxh:15451klzzwxh:15452klzzwxh:15668klzzwxh:15597klzzwxh:15598klzzwxh:15599klzzwxh:15600klzzwxh:15601klzzwxh:15602klzzwxh:15603klzzwxh:15604klzzwxh:15605klzzwxh:15606klzzwxh:15607 set by klzzwxh:15453expr klzzwxh:15454$y2 - $currklzzwxh:15455boffklzzwxh:15456klzzwxh:15457klzzwxh:15458klzzwxh:15669klzzwxh:15608klzzwxh:15609klzzwxh:15610klzzwxh:15611klzzwxh:15612klzzwxh:15613klzzwxh:15614klzzwxh:15615klzzwxh:15616klzzwxh:15617klzzwxh:15618 $logcanvas.canvas create line klzzwxh:15459klzzwxh:15619klzzwxh:15620klzzwxh:15621klzzwxh:15622klzzwxh:15623klzzwxh:15624klzzwxh:15625klzzwxh:15626klzzwxh:15627klzzwxh:15628klzzwxh:15629klzzwxh:15630klzzwxh:15631 $mx $ry $mx klzzwxh:15460expr klzzwxh:15461$by - $rhklzzwxh:15462klzzwxh:15463 klzzwxh:15464klzzwxh:15632klzzwxh:15633klzzwxh:15634klzzwxh:15635klzzwxh:15636klzzwxh:15637klzzwxh:15638klzzwxh:15639klzzwxh:15640klzzwxh:15641klzzwxh:15642klzzwxh:15643klzzwxh:15644 -arrow last -arrowshape $currklzzwxh:15465arrowshapeklzzwxh:15466 klzzwxh:15467klzzwxh:15645klzzwxh:15646klzzwxh:15647klzzwxh:15648klzzwxh:15649klzzwxh:15650klzzwxh:15651klzzwxh:15652klzzwxh:15653klzzwxh:15654klzzwxh:15655klzzwxh:15656klzzwxh:15657 -width $currklzzwxh:15468widthklzzwxh:15469

    klzzwxh:15726klzzwxh:15727klzzwxh:15728klzzwxh:15729klzzwxh:15730klzzwxh:15731klzzwxh:15732klzzwxh:15733klzzwxh:15734klzzwxh:15735klzzwxh:15736 foreach klzzwxh:15670rtw boxklzzwxh:15671width rootklzzwxh:15672heightklzzwxh:15673 klzzwxh:15674CalcRoot $trunkrevklzzwxh:15675 klzzwxh:15676 break klzzwxh:15677klzzwxh:15923klzzwxh:15737klzzwxh:15738klzzwxh:15739klzzwxh:15740klzzwxh:15741klzzwxh:15742klzzwxh:15743klzzwxh:15744klzzwxh:15745klzzwxh:15746klzzwxh:15747 DrawRoot $lx $y2 $lbw $rh $trunkrev $trunkrevklzzwxh:15924klzzwxh:15748klzzwxh:15749klzzwxh:15750klzzwxh:15751klzzwxh:15752klzzwxh:15753klzzwxh:15754klzzwxh:15755klzzwxh:15756klzzwxh:15757klzzwxh:15758 UpdateBndBoxklzzwxh:15925klzzwxh:15759klzzwxh:15760klzzwxh:15761klzzwxh:15762klzzwxh:15763klzzwxh:15764klzzwxh:15765klzzwxh:15766klzzwxh:15767 klzzwxh:15678 elseif klzzwxh:15679klzzwxh:15680info exists basebranchklzzwxh:15681klzzwxh:15682 klzzwxh:15683klzzwxh:15926klzzwxh:15768klzzwxh:15769klzzwxh:15770klzzwxh:15771klzzwxh:15772klzzwxh:15773klzzwxh:15774klzzwxh:15775klzzwxh:15776klzzwxh:15777klzzwxh:15778 genklzzwxh:15684log:log D klzzwxh:15779Drawing basebranch $basebranchklzzwxh:15780klzzwxh:15927klzzwxh:15781klzzwxh:15782klzzwxh:15783klzzwxh:15784klzzwxh:15785klzzwxh:15786klzzwxh:15787klzzwxh:15788klzzwxh:15789klzzwxh:15790klzzwxh:15791 foreach klzzwxh:15685lx y2 lbw rh llyklzzwxh:15686 klzzwxh:15687DrawBranch 0 0 klzzwxh:15688klzzwxh:15689 $basebranchklzzwxh:15690 klzzwxh:15691klzzwxh:15928klzzwxh:15792klzzwxh:15793klzzwxh:15794klzzwxh:15795klzzwxh:15796klzzwxh:15797klzzwxh:15798klzzwxh:15799klzzwxh:15800klzzwxh:15801klzzwxh:15802klzzwxh:15803klzzwxh:15804 lappend bxys $lx $lbw $rh $llyklzzwxh:15929klzzwxh:15805klzzwxh:15806klzzwxh:15807klzzwxh:15808klzzwxh:15809klzzwxh:15810klzzwxh:15811klzzwxh:15812klzzwxh:15813klzzwxh:15814klzzwxh:15815klzzwxh:15816klzzwxh:15817 breakklzzwxh:15930klzzwxh:15818klzzwxh:15819klzzwxh:15820klzzwxh:15821klzzwxh:15822klzzwxh:15823klzzwxh:15824klzzwxh:15825klzzwxh:15826klzzwxh:15827klzzwxh:15828 klzzwxh:15692klzzwxh:15931klzzwxh:15829klzzwxh:15830klzzwxh:15831klzzwxh:15832klzzwxh:15833klzzwxh:15834klzzwxh:15835klzzwxh:15836klzzwxh:15837klzzwxh:15838klzzwxh:15839 set x2 klzzwxh:15693expr klzzwxh:15694$lx + $lbw + $currklzzwxh:15695spcxklzzwxh:15696klzzwxh:15697klzzwxh:15698klzzwxh:15932klzzwxh:15840klzzwxh:15841klzzwxh:15842klzzwxh:15843klzzwxh:15844klzzwxh:15845klzzwxh:15846klzzwxh:15847klzzwxh:15848klzzwxh:15849klzzwxh:15850 set mx klzzwxh:15699expr klzzwxh:15700$lx + $lbw/2klzzwxh:15701klzzwxh:15702klzzwxh:15933klzzwxh:15851klzzwxh:15852klzzwxh:15853klzzwxh:15854klzzwxh:15855klzzwxh:15856klzzwxh:15857klzzwxh:15858klzzwxh:15859klzzwxh:15860klzzwxh:15861 set ry klzzwxh:15703expr klzzwxh:15704$y2 - $rh/2 - $currklzzwxh:15705spcyklzzwxh:15706klzzwxh:15707klzzwxh:15708klzzwxh:15934klzzwxh:15862klzzwxh:15863klzzwxh:15864klzzwxh:15865klzzwxh:15866klzzwxh:15867klzzwxh:15868klzzwxh:15869klzzwxh:15870klzzwxh:15871klzzwxh:15872 set by klzzwxh:15709expr klzzwxh:15710$y2 - $currklzzwxh:15711boffklzzwxh:15712klzzwxh:15713klzzwxh:15714klzzwxh:15935klzzwxh:15873klzzwxh:15874klzzwxh:15875klzzwxh:15876klzzwxh:15877klzzwxh:15878klzzwxh:15879klzzwxh:15880klzzwxh:15881klzzwxh:15882klzzwxh:15883 $logcanvas.canvas create line klzzwxh:15715klzzwxh:15884klzzwxh:15885klzzwxh:15886klzzwxh:15887klzzwxh:15888klzzwxh:15889klzzwxh:15890klzzwxh:15891klzzwxh:15892klzzwxh:15893klzzwxh:15894klzzwxh:15895klzzwxh:15896 $mx $ry $mx klzzwxh:15716expr klzzwxh:15717$by - $rhklzzwxh:15718klzzwxh:15719 klzzwxh:15720klzzwxh:15897klzzwxh:15898klzzwxh:15899klzzwxh:15900klzzwxh:15901klzzwxh:15902klzzwxh:15903klzzwxh:15904klzzwxh:15905klzzwxh:15906klzzwxh:15907klzzwxh:15908klzzwxh:15909 -arrow last -arrowshape $currklzzwxh:15721arrowshapeklzzwxh:15722 klzzwxh:15723klzzwxh:15910klzzwxh:15911klzzwxh:15912klzzwxh:15913klzzwxh:15914klzzwxh:15915klzzwxh:15916klzzwxh:15917klzzwxh:15918klzzwxh:15919klzzwxh:15920klzzwxh:15921klzzwxh:15922 -width $currklzzwxh:15724widthklzzwxh:15725

    klzzwxh:15945klzzwxh:15946klzzwxh:15947klzzwxh:15948klzzwxh:15949klzzwxh:15950klzzwxh:15951klzzwxh:15952klzzwxh:15953klzzwxh:15954klzzwxh:15955 foreach klzzwxh:15936rtw boxklzzwxh:15937width rootklzzwxh:15938heightklzzwxh:15939 klzzwxh:15940CalcRoot $basebranchklzzwxh:15941 klzzwxh:15942 break klzzwxh:15943klzzwxh:15987klzzwxh:15956klzzwxh:15957klzzwxh:15958klzzwxh:15959klzzwxh:15960klzzwxh:15961klzzwxh:15962klzzwxh:15963klzzwxh:15964klzzwxh:15965klzzwxh:15966 DrawRoot $lx $y2 $lbw $rh $basebranch $basebranchklzzwxh:15988klzzwxh:15967klzzwxh:15968klzzwxh:15969klzzwxh:15970klzzwxh:15971klzzwxh:15972klzzwxh:15973klzzwxh:15974klzzwxh:15975klzzwxh:15976klzzwxh:15977 UpdateBndBoxklzzwxh:15989klzzwxh:15978klzzwxh:15979klzzwxh:15980klzzwxh:15981klzzwxh:15982klzzwxh:15983klzzwxh:15984klzzwxh:15985klzzwxh:15986 klzzwxh:15944

    klzzwxh:16150klzzwxh:16151klzzwxh:16152klzzwxh:16153klzzwxh:16154klzzwxh:16155klzzwxh:16156klzzwxh:16157klzzwxh:16158 genklzzwxh:15990log:log D klzzwxh:16159fromtags: $fromtagsklzzwxh:16160klzzwxh:16962klzzwxh:16161klzzwxh:16162klzzwxh:16163klzzwxh:16164klzzwxh:16165klzzwxh:16166klzzwxh:16167klzzwxh:16168klzzwxh:16169 genklzzwxh:15991log:log D klzzwxh:16170totags: $totagsklzzwxh:16171klzzwxh:16963klzzwxh:16172klzzwxh:16173klzzwxh:16174klzzwxh:16175klzzwxh:16176klzzwxh:16177klzzwxh:16178klzzwxh:16179klzzwxh:16180 if klzzwxh:15992$optklzzwxh:15993showklzzwxh:15994mergesklzzwxh:15995klzzwxh:15996 klzzwxh:15997klzzwxh:16964klzzwxh:16181klzzwxh:16182klzzwxh:16183klzzwxh:16184klzzwxh:16185klzzwxh:16186klzzwxh:16187klzzwxh:16188klzzwxh:16189klzzwxh:16190klzzwxh:16191 foreach from $fromtags klzzwxh:15998klzzwxh:16965klzzwxh:16192klzzwxh:16193klzzwxh:16194klzzwxh:16195klzzwxh:16196klzzwxh:16197klzzwxh:16198klzzwxh:16199klzzwxh:16200klzzwxh:16201klzzwxh:16202klzzwxh:16203klzzwxh:16204 genklzzwxh:15999log:log D klzzwxh:16205 $fromklzzwxh:16206klzzwxh:16966klzzwxh:16207klzzwxh:16208klzzwxh:16209klzzwxh:16210klzzwxh:16211klzzwxh:16212klzzwxh:16213klzzwxh:16214klzzwxh:16215klzzwxh:16216klzzwxh:16217klzzwxh:16218klzzwxh:16219 set xfrom klzzwxh:16000lindex $xyklzzwxh:16001$fromklzzwxh:16002 0klzzwxh:16003klzzwxh:16967klzzwxh:16220klzzwxh:16221klzzwxh:16222klzzwxh:16223klzzwxh:16224klzzwxh:16225klzzwxh:16226klzzwxh:16227klzzwxh:16228klzzwxh:16229klzzwxh:16230klzzwxh:16231klzzwxh:16232 set yfrom klzzwxh:16004lindex $xyklzzwxh:16005$fromklzzwxh:16006 1klzzwxh:16007klzzwxh:16968klzzwxh:16233klzzwxh:16234klzzwxh:16235klzzwxh:16236klzzwxh:16237klzzwxh:16238klzzwxh:16239klzzwxh:16240klzzwxh:16241klzzwxh:16242klzzwxh:16243klzzwxh:16244klzzwxh:16245 if klzzwxh:16008klzzwxh:16009 klzzwxh:16010info exists matchklzzwxh:16011$fromklzzwxh:16012klzzwxh:16013klzzwxh:16014 klzzwxh:16015klzzwxh:16969klzzwxh:16246klzzwxh:16247klzzwxh:16248klzzwxh:16249klzzwxh:16250klzzwxh:16251klzzwxh:16252klzzwxh:16253klzzwxh:16254klzzwxh:16255klzzwxh:16256klzzwxh:16257klzzwxh:16258klzzwxh:16259klzzwxh:16260 genklzzwxh:16016log:log D klzzwxh:16261klzzwxh:16262 No match for $matchklzzwxh:16017$fromklzzwxh:16018klzzwxh:16263klzzwxh:16970klzzwxh:16264klzzwxh:16265klzzwxh:16266klzzwxh:16267klzzwxh:16268klzzwxh:16269klzzwxh:16270klzzwxh:16271klzzwxh:16272klzzwxh:16273klzzwxh:16274klzzwxh:16275klzzwxh:16276klzzwxh:16277klzzwxh:16278 continueklzzwxh:16971klzzwxh:16279klzzwxh:16280klzzwxh:16281klzzwxh:16282klzzwxh:16283klzzwxh:16284klzzwxh:16285klzzwxh:16286klzzwxh:16287klzzwxh:16288klzzwxh:16289klzzwxh:16290klzzwxh:16291 klzzwxh:16019klzzwxh:16972klzzwxh:16292klzzwxh:16293klzzwxh:16294klzzwxh:16295klzzwxh:16296klzzwxh:16297klzzwxh:16298klzzwxh:16299klzzwxh:16300klzzwxh:16301klzzwxh:16302klzzwxh:16303klzzwxh:16304 genklzzwxh:16020log:log D klzzwxh:16305klzzwxh:16306 need a matching tag $matchklzzwxh:16021$fromklzzwxh:16022klzzwxh:16307klzzwxh:16973klzzwxh:16308klzzwxh:16309klzzwxh:16310klzzwxh:16311klzzwxh:16312klzzwxh:16313klzzwxh:16314klzzwxh:16315klzzwxh:16316klzzwxh:16317klzzwxh:16318klzzwxh:16319klzzwxh:16320 foreach to $totags klzzwxh:16023klzzwxh:16974klzzwxh:16321klzzwxh:16322klzzwxh:16323klzzwxh:16324klzzwxh:16325klzzwxh:16326klzzwxh:16327klzzwxh:16328klzzwxh:16329klzzwxh:16330klzzwxh:16331klzzwxh:16332klzzwxh:16333klzzwxh:16334klzzwxh:16335klzzwxh:16336 genklzzwxh:16024log:log D klzzwxh:16337klzzwxh:16338klzzwxh:16339klzzwxh:16340 comparing $matchklzzwxh:16025$fromklzzwxh:16026 to $toklzzwxh:16341klzzwxh:16975klzzwxh:16342klzzwxh:16343klzzwxh:16344klzzwxh:16345klzzwxh:16346klzzwxh:16347klzzwxh:16348klzzwxh:16349klzzwxh:16350klzzwxh:16351klzzwxh:16352klzzwxh:16353klzzwxh:16354klzzwxh:16355klzzwxh:16356klzzwxh:16357 if klzzwxh:16027klzzwxh:16028string equal $to $matchklzzwxh:16029$fromklzzwxh:16030klzzwxh:16031klzzwxh:16032 klzzwxh:16033klzzwxh:16976klzzwxh:16358klzzwxh:16359klzzwxh:16360klzzwxh:16361klzzwxh:16362klzzwxh:16363klzzwxh:16364klzzwxh:16365klzzwxh:16366klzzwxh:16367klzzwxh:16368klzzwxh:16369klzzwxh:16370klzzwxh:16371klzzwxh:16372klzzwxh:16373klzzwxh:16374klzzwxh:16375klzzwxh:16376 genklzzwxh:16034log:log D klzzwxh:16377klzzwxh:16378 to $to at $xyklzzwxh:16035$toklzzwxh:16036klzzwxh:16379klzzwxh:16977klzzwxh:16380klzzwxh:16381klzzwxh:16382klzzwxh:16383klzzwxh:16384klzzwxh:16385klzzwxh:16386klzzwxh:16387klzzwxh:16388klzzwxh:16389klzzwxh:16390klzzwxh:16391klzzwxh:16392klzzwxh:16393klzzwxh:16394klzzwxh:16395klzzwxh:16396klzzwxh:16397klzzwxh:16398 set xto klzzwxh:16037lindex $xyklzzwxh:16038$toklzzwxh:16039 0klzzwxh:16040klzzwxh:16978klzzwxh:16399klzzwxh:16400klzzwxh:16401klzzwxh:16402klzzwxh:16403klzzwxh:16404klzzwxh:16405klzzwxh:16406klzzwxh:16407klzzwxh:16408klzzwxh:16409klzzwxh:16410klzzwxh:16411klzzwxh:16412klzzwxh:16413klzzwxh:16414klzzwxh:16415klzzwxh:16416klzzwxh:16417 set yto klzzwxh:16041lindex $xyklzzwxh:16042$toklzzwxh:16043 1klzzwxh:16044klzzwxh:16979klzzwxh:16418klzzwxh:16419klzzwxh:16420klzzwxh:16421klzzwxh:16422klzzwxh:16423klzzwxh:16424klzzwxh:16425klzzwxh:16426klzzwxh:16427klzzwxh:16428klzzwxh:16429klzzwxh:16430klzzwxh:16431klzzwxh:16432klzzwxh:16433klzzwxh:16434klzzwxh:16435klzzwxh:16436 set xmid $xtoklzzwxh:16980klzzwxh:16437klzzwxh:16438klzzwxh:16439klzzwxh:16440klzzwxh:16441klzzwxh:16442klzzwxh:16443klzzwxh:16444klzzwxh:16445klzzwxh:16446klzzwxh:16447klzzwxh:16448klzzwxh:16449klzzwxh:16450klzzwxh:16451klzzwxh:16452klzzwxh:16453klzzwxh:16454klzzwxh:16455 set ymid $ytoklzzwxh:16981klzzwxh:16456klzzwxh:16457klzzwxh:16458klzzwxh:16459klzzwxh:16460klzzwxh:16461klzzwxh:16462klzzwxh:16463klzzwxh:16464klzzwxh:16465klzzwxh:16466klzzwxh:16467klzzwxh:16468klzzwxh:16469klzzwxh:16470klzzwxh:16471klzzwxh:16472klzzwxh:16473klzzwxh:16474 if klzzwxh:16045$xto klzzwxh:16475 $xfromklzzwxh:16046 klzzwxh:16047klzzwxh:16982klzzwxh:16476klzzwxh:16477klzzwxh:16478klzzwxh:16479klzzwxh:16480klzzwxh:16481klzzwxh:16482klzzwxh:16483klzzwxh:16484klzzwxh:16485klzzwxh:16486klzzwxh:16487klzzwxh:16488klzzwxh:16489klzzwxh:16490klzzwxh:16491klzzwxh:16492klzzwxh:16493klzzwxh:16494klzzwxh:16495klzzwxh:16496 set xfrom klzzwxh:16048expr klzzwxh:16049$xfrom + $boxwidthklzzwxh:16050$fromklzzwxh:16051klzzwxh:16052klzzwxh:16053klzzwxh:16983klzzwxh:16497klzzwxh:16498klzzwxh:16499klzzwxh:16500klzzwxh:16501klzzwxh:16502klzzwxh:16503klzzwxh:16504klzzwxh:16505klzzwxh:16506klzzwxh:16507klzzwxh:16508klzzwxh:16509klzzwxh:16510klzzwxh:16511klzzwxh:16512klzzwxh:16513klzzwxh:16514klzzwxh:16515klzzwxh:16516klzzwxh:16517 set yfrom klzzwxh:16054expr klzzwxh:16055$yfrom - klzzwxh:16056$boxklzzwxh:16057height / 2klzzwxh:16058klzzwxh:16059klzzwxh:16060klzzwxh:16984klzzwxh:16518klzzwxh:16519klzzwxh:16520klzzwxh:16521klzzwxh:16522klzzwxh:16523klzzwxh:16524klzzwxh:16525klzzwxh:16526klzzwxh:16527klzzwxh:16528klzzwxh:16529klzzwxh:16530klzzwxh:16531klzzwxh:16532klzzwxh:16533klzzwxh:16534klzzwxh:16535klzzwxh:16536klzzwxh:16537klzzwxh:16538 set yto klzzwxh:16061expr klzzwxh:16062$yto - klzzwxh:16063$boxklzzwxh:16064height / 2klzzwxh:16065klzzwxh:16066klzzwxh:16067klzzwxh:16985klzzwxh:16539klzzwxh:16540klzzwxh:16541klzzwxh:16542klzzwxh:16543klzzwxh:16544klzzwxh:16545klzzwxh:16546klzzwxh:16547klzzwxh:16548klzzwxh:16549klzzwxh:16550klzzwxh:16551klzzwxh:16552klzzwxh:16553klzzwxh:16554klzzwxh:16555klzzwxh:16556klzzwxh:16557klzzwxh:16558klzzwxh:16559 set xmid klzzwxh:16068expr klzzwxh:16069$xfrom + klzzwxh:16070klzzwxh:16071$xto - $xfromklzzwxh:16072 / 2klzzwxh:16073klzzwxh:16074klzzwxh:16075klzzwxh:16986klzzwxh:16560klzzwxh:16561klzzwxh:16562klzzwxh:16563klzzwxh:16564klzzwxh:16565klzzwxh:16566klzzwxh:16567klzzwxh:16568klzzwxh:16569klzzwxh:16570klzzwxh:16571klzzwxh:16572klzzwxh:16573klzzwxh:16574klzzwxh:16575klzzwxh:16576klzzwxh:16577klzzwxh:16578klzzwxh:16579klzzwxh:16580 set ymid klzzwxh:16076expr klzzwxh:16077$yto - $boxklzzwxh:16078heightklzzwxh:16079klzzwxh:16080klzzwxh:16987klzzwxh:16581klzzwxh:16582klzzwxh:16583klzzwxh:16584klzzwxh:16585klzzwxh:16586klzzwxh:16587klzzwxh:16588klzzwxh:16589klzzwxh:16590klzzwxh:16591klzzwxh:16592klzzwxh:16593klzzwxh:16594klzzwxh:16595klzzwxh:16596klzzwxh:16597klzzwxh:16598klzzwxh:16599 klzzwxh:16081 elseif klzzwxh:16082$xfrom klzzwxh:16600 $xtoklzzwxh:16083 klzzwxh:16084klzzwxh:16988klzzwxh:16601klzzwxh:16602klzzwxh:16603klzzwxh:16604klzzwxh:16605klzzwxh:16606klzzwxh:16607klzzwxh:16608klzzwxh:16609klzzwxh:16610klzzwxh:16611klzzwxh:16612klzzwxh:16613klzzwxh:16614klzzwxh:16615klzzwxh:16616klzzwxh:16617klzzwxh:16618klzzwxh:16619klzzwxh:16620klzzwxh:16621 set xto klzzwxh:16085expr klzzwxh:16086$xto + $boxwidthklzzwxh:16087$toklzzwxh:16088klzzwxh:16089klzzwxh:16090klzzwxh:16989klzzwxh:16622klzzwxh:16623klzzwxh:16624klzzwxh:16625klzzwxh:16626klzzwxh:16627klzzwxh:16628klzzwxh:16629klzzwxh:16630klzzwxh:16631klzzwxh:16632klzzwxh:16633klzzwxh:16634klzzwxh:16635klzzwxh:16636klzzwxh:16637klzzwxh:16638klzzwxh:16639klzzwxh:16640klzzwxh:16641klzzwxh:16642 set xmid klzzwxh:16091expr klzzwxh:16092$xto + klzzwxh:16093klzzwxh:16094$xfrom - $xtoklzzwxh:16095 / 2klzzwxh:16096klzzwxh:16097klzzwxh:16098klzzwxh:16990klzzwxh:16643klzzwxh:16644klzzwxh:16645klzzwxh:16646klzzwxh:16647klzzwxh:16648klzzwxh:16649klzzwxh:16650klzzwxh:16651klzzwxh:16652klzzwxh:16653klzzwxh:16654klzzwxh:16655klzzwxh:16656klzzwxh:16657klzzwxh:16658klzzwxh:16659klzzwxh:16660klzzwxh:16661klzzwxh:16662klzzwxh:16663 set ymid klzzwxh:16099expr klzzwxh:16100$yto + klzzwxh:16101$boxklzzwxh:16102height / 2klzzwxh:16103klzzwxh:16104klzzwxh:16105klzzwxh:16991klzzwxh:16664klzzwxh:16665klzzwxh:16666klzzwxh:16667klzzwxh:16668klzzwxh:16669klzzwxh:16670klzzwxh:16671klzzwxh:16672klzzwxh:16673klzzwxh:16674klzzwxh:16675klzzwxh:16676klzzwxh:16677klzzwxh:16678klzzwxh:16679klzzwxh:16680klzzwxh:16681klzzwxh:16682 klzzwxh:16106klzzwxh:16992klzzwxh:16683klzzwxh:16684klzzwxh:16685klzzwxh:16686klzzwxh:16687klzzwxh:16688klzzwxh:16689klzzwxh:16690klzzwxh:16691klzzwxh:16692klzzwxh:16693klzzwxh:16694klzzwxh:16695klzzwxh:16696klzzwxh:16697klzzwxh:16698klzzwxh:16699klzzwxh:16700klzzwxh:16701 if klzzwxh:16107$xto == $xfromklzzwxh:16108 klzzwxh:16109klzzwxh:16993klzzwxh:16702klzzwxh:16703klzzwxh:16704klzzwxh:16705klzzwxh:16706klzzwxh:16707klzzwxh:16708klzzwxh:16709klzzwxh:16710klzzwxh:16711klzzwxh:16712klzzwxh:16713klzzwxh:16714klzzwxh:16715klzzwxh:16716klzzwxh:16717klzzwxh:16718klzzwxh:16719klzzwxh:16720klzzwxh:16721klzzwxh:16722 set xmid klzzwxh:16110expr klzzwxh:16111$xto - klzzwxh:16112$boxwidthklzzwxh:16113$fromklzzwxh:16114 / 2klzzwxh:16115klzzwxh:16116klzzwxh:16117klzzwxh:16994klzzwxh:16723klzzwxh:16724klzzwxh:16725klzzwxh:16726klzzwxh:16727klzzwxh:16728klzzwxh:16729klzzwxh:16730klzzwxh:16731klzzwxh:16732klzzwxh:16733klzzwxh:16734klzzwxh:16735klzzwxh:16736klzzwxh:16737klzzwxh:16738klzzwxh:16739klzzwxh:16740klzzwxh:16741klzzwxh:16742klzzwxh:16743 set ymid klzzwxh:16118expr klzzwxh:16119$yfrom - klzzwxh:16120klzzwxh:16121$yfrom - $ytoklzzwxh:16122 / 2klzzwxh:16123klzzwxh:16124klzzwxh:16125klzzwxh:16995klzzwxh:16744klzzwxh:16745klzzwxh:16746klzzwxh:16747klzzwxh:16748klzzwxh:16749klzzwxh:16750klzzwxh:16751klzzwxh:16752klzzwxh:16753klzzwxh:16754klzzwxh:16755klzzwxh:16756klzzwxh:16757klzzwxh:16758klzzwxh:16759klzzwxh:16760klzzwxh:16761klzzwxh:16762 klzzwxh:16126klzzwxh:16996klzzwxh:16763klzzwxh:16764klzzwxh:16765klzzwxh:16766klzzwxh:16767klzzwxh:16768klzzwxh:16769klzzwxh:16770klzzwxh:16771klzzwxh:16772klzzwxh:16773klzzwxh:16774klzzwxh:16775klzzwxh:16776klzzwxh:16777klzzwxh:16778klzzwxh:16779klzzwxh:16780klzzwxh:16781 $logcanvas.canvas create line klzzwxh:16127klzzwxh:16782klzzwxh:16783klzzwxh:16784klzzwxh:16785klzzwxh:16786klzzwxh:16787klzzwxh:16788klzzwxh:16789klzzwxh:16790klzzwxh:16791klzzwxh:16792klzzwxh:16793klzzwxh:16794klzzwxh:16795klzzwxh:16796klzzwxh:16797klzzwxh:16798klzzwxh:16799klzzwxh:16800klzzwxh:16801klzzwxh:16802 $xfrom $yfrom $xmid $ymid $xto $yto klzzwxh:16128klzzwxh:16803klzzwxh:16804klzzwxh:16805klzzwxh:16806klzzwxh:16807klzzwxh:16808klzzwxh:16809klzzwxh:16810klzzwxh:16811klzzwxh:16812klzzwxh:16813klzzwxh:16814klzzwxh:16815klzzwxh:16816klzzwxh:16817klzzwxh:16818klzzwxh:16819klzzwxh:16820klzzwxh:16821klzzwxh:16822klzzwxh:16823 -arrow first -smooth 1klzzwxh:16997klzzwxh:16824klzzwxh:16825klzzwxh:16826klzzwxh:16827klzzwxh:16828klzzwxh:16829klzzwxh:16830klzzwxh:16831klzzwxh:16832klzzwxh:16833klzzwxh:16834klzzwxh:16835klzzwxh:16836klzzwxh:16837klzzwxh:16838klzzwxh:16839 klzzwxh:16129klzzwxh:16998klzzwxh:16840klzzwxh:16841klzzwxh:16842klzzwxh:16843klzzwxh:16844klzzwxh:16845klzzwxh:16846klzzwxh:16847klzzwxh:16848klzzwxh:16849klzzwxh:16850klzzwxh:16851klzzwxh:16852 klzzwxh:16130klzzwxh:16999klzzwxh:16853klzzwxh:16854klzzwxh:16855klzzwxh:16856klzzwxh:16857klzzwxh:16858klzzwxh:16859klzzwxh:16860klzzwxh:16861klzzwxh:16862klzzwxh:16863 klzzwxh:16131klzzwxh:17000klzzwxh:16864klzzwxh:16865klzzwxh:16866klzzwxh:16867klzzwxh:16868klzzwxh:16869klzzwxh:16870klzzwxh:16871klzzwxh:16872 klzzwxh:16132klzzwxh:17001klzzwxh:16873klzzwxh:16874klzzwxh:16875klzzwxh:16876klzzwxh:16877klzzwxh:16878klzzwxh:16879klzzwxh:16880klzzwxh:16881 klzzwxh:16133 Reselect the previously selected revisionsklzzwxh:17002klzzwxh:16882klzzwxh:16883klzzwxh:16884klzzwxh:16885klzzwxh:16886klzzwxh:16887klzzwxh:16888klzzwxh:16889klzzwxh:16890 variable selklzzwxh:16134tagklzzwxh:17003klzzwxh:16891klzzwxh:16892klzzwxh:16893klzzwxh:16894klzzwxh:16895klzzwxh:16896klzzwxh:16897klzzwxh:16898klzzwxh:16899 variable selklzzwxh:16135revklzzwxh:17004klzzwxh:16900klzzwxh:16901klzzwxh:16902klzzwxh:16903klzzwxh:16904 foreach AorB klzzwxh:16136A Bklzzwxh:16137 klzzwxh:16138klzzwxh:17005klzzwxh:16905klzzwxh:16906klzzwxh:16907klzzwxh:16908klzzwxh:16909klzzwxh:16910klzzwxh:16911klzzwxh:16912klzzwxh:16913klzzwxh:16914klzzwxh:16915 SetSelection $AorB $selklzzwxh:16139tagklzzwxh:16140$AorBklzzwxh:16141 $selklzzwxh:16142revklzzwxh:16143$AorBklzzwxh:16144klzzwxh:17006klzzwxh:16916klzzwxh:16917klzzwxh:16918klzzwxh:16919klzzwxh:16920klzzwxh:16921klzzwxh:16922klzzwxh:16923klzzwxh:16924 klzzwxh:16145klzzwxh:17007klzzwxh:16925klzzwxh:16926klzzwxh:16927klzzwxh:16928klzzwxh:16929klzzwxh:16930klzzwxh:16931klzzwxh:16932klzzwxh:16933 busyklzzwxh:16146done $logcanvasklzzwxh:17008klzzwxh:16934klzzwxh:16935klzzwxh:16936klzzwxh:16937klzzwxh:16938klzzwxh:16939klzzwxh:16940 klzzwxh:16147klzzwxh:17009klzzwxh:16941klzzwxh:16942klzzwxh:16943klzzwxh:16944klzzwxh:16945klzzwxh:16946klzzwxh:16947 genklzzwxh:16148log:log T klzzwxh:16948LEAVEklzzwxh:16949klzzwxh:17010klzzwxh:16950klzzwxh:16951klzzwxh:16952klzzwxh:16953klzzwxh:16954klzzwxh:16955klzzwxh:16956 returnklzzwxh:17011klzzwxh:16957klzzwxh:16958klzzwxh:16959klzzwxh:16960klzzwxh:16961 klzzwxh:16149

    klzzwxh:17015klzzwxh:17016klzzwxh:17017klzzwxh:17018klzzwxh:17019 proc SaveOptions klzzwxh:17012klzzwxh:17013 klzzwxh:17014klzzwxh:17041klzzwxh:17020klzzwxh:17021klzzwxh:17022klzzwxh:17023klzzwxh:17024klzzwxh:17025klzzwxh:17026 global logcfgklzzwxh:17042klzzwxh:17027klzzwxh:17028klzzwxh:17029klzzwxh:17030klzzwxh:17031klzzwxh:17032klzzwxh:17033 variable optklzzwxh:17043klzzwxh:17034klzzwxh:17035klzzwxh:17036klzzwxh:17037klzzwxh:17038klzzwxh:17039klzzwxh:17040 variable loc

    klzzwxh:17064klzzwxh:17065klzzwxh:17066klzzwxh:17067klzzwxh:17068klzzwxh:17069klzzwxh:17070 klzzwxh:17044 Save the options to the global setklzzwxh:17124klzzwxh:17071klzzwxh:17072klzzwxh:17073klzzwxh:17074klzzwxh:17075klzzwxh:17076klzzwxh:17077 set logcfgklzzwxh:17045updateklzzwxh:17046drawingklzzwxh:17047 $optklzzwxh:17048updateklzzwxh:17049drawingklzzwxh:17050klzzwxh:17125klzzwxh:17078klzzwxh:17079klzzwxh:17080klzzwxh:17081klzzwxh:17082klzzwxh:17083klzzwxh:17084 foreach klzzwxh:17051key valueklzzwxh:17052 klzzwxh:17053array get optklzzwxh:17054 klzzwxh:17055klzzwxh:17126klzzwxh:17085klzzwxh:17086klzzwxh:17087klzzwxh:17088klzzwxh:17089klzzwxh:17090klzzwxh:17091klzzwxh:17092klzzwxh:17093 genklzzwxh:17056log:log D klzzwxh:17094logcfgklzzwxh:17057$keyklzzwxh:17058 $valueklzzwxh:17095klzzwxh:17127klzzwxh:17096klzzwxh:17097klzzwxh:17098klzzwxh:17099klzzwxh:17100klzzwxh:17101klzzwxh:17102klzzwxh:17103klzzwxh:17104 set logcfgklzzwxh:17059$keyklzzwxh:17060 $valueklzzwxh:17128klzzwxh:17105klzzwxh:17106klzzwxh:17107klzzwxh:17108klzzwxh:17109klzzwxh:17110klzzwxh:17111 klzzwxh:17061klzzwxh:17129klzzwxh:17112klzzwxh:17113klzzwxh:17114klzzwxh:17115klzzwxh:17116klzzwxh:17117klzzwxh:17118 saveklzzwxh:17062optionsklzzwxh:17130klzzwxh:17119klzzwxh:17120klzzwxh:17121klzzwxh:17122klzzwxh:17123 klzzwxh:17063

    klzzwxh:17337klzzwxh:17338klzzwxh:17339klzzwxh:17340klzzwxh:17341 proc Search klzzwxh:17131klzzwxh:17132 klzzwxh:17133klzzwxh:18179klzzwxh:17342klzzwxh:17343klzzwxh:17344klzzwxh:17345klzzwxh:17346klzzwxh:17347klzzwxh:17348 variable logcanvasklzzwxh:18180klzzwxh:17349klzzwxh:17350klzzwxh:17351klzzwxh:17352klzzwxh:17353klzzwxh:17354klzzwxh:17355 variable fontklzzwxh:17134boldklzzwxh:18181klzzwxh:17356klzzwxh:17357klzzwxh:17358klzzwxh:17359klzzwxh:17360klzzwxh:17361klzzwxh:17362 variable searchklzzwxh:17135elementsklzzwxh:18182klzzwxh:17363klzzwxh:17364klzzwxh:17365klzzwxh:17366klzzwxh:17367klzzwxh:17368klzzwxh:17369 variable searchklzzwxh:17136indexklzzwxh:18183klzzwxh:17370klzzwxh:17371klzzwxh:17372klzzwxh:17373klzzwxh:17374klzzwxh:17375klzzwxh:17376 variable searchklzzwxh:17137lastfillklzzwxh:18184klzzwxh:17377klzzwxh:17378klzzwxh:17379klzzwxh:17380klzzwxh:17381klzzwxh:17382klzzwxh:17383 variable searchklzzwxh:17138lastpatternklzzwxh:18185klzzwxh:17384klzzwxh:17385klzzwxh:17386klzzwxh:17387klzzwxh:17388klzzwxh:17389klzzwxh:17390 variable searchklzzwxh:17139lastcaseklzzwxh:18186klzzwxh:17391klzzwxh:17392klzzwxh:17393klzzwxh:17394klzzwxh:17395klzzwxh:17396klzzwxh:17397 variable searchklzzwxh:17140nocaseklzzwxh:18187klzzwxh:17398klzzwxh:17399klzzwxh:17400klzzwxh:17401klzzwxh:17402klzzwxh:17403klzzwxh:17404 klzzwxh:17141 Restore last fill colorklzzwxh:18188klzzwxh:17405klzzwxh:17406klzzwxh:17407klzzwxh:17408klzzwxh:17409klzzwxh:17410klzzwxh:17411 if klzzwxh:17142klzzwxh:17143string length $searchklzzwxh:17144lastfillklzzwxh:17145 klzzwxh:17146= 0klzzwxh:17147 klzzwxh:17148klzzwxh:18189klzzwxh:17412klzzwxh:17413klzzwxh:17414klzzwxh:17415klzzwxh:17416klzzwxh:17417klzzwxh:17418klzzwxh:17419klzzwxh:17420 $logcanvas.canvas itemconfigure klzzwxh:17149lindex $searchklzzwxh:17150elements $searchklzzwxh:17151indexklzzwxh:17152 -fill $searchklzzwxh:17153lastfillklzzwxh:18190klzzwxh:17421klzzwxh:17422klzzwxh:17423klzzwxh:17424klzzwxh:17425klzzwxh:17426klzzwxh:17427 klzzwxh:17154klzzwxh:18191klzzwxh:17428klzzwxh:17429klzzwxh:17430klzzwxh:17431klzzwxh:17432klzzwxh:17433klzzwxh:17434 klzzwxh:17155 Read search pattern from entry boxklzzwxh:18192klzzwxh:17435klzzwxh:17436klzzwxh:17437klzzwxh:17438klzzwxh:17439klzzwxh:17440klzzwxh:17441 set pattern klzzwxh:17156string trim klzzwxh:17157$logcanvas.up.search.e getklzzwxh:17158klzzwxh:17159klzzwxh:18193klzzwxh:17442klzzwxh:17443klzzwxh:17444klzzwxh:17445klzzwxh:17446klzzwxh:17447klzzwxh:17448 klzzwxh:17160 Check if search pattern or nocase flag have been changed since the last callklzzwxh:18194klzzwxh:17449klzzwxh:17450klzzwxh:17451klzzwxh:17452klzzwxh:17453klzzwxh:17454klzzwxh:17455 if klzzwxh:17161klzzwxh:17162klzzwxh:17163string equal $pattern $searchklzzwxh:17164lastpatternklzzwxh:17165 == 0klzzwxh:17166 || klzzwxh:17167$searchklzzwxh:17168lastcase klzzwxh:17169= $searchklzzwxh:17170nocaseklzzwxh:17171klzzwxh:17172 klzzwxh:17173klzzwxh:18195klzzwxh:17456klzzwxh:17457klzzwxh:17458klzzwxh:17459klzzwxh:17460klzzwxh:17461klzzwxh:17462klzzwxh:17463klzzwxh:17464 klzzwxh:17174 Rebuild matching element listklzzwxh:18196klzzwxh:17465klzzwxh:17466klzzwxh:17467klzzwxh:17468klzzwxh:17469klzzwxh:17470klzzwxh:17471klzzwxh:17472klzzwxh:17473 set searchklzzwxh:17175lastpattern $patternklzzwxh:18197klzzwxh:17474klzzwxh:17475klzzwxh:17476klzzwxh:17477klzzwxh:17478klzzwxh:17479klzzwxh:17480klzzwxh:17481klzzwxh:17482 set searchklzzwxh:17176lastcase $searchklzzwxh:17177nocaseklzzwxh:18198klzzwxh:17483klzzwxh:17484klzzwxh:17485klzzwxh:17486klzzwxh:17487klzzwxh:17488klzzwxh:17489klzzwxh:17490klzzwxh:17491 set searchklzzwxh:17178elements klzzwxh:17179listklzzwxh:17180klzzwxh:18199klzzwxh:17492klzzwxh:17493klzzwxh:17494klzzwxh:17495klzzwxh:17496klzzwxh:17497klzzwxh:17498klzzwxh:17499klzzwxh:17500 klzzwxh:17181 Ignore empty patternsklzzwxh:18200klzzwxh:17501klzzwxh:17502klzzwxh:17503klzzwxh:17504klzzwxh:17505klzzwxh:17506klzzwxh:17507klzzwxh:17508klzzwxh:17509 if klzzwxh:17182klzzwxh:17183string length $patternklzzwxh:17184 klzzwxh:17185= 0klzzwxh:17186 klzzwxh:17187klzzwxh:18201klzzwxh:17510klzzwxh:17511klzzwxh:17512klzzwxh:17513klzzwxh:17514klzzwxh:17515klzzwxh:17516klzzwxh:17517klzzwxh:17518klzzwxh:17519klzzwxh:17520 klzzwxh:17188 Loop over all elements in canvas that have text elementsklzzwxh:18202klzzwxh:17521klzzwxh:17522klzzwxh:17523klzzwxh:17524klzzwxh:17525klzzwxh:17526klzzwxh:17527klzzwxh:17528klzzwxh:17529klzzwxh:17530klzzwxh:17531 foreach element klzzwxh:17189$logcanvas.canvas find withtag allklzzwxh:17190 klzzwxh:17191klzzwxh:18203klzzwxh:17532klzzwxh:17533klzzwxh:17534klzzwxh:17535klzzwxh:17536klzzwxh:17537klzzwxh:17538klzzwxh:17539klzzwxh:17540klzzwxh:17541klzzwxh:17542klzzwxh:17543klzzwxh:17544 if klzzwxh:17192klzzwxh:17193catch klzzwxh:17194$logcanvas.canvas itemcget $element -textklzzwxh:17195 textklzzwxh:17196 == 0klzzwxh:17197 klzzwxh:17198klzzwxh:18204klzzwxh:17545klzzwxh:17546klzzwxh:17547klzzwxh:17548klzzwxh:17549klzzwxh:17550klzzwxh:17551klzzwxh:17552klzzwxh:17553klzzwxh:17554klzzwxh:17555klzzwxh:17556klzzwxh:17557klzzwxh:17558klzzwxh:17559 klzzwxh:17199 Check if text element matches search patternklzzwxh:18205klzzwxh:17560klzzwxh:17561klzzwxh:17562klzzwxh:17563klzzwxh:17564klzzwxh:17565klzzwxh:17566klzzwxh:17567klzzwxh:17568klzzwxh:17569klzzwxh:17570klzzwxh:17571klzzwxh:17572klzzwxh:17573klzzwxh:17574 if klzzwxh:17200klzzwxh:17201string is true $searchklzzwxh:17202nocaseklzzwxh:17203klzzwxh:17204 klzzwxh:17205klzzwxh:18206klzzwxh:17575klzzwxh:17576klzzwxh:17577klzzwxh:17578klzzwxh:17579klzzwxh:17580klzzwxh:17581klzzwxh:17582klzzwxh:17583klzzwxh:17584klzzwxh:17585klzzwxh:17586klzzwxh:17587klzzwxh:17588klzzwxh:17589klzzwxh:17590klzzwxh:17591 if klzzwxh:17206klzzwxh:17207string match -nocase $pattern $textklzzwxh:17208klzzwxh:17209 klzzwxh:17210klzzwxh:18207klzzwxh:17592klzzwxh:17593klzzwxh:17594klzzwxh:17595klzzwxh:17596klzzwxh:17597klzzwxh:17598klzzwxh:17599klzzwxh:17600klzzwxh:17601klzzwxh:17602klzzwxh:17603klzzwxh:17604klzzwxh:17605klzzwxh:17606klzzwxh:17607klzzwxh:17608klzzwxh:17609klzzwxh:17610 klzzwxh:17211 Add element to list of matching elementsklzzwxh:18208klzzwxh:17611klzzwxh:17612klzzwxh:17613klzzwxh:17614klzzwxh:17615klzzwxh:17616klzzwxh:17617klzzwxh:17618klzzwxh:17619klzzwxh:17620klzzwxh:17621klzzwxh:17622klzzwxh:17623klzzwxh:17624klzzwxh:17625klzzwxh:17626klzzwxh:17627klzzwxh:17628klzzwxh:17629 lappend searchklzzwxh:17212elements $elementklzzwxh:18209klzzwxh:17630klzzwxh:17631klzzwxh:17632klzzwxh:17633klzzwxh:17634klzzwxh:17635klzzwxh:17636klzzwxh:17637klzzwxh:17638klzzwxh:17639klzzwxh:17640klzzwxh:17641klzzwxh:17642klzzwxh:17643klzzwxh:17644klzzwxh:17645klzzwxh:17646 klzzwxh:17213klzzwxh:18210klzzwxh:17647klzzwxh:17648klzzwxh:17649klzzwxh:17650klzzwxh:17651klzzwxh:17652klzzwxh:17653klzzwxh:17654klzzwxh:17655klzzwxh:17656klzzwxh:17657klzzwxh:17658klzzwxh:17659klzzwxh:17660klzzwxh:17661 klzzwxh:17214 else klzzwxh:17215klzzwxh:18211klzzwxh:17662klzzwxh:17663klzzwxh:17664klzzwxh:17665klzzwxh:17666klzzwxh:17667klzzwxh:17668klzzwxh:17669klzzwxh:17670klzzwxh:17671klzzwxh:17672klzzwxh:17673klzzwxh:17674klzzwxh:17675klzzwxh:17676klzzwxh:17677klzzwxh:17678 if klzzwxh:17216klzzwxh:17217string match $pattern $textklzzwxh:17218klzzwxh:17219 klzzwxh:17220klzzwxh:18212klzzwxh:17679klzzwxh:17680klzzwxh:17681klzzwxh:17682klzzwxh:17683klzzwxh:17684klzzwxh:17685klzzwxh:17686klzzwxh:17687klzzwxh:17688klzzwxh:17689klzzwxh:17690klzzwxh:17691klzzwxh:17692klzzwxh:17693klzzwxh:17694klzzwxh:17695klzzwxh:17696klzzwxh:17697 klzzwxh:17221 Add element to list of matching elementsklzzwxh:18213klzzwxh:17698klzzwxh:17699klzzwxh:17700klzzwxh:17701klzzwxh:17702klzzwxh:17703klzzwxh:17704klzzwxh:17705klzzwxh:17706klzzwxh:17707klzzwxh:17708klzzwxh:17709klzzwxh:17710klzzwxh:17711klzzwxh:17712klzzwxh:17713klzzwxh:17714klzzwxh:17715klzzwxh:17716 lappend searchklzzwxh:17222elements $elementklzzwxh:18214klzzwxh:17717klzzwxh:17718klzzwxh:17719klzzwxh:17720klzzwxh:17721klzzwxh:17722klzzwxh:17723klzzwxh:17724klzzwxh:17725klzzwxh:17726klzzwxh:17727klzzwxh:17728klzzwxh:17729klzzwxh:17730klzzwxh:17731klzzwxh:17732klzzwxh:17733 klzzwxh:17223klzzwxh:18215klzzwxh:17734klzzwxh:17735klzzwxh:17736klzzwxh:17737klzzwxh:17738klzzwxh:17739klzzwxh:17740klzzwxh:17741klzzwxh:17742klzzwxh:17743klzzwxh:17744klzzwxh:17745klzzwxh:17746klzzwxh:17747klzzwxh:17748 klzzwxh:17224klzzwxh:18216klzzwxh:17749klzzwxh:17750klzzwxh:17751klzzwxh:17752klzzwxh:17753klzzwxh:17754klzzwxh:17755klzzwxh:17756klzzwxh:17757klzzwxh:17758klzzwxh:17759klzzwxh:17760klzzwxh:17761 klzzwxh:17225klzzwxh:18217klzzwxh:17762klzzwxh:17763klzzwxh:17764klzzwxh:17765klzzwxh:17766klzzwxh:17767klzzwxh:17768klzzwxh:17769klzzwxh:17770klzzwxh:17771klzzwxh:17772 klzzwxh:17226klzzwxh:18218klzzwxh:17773klzzwxh:17774klzzwxh:17775klzzwxh:17776klzzwxh:17777klzzwxh:17778klzzwxh:17779klzzwxh:17780klzzwxh:17781 klzzwxh:17227klzzwxh:18219klzzwxh:17782klzzwxh:17783klzzwxh:17784klzzwxh:17785klzzwxh:17786klzzwxh:17787klzzwxh:17788klzzwxh:17789klzzwxh:17790 klzzwxh:17228 Reset highlight indexklzzwxh:18220klzzwxh:17791klzzwxh:17792klzzwxh:17793klzzwxh:17794klzzwxh:17795klzzwxh:17796klzzwxh:17797klzzwxh:17798klzzwxh:17799 set searchklzzwxh:17229index 0klzzwxh:18221klzzwxh:17800klzzwxh:17801klzzwxh:17802klzzwxh:17803klzzwxh:17804klzzwxh:17805klzzwxh:17806 klzzwxh:17230 Pattern has not been changed since last call and there have beenklzzwxh:18222klzzwxh:17807klzzwxh:17808klzzwxh:17809klzzwxh:17810klzzwxh:17811klzzwxh:17812klzzwxh:17813 klzzwxh:17231 matching elements found in the last callklzzwxh:18223klzzwxh:17814klzzwxh:17815klzzwxh:17816klzzwxh:17817klzzwxh:17818klzzwxh:17819klzzwxh:17820 klzzwxh:17232 elseif klzzwxh:17233klzzwxh:17234llength $searchklzzwxh:17235elementsklzzwxh:17236 klzzwxh:17237= 0klzzwxh:17238 klzzwxh:17239klzzwxh:18224klzzwxh:17821klzzwxh:17822klzzwxh:17823klzzwxh:17824klzzwxh:17825klzzwxh:17826klzzwxh:17827klzzwxh:17828klzzwxh:17829 klzzwxh:17240 Select next matching element klzzwxh:17241restart if last one has been passedklzzwxh:17242klzzwxh:18225klzzwxh:17830klzzwxh:17831klzzwxh:17832klzzwxh:17833klzzwxh:17834klzzwxh:17835klzzwxh:17836klzzwxh:17837klzzwxh:17838 incr searchklzzwxh:17243indexklzzwxh:18226klzzwxh:17839klzzwxh:17840klzzwxh:17841klzzwxh:17842klzzwxh:17843klzzwxh:17844klzzwxh:17845klzzwxh:17846klzzwxh:17847 if klzzwxh:17244$searchklzzwxh:17245index klzzwxh:17848= klzzwxh:17246llength $searchklzzwxh:17247elementsklzzwxh:17248klzzwxh:17249 klzzwxh:17250klzzwxh:18227klzzwxh:17849klzzwxh:17850klzzwxh:17851klzzwxh:17852klzzwxh:17853klzzwxh:17854klzzwxh:17855klzzwxh:17856klzzwxh:17857klzzwxh:17858klzzwxh:17859 set searchklzzwxh:17251index 0klzzwxh:18228klzzwxh:17860klzzwxh:17861klzzwxh:17862klzzwxh:17863klzzwxh:17864klzzwxh:17865klzzwxh:17866klzzwxh:17867klzzwxh:17868klzzwxh:17869klzzwxh:17870 puts -nonewline klzzwxh:17871klzzwxh:17252klzzwxh:17872klzzwxh:18229klzzwxh:17873klzzwxh:17874klzzwxh:17875klzzwxh:17876klzzwxh:17877klzzwxh:17878klzzwxh:17879klzzwxh:17880klzzwxh:17881klzzwxh:17882klzzwxh:17883 flush stdoutklzzwxh:18230klzzwxh:17884klzzwxh:17885klzzwxh:17886klzzwxh:17887klzzwxh:17888klzzwxh:17889klzzwxh:17890klzzwxh:17891klzzwxh:17892 klzzwxh:17253klzzwxh:18231klzzwxh:17893klzzwxh:17894klzzwxh:17895klzzwxh:17896klzzwxh:17897klzzwxh:17898klzzwxh:17899 klzzwxh:17254klzzwxh:18232klzzwxh:17900klzzwxh:17901klzzwxh:17902klzzwxh:17903klzzwxh:17904klzzwxh:17905klzzwxh:17906 klzzwxh:17255 Check if there are matching elementsklzzwxh:18233klzzwxh:17907klzzwxh:17908klzzwxh:17909klzzwxh:17910klzzwxh:17911klzzwxh:17912klzzwxh:17913 set length klzzwxh:17256llength $searchklzzwxh:17257elementsklzzwxh:17258klzzwxh:18234klzzwxh:17914klzzwxh:17915klzzwxh:17916klzzwxh:17917klzzwxh:17918klzzwxh:17919klzzwxh:17920 if klzzwxh:17259$length klzzwxh:17921 0klzzwxh:17260 klzzwxh:17261klzzwxh:18235klzzwxh:17922klzzwxh:17923klzzwxh:17924klzzwxh:17925klzzwxh:17926klzzwxh:17927klzzwxh:17928klzzwxh:17929klzzwxh:17930 $logcanvas.up.search.l configure -text klzzwxh:17931klzzwxh:17262expr $searchklzzwxh:17263index + 1klzzwxh:17264 / $lengthklzzwxh:17932klzzwxh:18236klzzwxh:17933klzzwxh:17934klzzwxh:17935klzzwxh:17936klzzwxh:17937klzzwxh:17938klzzwxh:17939klzzwxh:17940klzzwxh:17941 klzzwxh:17265 Scroll to next matching elementklzzwxh:18237klzzwxh:17942klzzwxh:17943klzzwxh:17944klzzwxh:17945klzzwxh:17946klzzwxh:17947klzzwxh:17948klzzwxh:17949klzzwxh:17950 set element klzzwxh:17266lindex $searchklzzwxh:17267elements $searchklzzwxh:17268indexklzzwxh:17269klzzwxh:18238klzzwxh:17951klzzwxh:17952klzzwxh:17953klzzwxh:17954klzzwxh:17955klzzwxh:17956klzzwxh:17957klzzwxh:17958klzzwxh:17959 set scrollregion klzzwxh:17270$logcanvas.canvas cget -scrollregionklzzwxh:17271klzzwxh:18239klzzwxh:17960klzzwxh:17961klzzwxh:17962klzzwxh:17963klzzwxh:17964klzzwxh:17965klzzwxh:17966klzzwxh:17967klzzwxh:17968 set coords klzzwxh:17272$logcanvas.canvas bbox $elementklzzwxh:17273klzzwxh:18240klzzwxh:17969klzzwxh:17970klzzwxh:17971klzzwxh:17972klzzwxh:17973klzzwxh:17974klzzwxh:17975klzzwxh:17976klzzwxh:17977 set sx1 klzzwxh:17274lindex $scrollregion 0klzzwxh:17275klzzwxh:18241klzzwxh:17978klzzwxh:17979klzzwxh:17980klzzwxh:17981klzzwxh:17982klzzwxh:17983klzzwxh:17984klzzwxh:17985klzzwxh:17986 set sy1 klzzwxh:17276lindex $scrollregion 1klzzwxh:17277klzzwxh:18242klzzwxh:17987klzzwxh:17988klzzwxh:17989klzzwxh:17990klzzwxh:17991klzzwxh:17992klzzwxh:17993klzzwxh:17994klzzwxh:17995 set sx2 klzzwxh:17278lindex $scrollregion 2klzzwxh:17279klzzwxh:18243klzzwxh:17996klzzwxh:17997klzzwxh:17998klzzwxh:17999klzzwxh:18000klzzwxh:18001klzzwxh:18002klzzwxh:18003klzzwxh:18004 set sy2 klzzwxh:17280lindex $scrollregion 3klzzwxh:17281klzzwxh:18244klzzwxh:18005klzzwxh:18006klzzwxh:18007klzzwxh:18008klzzwxh:18009klzzwxh:18010klzzwxh:18011klzzwxh:18012klzzwxh:18013 set ix1 klzzwxh:17282lindex $coords 0klzzwxh:17283klzzwxh:18245klzzwxh:18014klzzwxh:18015klzzwxh:18016klzzwxh:18017klzzwxh:18018klzzwxh:18019klzzwxh:18020klzzwxh:18021klzzwxh:18022 set iy1 klzzwxh:17284lindex $coords 1klzzwxh:17285klzzwxh:18246klzzwxh:18023klzzwxh:18024klzzwxh:18025klzzwxh:18026klzzwxh:18027klzzwxh:18028klzzwxh:18029klzzwxh:18030klzzwxh:18031 set ix2 klzzwxh:17286lindex $coords 2klzzwxh:17287klzzwxh:18247klzzwxh:18032klzzwxh:18033klzzwxh:18034klzzwxh:18035klzzwxh:18036klzzwxh:18037klzzwxh:18038klzzwxh:18039klzzwxh:18040 set iy2 klzzwxh:17288lindex $coords 3klzzwxh:17289klzzwxh:18248klzzwxh:18041klzzwxh:18042klzzwxh:18043klzzwxh:18044klzzwxh:18045klzzwxh:18046klzzwxh:18047klzzwxh:18048klzzwxh:18049 set xview klzzwxh:17290$logcanvas.canvas xviewklzzwxh:17291klzzwxh:18249klzzwxh:18050klzzwxh:18051klzzwxh:18052klzzwxh:18053klzzwxh:18054klzzwxh:18055klzzwxh:18056klzzwxh:18057klzzwxh:18058 set yview klzzwxh:17292$logcanvas.canvas yviewklzzwxh:17293klzzwxh:18250klzzwxh:18059klzzwxh:18060klzzwxh:18061klzzwxh:18062klzzwxh:18063klzzwxh:18064klzzwxh:18065klzzwxh:18066klzzwxh:18067 set vx1 klzzwxh:17294lindex $xview 0klzzwxh:17295klzzwxh:18251klzzwxh:18068klzzwxh:18069klzzwxh:18070klzzwxh:18071klzzwxh:18072klzzwxh:18073klzzwxh:18074klzzwxh:18075klzzwxh:18076 set vx2 klzzwxh:17296lindex $xview 1klzzwxh:17297klzzwxh:18252klzzwxh:18077klzzwxh:18078klzzwxh:18079klzzwxh:18080klzzwxh:18081klzzwxh:18082klzzwxh:18083klzzwxh:18084klzzwxh:18085 set vy1 klzzwxh:17298lindex $yview 0klzzwxh:17299klzzwxh:18253klzzwxh:18086klzzwxh:18087klzzwxh:18088klzzwxh:18089klzzwxh:18090klzzwxh:18091klzzwxh:18092klzzwxh:18093klzzwxh:18094 set vy2 klzzwxh:17300lindex $yview 1klzzwxh:17301klzzwxh:18254klzzwxh:18095klzzwxh:18096klzzwxh:18097klzzwxh:18098klzzwxh:18099klzzwxh:18100klzzwxh:18101klzzwxh:18102klzzwxh:18103 set x klzzwxh:17302expr klzzwxh:17303klzzwxh:17304doubleklzzwxh:17305$ix1 - $sx1klzzwxh:17306 / doubleklzzwxh:17307$sx2 - $sx1klzzwxh:17308klzzwxh:17309 - klzzwxh:17310klzzwxh:17311$vx2 - $vx1klzzwxh:17312 / 2klzzwxh:17313klzzwxh:17314klzzwxh:17315klzzwxh:18255klzzwxh:18104klzzwxh:18105klzzwxh:18106klzzwxh:18107klzzwxh:18108klzzwxh:18109klzzwxh:18110klzzwxh:18111klzzwxh:18112 set y klzzwxh:17316expr klzzwxh:17317klzzwxh:17318doubleklzzwxh:17319$iy1 - $sy1klzzwxh:17320 / doubleklzzwxh:17321$sy2 - $sy1klzzwxh:17322klzzwxh:17323 - klzzwxh:17324klzzwxh:17325$vy2 - $vy1klzzwxh:17326 / 2klzzwxh:17327klzzwxh:17328klzzwxh:17329klzzwxh:18256klzzwxh:18113klzzwxh:18114klzzwxh:18115klzzwxh:18116klzzwxh:18117klzzwxh:18118klzzwxh:18119klzzwxh:18120klzzwxh:18121 $logcanvas.canvas xview moveto $xklzzwxh:18257klzzwxh:18122klzzwxh:18123klzzwxh:18124klzzwxh:18125klzzwxh:18126klzzwxh:18127klzzwxh:18128klzzwxh:18129klzzwxh:18130 $logcanvas.canvas yview moveto $yklzzwxh:18258klzzwxh:18131klzzwxh:18132klzzwxh:18133klzzwxh:18134klzzwxh:18135klzzwxh:18136klzzwxh:18137klzzwxh:18138klzzwxh:18139 set searchklzzwxh:17330lastfill klzzwxh:17331$logcanvas.canvas itemcget $element -fillklzzwxh:17332klzzwxh:18259klzzwxh:18140klzzwxh:18141klzzwxh:18142klzzwxh:18143klzzwxh:18144klzzwxh:18145klzzwxh:18146klzzwxh:18147klzzwxh:18148 $logcanvas.canvas itemconfigure $element -fill redklzzwxh:18260klzzwxh:18149klzzwxh:18150klzzwxh:18151klzzwxh:18152klzzwxh:18153klzzwxh:18154klzzwxh:18155 klzzwxh:17333 else klzzwxh:17334klzzwxh:18261klzzwxh:18156klzzwxh:18157klzzwxh:18158klzzwxh:18159klzzwxh:18160klzzwxh:18161klzzwxh:18162klzzwxh:18163klzzwxh:18164 $logcanvas.up.search.l configure -text klzzwxh:18165Not foundklzzwxh:18166klzzwxh:18262klzzwxh:18167klzzwxh:18168klzzwxh:18169klzzwxh:18170klzzwxh:18171klzzwxh:18172klzzwxh:18173 klzzwxh:17335klzzwxh:18263klzzwxh:18174klzzwxh:18175klzzwxh:18176klzzwxh:18177klzzwxh:18178 klzzwxh:17336

    klzzwxh:18837klzzwxh:18838klzzwxh:18839klzzwxh:18840klzzwxh:18841 klzzwxh:18264 Collect the user options from the global setklzzwxh:20883klzzwxh:18842klzzwxh:18843klzzwxh:18844klzzwxh:18845klzzwxh:18846 set optklzzwxh:18265updateklzzwxh:18266drawingklzzwxh:18267 $logcfgklzzwxh:18268updateklzzwxh:18269drawingklzzwxh:18270klzzwxh:20884klzzwxh:18847klzzwxh:18848klzzwxh:18849klzzwxh:18850klzzwxh:18851 set optklzzwxh:18271scaleklzzwxh:18272 $logcfgklzzwxh:18273scaleklzzwxh:18274klzzwxh:20885klzzwxh:18852klzzwxh:18853klzzwxh:18854klzzwxh:18855klzzwxh:18856 foreach klzzwxh:18275key valueklzzwxh:18276 klzzwxh:18277array get logcfg showklzzwxh:18278klzzwxh:18279klzzwxh:18280 klzzwxh:18281klzzwxh:20886klzzwxh:18857klzzwxh:18858klzzwxh:18859klzzwxh:18860klzzwxh:18861klzzwxh:18862klzzwxh:18863 set optklzzwxh:18282$keyklzzwxh:18283 $valueklzzwxh:20887klzzwxh:18864klzzwxh:18865klzzwxh:18866klzzwxh:18867klzzwxh:18868 klzzwxh:18284klzzwxh:20888klzzwxh:18869klzzwxh:18870klzzwxh:18871klzzwxh:18872klzzwxh:18873 toplevel $logcanvasklzzwxh:20889klzzwxh:18874klzzwxh:18875klzzwxh:18876klzzwxh:18877klzzwxh:18878 wm title $logcanvas klzzwxh:18879$sys Log $filenameklzzwxh:18880klzzwxh:20890klzzwxh:18881klzzwxh:18882klzzwxh:18883klzzwxh:18884klzzwxh:18885 $logcanvas configure -menu $logcanvas.menubarklzzwxh:20891klzzwxh:18886klzzwxh:18887klzzwxh:18888klzzwxh:18889klzzwxh:18890 menu $logcanvas.menubarklzzwxh:20892klzzwxh:18891 klzzwxh:20893klzzwxh:18892klzzwxh:18893klzzwxh:18894klzzwxh:18895klzzwxh:18896 $logcanvas.menubar add cascade -label klzzwxh:18897Fileklzzwxh:18898klzzwxh:18285klzzwxh:18899klzzwxh:18900klzzwxh:18901klzzwxh:18902klzzwxh:18903klzzwxh:18904klzzwxh:18905klzzwxh:18906 -menu $logcanvas.menubar.file -underline 0klzzwxh:20894klzzwxh:18907klzzwxh:18908klzzwxh:18909klzzwxh:18910klzzwxh:18911 menu $logcanvas.menubar.file -tearoff 0klzzwxh:20895klzzwxh:18912klzzwxh:18913klzzwxh:18914klzzwxh:18915klzzwxh:18916 $logcanvas.menubar.file add command -label klzzwxh:18917Shell windowklzzwxh:18918 -underline 0 klzzwxh:18286klzzwxh:18919klzzwxh:18920klzzwxh:18921klzzwxh:18922klzzwxh:18923klzzwxh:18924klzzwxh:18925 -command klzzwxh:18287exec::new $cvscfgklzzwxh:18288shellklzzwxh:18289klzzwxh:18290klzzwxh:20896klzzwxh:18926klzzwxh:18927klzzwxh:18928klzzwxh:18929klzzwxh:18930 $logcanvas.menubar.file add separatorklzzwxh:20897klzzwxh:18931klzzwxh:18932klzzwxh:18933klzzwxh:18934klzzwxh:18935 $logcanvas.menubar.file add command -label klzzwxh:18936Closeklzzwxh:18937 -underline 0 klzzwxh:18291klzzwxh:18938klzzwxh:18939klzzwxh:18940klzzwxh:18941klzzwxh:18942klzzwxh:18943klzzwxh:18944 -command klzzwxh:18292namespace code klzzwxh:18293$logcanvas.close invokeklzzwxh:18294klzzwxh:18295klzzwxh:20898klzzwxh:18945klzzwxh:18946klzzwxh:18947klzzwxh:18948klzzwxh:18949 $logcanvas.menubar.file add command -label klzzwxh:18950Exitklzzwxh:18951 -underline 1 klzzwxh:18296klzzwxh:18952klzzwxh:18953klzzwxh:18954klzzwxh:18955klzzwxh:18956klzzwxh:18957klzzwxh:18958 -command klzzwxh:18297 exitklzzwxh:18298cleanup 1 klzzwxh:18299klzzwxh:20899klzzwxh:18959klzzwxh:18960klzzwxh:18961klzzwxh:18962klzzwxh:18963 $logcanvas.menubar add cascade -label klzzwxh:18964Viewklzzwxh:18965klzzwxh:18300klzzwxh:18966klzzwxh:18967klzzwxh:18968klzzwxh:18969klzzwxh:18970klzzwxh:18971klzzwxh:18972klzzwxh:18973 -menu $logcanvas.menubar.view -underline 0klzzwxh:20900klzzwxh:18974klzzwxh:18975klzzwxh:18976klzzwxh:18977klzzwxh:18978 menu $logcanvas.menubar.view -tearoff 0klzzwxh:20901klzzwxh:18979klzzwxh:18980klzzwxh:18981klzzwxh:18982klzzwxh:18983 $logcanvas.menubar.view add cascade -label klzzwxh:18984Update When Drawingklzzwxh:18985 klzzwxh:18301klzzwxh:18986klzzwxh:18987klzzwxh:18988klzzwxh:18989klzzwxh:18990klzzwxh:18991klzzwxh:18992 -menu $logcanvas.menubar.view.updateklzzwxh:20902klzzwxh:18993klzzwxh:18994klzzwxh:18995klzzwxh:18996klzzwxh:18997 menu $logcanvas.menubar.view.updateklzzwxh:20903klzzwxh:18998klzzwxh:18999klzzwxh:19000klzzwxh:19001klzzwxh:19002 $logcanvas.menubar.view.update add radiobutton -label klzzwxh:19003Every Revisionklzzwxh:19004 klzzwxh:18302klzzwxh:19005klzzwxh:19006klzzwxh:19007klzzwxh:19008klzzwxh:19009klzzwxh:19010klzzwxh:19011 -variable klzzwxh:18303namespace currentklzzwxh:18304::optklzzwxh:18305updateklzzwxh:18306drawingklzzwxh:18307 -value 0klzzwxh:20904klzzwxh:19012klzzwxh:19013klzzwxh:19014klzzwxh:19015klzzwxh:19016 $logcanvas.menubar.view.update add radiobutton -label klzzwxh:19017Every Branchklzzwxh:19018 klzzwxh:18308klzzwxh:19019klzzwxh:19020klzzwxh:19021klzzwxh:19022klzzwxh:19023klzzwxh:19024klzzwxh:19025 -variable klzzwxh:18309namespace currentklzzwxh:18310::optklzzwxh:18311updateklzzwxh:18312drawingklzzwxh:18313 -value 1klzzwxh:20905klzzwxh:19026klzzwxh:19027klzzwxh:19028klzzwxh:19029klzzwxh:19030 $logcanvas.menubar.view.update add radiobutton -label klzzwxh:19031When Finishedklzzwxh:19032 klzzwxh:18314klzzwxh:19033klzzwxh:19034klzzwxh:19035klzzwxh:19036klzzwxh:19037klzzwxh:19038klzzwxh:19039 -variable klzzwxh:18315namespace currentklzzwxh:18316::optklzzwxh:18317updateklzzwxh:18318drawingklzzwxh:18319 -value 2klzzwxh:20906klzzwxh:19040klzzwxh:19041klzzwxh:19042klzzwxh:19043klzzwxh:19044 $logcanvas.menubar.view add separatorklzzwxh:20907klzzwxh:19045klzzwxh:19046klzzwxh:19047klzzwxh:19048klzzwxh:19049 $logcanvas.menubar.view add cascade -label klzzwxh:19050Tree Layoutklzzwxh:19051 klzzwxh:18320klzzwxh:19052klzzwxh:19053klzzwxh:19054klzzwxh:19055klzzwxh:19056klzzwxh:19057klzzwxh:19058 -menu $logcanvas.menubar.view.treeklzzwxh:20908klzzwxh:19059klzzwxh:19060klzzwxh:19061klzzwxh:19062klzzwxh:19063 menu $logcanvas.menubar.view.treeklzzwxh:20909klzzwxh:19064klzzwxh:19065klzzwxh:19066klzzwxh:19067klzzwxh:19068 $logcanvas.menubar.view.tree add checkbutton -label klzzwxh:18321klzzwxh:19069klzzwxh:19070klzzwxh:19071klzzwxh:19072klzzwxh:19073klzzwxh:19074klzzwxh:19075 klzzwxh:19076Show empty branchesklzzwxh:19077 klzzwxh:18322klzzwxh:19078klzzwxh:19079klzzwxh:19080klzzwxh:19081klzzwxh:19082klzzwxh:19083klzzwxh:19084 -variable klzzwxh:18323namespace currentklzzwxh:18324::optklzzwxh:18325showklzzwxh:18326emptyklzzwxh:18327branchesklzzwxh:18328 klzzwxh:18329klzzwxh:19085klzzwxh:19086klzzwxh:19087klzzwxh:19088klzzwxh:19089klzzwxh:19090klzzwxh:19091 -onvalue 1 -offvalue 0 klzzwxh:18330klzzwxh:19092klzzwxh:19093klzzwxh:19094klzzwxh:19095klzzwxh:19096klzzwxh:19097klzzwxh:19098 -command klzzwxh:18331namespace code klzzwxh:18332 DrawTree klzzwxh:18333klzzwxh:18334klzzwxh:20910klzzwxh:19099klzzwxh:19100klzzwxh:19101klzzwxh:19102klzzwxh:19103 $logcanvas.menubar.view.tree add checkbutton -label klzzwxh:18335klzzwxh:19104klzzwxh:19105klzzwxh:19106klzzwxh:19107klzzwxh:19108klzzwxh:19109klzzwxh:19110 klzzwxh:19111Show intermediate revisionsklzzwxh:19112 klzzwxh:18336klzzwxh:19113klzzwxh:19114klzzwxh:19115klzzwxh:19116klzzwxh:19117klzzwxh:19118klzzwxh:19119 -variable klzzwxh:18337namespace currentklzzwxh:18338::optklzzwxh:18339showklzzwxh:18340interklzzwxh:18341revsklzzwxh:18342 klzzwxh:18343klzzwxh:19120klzzwxh:19121klzzwxh:19122klzzwxh:19123klzzwxh:19124klzzwxh:19125klzzwxh:19126 -onvalue 1 -offvalue 0 klzzwxh:18344klzzwxh:19127klzzwxh:19128klzzwxh:19129klzzwxh:19130klzzwxh:19131klzzwxh:19132klzzwxh:19133 -command klzzwxh:18345namespace code klzzwxh:18346 DrawTree klzzwxh:18347klzzwxh:18348klzzwxh:20911klzzwxh:19134klzzwxh:19135klzzwxh:19136klzzwxh:19137klzzwxh:19138 $logcanvas.menubar.view.tree add checkbutton -label klzzwxh:18349klzzwxh:19139klzzwxh:19140klzzwxh:19141klzzwxh:19142klzzwxh:19143klzzwxh:19144klzzwxh:19145 klzzwxh:19146Show mergesklzzwxh:19147 klzzwxh:18350klzzwxh:19148klzzwxh:19149klzzwxh:19150klzzwxh:19151klzzwxh:19152klzzwxh:19153klzzwxh:19154 -variable klzzwxh:18351namespace currentklzzwxh:18352::optklzzwxh:18353showklzzwxh:18354mergesklzzwxh:18355 klzzwxh:18356klzzwxh:19155klzzwxh:19156klzzwxh:19157klzzwxh:19158klzzwxh:19159klzzwxh:19160klzzwxh:19161 -onvalue 1 -offvalue 0 klzzwxh:18357klzzwxh:19162klzzwxh:19163klzzwxh:19164klzzwxh:19165klzzwxh:19166klzzwxh:19167klzzwxh:19168 -command klzzwxh:18358namespace code klzzwxh:18359 DrawTree klzzwxh:18360klzzwxh:18361klzzwxh:20912klzzwxh:19169klzzwxh:19170klzzwxh:19171klzzwxh:19172klzzwxh:19173 $logcanvas.menubar.view add cascade -label klzzwxh:19174Branch Layoutklzzwxh:19175 klzzwxh:18362klzzwxh:19176klzzwxh:19177klzzwxh:19178klzzwxh:19179klzzwxh:19180klzzwxh:19181klzzwxh:19182 -menu $logcanvas.menubar.view.branchklzzwxh:20913klzzwxh:19183klzzwxh:19184klzzwxh:19185klzzwxh:19186klzzwxh:19187 menu $logcanvas.menubar.view.branchklzzwxh:20914klzzwxh:19188klzzwxh:19189klzzwxh:19190klzzwxh:19191klzzwxh:19192 $logcanvas.menubar.view.branch add command -label klzzwxh:19193Turn all options onklzzwxh:19194 klzzwxh:18363klzzwxh:19195klzzwxh:19196klzzwxh:19197klzzwxh:19198klzzwxh:19199klzzwxh:19200klzzwxh:19201 -command klzzwxh:18364namespace code klzzwxh:18365klzzwxh:20915klzzwxh:19202klzzwxh:19203klzzwxh:19204klzzwxh:19205klzzwxh:19206klzzwxh:19207klzzwxh:19208klzzwxh:19209klzzwxh:19210 set optklzzwxh:18366showklzzwxh:18367rootklzzwxh:18368revklzzwxh:18369 klzzwxh:18370set optklzzwxh:18371showklzzwxh:18372rootklzzwxh:18373tagsklzzwxh:18374 1klzzwxh:18375klzzwxh:20916klzzwxh:19211klzzwxh:19212klzzwxh:19213klzzwxh:19214klzzwxh:19215klzzwxh:19216klzzwxh:19217klzzwxh:19218klzzwxh:19219 DrawTreeklzzwxh:20917klzzwxh:19220klzzwxh:19221klzzwxh:19222klzzwxh:19223klzzwxh:19224klzzwxh:19225klzzwxh:19226 klzzwxh:18376klzzwxh:18377klzzwxh:20918klzzwxh:19227klzzwxh:19228klzzwxh:19229klzzwxh:19230klzzwxh:19231 $logcanvas.menubar.view.branch add command -label klzzwxh:19232Turn all options offklzzwxh:19233 klzzwxh:18378klzzwxh:19234klzzwxh:19235klzzwxh:19236klzzwxh:19237klzzwxh:19238klzzwxh:19239klzzwxh:19240 -command klzzwxh:18379namespace code klzzwxh:18380klzzwxh:20919klzzwxh:19241klzzwxh:19242klzzwxh:19243klzzwxh:19244klzzwxh:19245klzzwxh:19246klzzwxh:19247klzzwxh:19248klzzwxh:19249 set optklzzwxh:18381showklzzwxh:18382rootklzzwxh:18383revklzzwxh:18384 klzzwxh:18385set optklzzwxh:18386showklzzwxh:18387rootklzzwxh:18388tagsklzzwxh:18389 0klzzwxh:18390klzzwxh:20920klzzwxh:19250klzzwxh:19251klzzwxh:19252klzzwxh:19253klzzwxh:19254klzzwxh:19255klzzwxh:19256klzzwxh:19257klzzwxh:19258 DrawTreeklzzwxh:20921klzzwxh:19259klzzwxh:19260klzzwxh:19261klzzwxh:19262klzzwxh:19263klzzwxh:19264klzzwxh:19265 klzzwxh:18391klzzwxh:18392klzzwxh:20922klzzwxh:19266klzzwxh:19267klzzwxh:19268klzzwxh:19269klzzwxh:19270 $logcanvas.menubar.view.branch add separatorklzzwxh:20923klzzwxh:19271klzzwxh:19272klzzwxh:19273klzzwxh:19274klzzwxh:19275 $logcanvas.menubar.view.branch add checkbutton -label klzzwxh:19276Show revisionklzzwxh:19277 klzzwxh:18393klzzwxh:19278klzzwxh:19279klzzwxh:19280klzzwxh:19281klzzwxh:19282klzzwxh:19283klzzwxh:19284 -variable klzzwxh:18394namespace currentklzzwxh:18395::optklzzwxh:18396showklzzwxh:18397rootklzzwxh:18398revklzzwxh:18399 klzzwxh:18400klzzwxh:19285klzzwxh:19286klzzwxh:19287klzzwxh:19288klzzwxh:19289klzzwxh:19290klzzwxh:19291 -onvalue 1 -offvalue 0 klzzwxh:18401klzzwxh:19292klzzwxh:19293klzzwxh:19294klzzwxh:19295klzzwxh:19296klzzwxh:19297klzzwxh:19298 -command klzzwxh:18402namespace code klzzwxh:18403 DrawTree klzzwxh:18404klzzwxh:18405klzzwxh:20924klzzwxh:19299klzzwxh:19300klzzwxh:19301klzzwxh:19302klzzwxh:19303 $logcanvas.menubar.view.branch add checkbutton -label klzzwxh:19304Show labelklzzwxh:19305 klzzwxh:18406klzzwxh:19306klzzwxh:19307klzzwxh:19308klzzwxh:19309klzzwxh:19310klzzwxh:19311klzzwxh:19312 -variable klzzwxh:18407namespace currentklzzwxh:18408::optklzzwxh:18409showklzzwxh:18410rootklzzwxh:18411tagsklzzwxh:18412 klzzwxh:18413klzzwxh:19313klzzwxh:19314klzzwxh:19315klzzwxh:19316klzzwxh:19317klzzwxh:19318klzzwxh:19319 -onvalue 1 -offvalue 0 klzzwxh:18414klzzwxh:19320klzzwxh:19321klzzwxh:19322klzzwxh:19323klzzwxh:19324klzzwxh:19325klzzwxh:19326 -command klzzwxh:18415namespace code klzzwxh:18416 DrawTree klzzwxh:18417klzzwxh:18418klzzwxh:20925klzzwxh:19327klzzwxh:19328klzzwxh:19329klzzwxh:19330klzzwxh:19331 $logcanvas.menubar.view add cascade -label klzzwxh:19332Revision Layoutklzzwxh:19333 klzzwxh:18419klzzwxh:19334klzzwxh:19335klzzwxh:19336klzzwxh:19337klzzwxh:19338klzzwxh:19339klzzwxh:19340 -menu $logcanvas.menubar.view.revklzzwxh:20926klzzwxh:19341klzzwxh:19342klzzwxh:19343klzzwxh:19344klzzwxh:19345 menu $logcanvas.menubar.view.revklzzwxh:20927klzzwxh:19346klzzwxh:19347klzzwxh:19348klzzwxh:19349klzzwxh:19350 $logcanvas.menubar.view.rev add command -label klzzwxh:19351Turn all options onklzzwxh:19352 klzzwxh:18420klzzwxh:19353klzzwxh:19354klzzwxh:19355klzzwxh:19356klzzwxh:19357klzzwxh:19358klzzwxh:19359 -command klzzwxh:18421namespace code klzzwxh:18422klzzwxh:20928klzzwxh:19360klzzwxh:19361klzzwxh:19362klzzwxh:19363klzzwxh:19364klzzwxh:19365klzzwxh:19366klzzwxh:19367klzzwxh:19368 set optklzzwxh:18423showklzzwxh:18424tagsklzzwxh:18425 klzzwxh:18426klzzwxh:18427klzzwxh:19369klzzwxh:19370klzzwxh:19371klzzwxh:19372klzzwxh:19373klzzwxh:19374klzzwxh:19375klzzwxh:19376klzzwxh:19377 set optklzzwxh:18428showklzzwxh:18429boxklzzwxh:18430revklzzwxh:18431 klzzwxh:18432klzzwxh:18433klzzwxh:19378klzzwxh:19379klzzwxh:19380klzzwxh:19381klzzwxh:19382klzzwxh:19383klzzwxh:19384klzzwxh:19385klzzwxh:19386 set optklzzwxh:18434showklzzwxh:18435boxklzzwxh:18436revwhoklzzwxh:18437 klzzwxh:18438klzzwxh:18439klzzwxh:19387klzzwxh:19388klzzwxh:19389klzzwxh:19390klzzwxh:19391klzzwxh:19392klzzwxh:19393klzzwxh:19394klzzwxh:19395 set optklzzwxh:18440showklzzwxh:18441boxklzzwxh:18442revdateklzzwxh:18443 klzzwxh:18444klzzwxh:18445klzzwxh:19396klzzwxh:19397klzzwxh:19398klzzwxh:19399klzzwxh:19400klzzwxh:19401klzzwxh:19402klzzwxh:19403klzzwxh:19404 set optklzzwxh:18446showklzzwxh:18447boxklzzwxh:18448revtimeklzzwxh:18449 1klzzwxh:18450klzzwxh:18451klzzwxh:18452klzzwxh:18453klzzwxh:20929klzzwxh:19405klzzwxh:19406klzzwxh:19407klzzwxh:19408klzzwxh:19409klzzwxh:19410klzzwxh:19411klzzwxh:19412klzzwxh:19413 DrawTreeklzzwxh:20930klzzwxh:19414klzzwxh:19415klzzwxh:19416klzzwxh:19417klzzwxh:19418klzzwxh:19419klzzwxh:19420 klzzwxh:18454klzzwxh:18455klzzwxh:20931klzzwxh:19421klzzwxh:19422klzzwxh:19423klzzwxh:19424klzzwxh:19425 $logcanvas.menubar.view.rev add command -label klzzwxh:19426Turn all options offklzzwxh:19427 klzzwxh:18456klzzwxh:19428klzzwxh:19429klzzwxh:19430klzzwxh:19431klzzwxh:19432klzzwxh:19433klzzwxh:19434 -command klzzwxh:18457namespace code klzzwxh:18458klzzwxh:20932klzzwxh:19435klzzwxh:19436klzzwxh:19437klzzwxh:19438klzzwxh:19439klzzwxh:19440klzzwxh:19441klzzwxh:19442klzzwxh:19443 set optklzzwxh:18459showklzzwxh:18460tagsklzzwxh:18461 klzzwxh:18462klzzwxh:18463klzzwxh:19444klzzwxh:19445klzzwxh:19446klzzwxh:19447klzzwxh:19448klzzwxh:19449klzzwxh:19450klzzwxh:19451klzzwxh:19452 set optklzzwxh:18464showklzzwxh:18465boxklzzwxh:18466revklzzwxh:18467 klzzwxh:18468klzzwxh:18469klzzwxh:19453klzzwxh:19454klzzwxh:19455klzzwxh:19456klzzwxh:19457klzzwxh:19458klzzwxh:19459klzzwxh:19460klzzwxh:19461 set optklzzwxh:18470showklzzwxh:18471boxklzzwxh:18472revwhoklzzwxh:18473 klzzwxh:18474klzzwxh:18475klzzwxh:19462klzzwxh:19463klzzwxh:19464klzzwxh:19465klzzwxh:19466klzzwxh:19467klzzwxh:19468klzzwxh:19469klzzwxh:19470 set optklzzwxh:18476showklzzwxh:18477boxklzzwxh:18478revdateklzzwxh:18479 klzzwxh:18480klzzwxh:18481klzzwxh:19471klzzwxh:19472klzzwxh:19473klzzwxh:19474klzzwxh:19475klzzwxh:19476klzzwxh:19477klzzwxh:19478klzzwxh:19479 set optklzzwxh:18482showklzzwxh:18483boxklzzwxh:18484revtimeklzzwxh:18485 0klzzwxh:18486klzzwxh:18487klzzwxh:18488klzzwxh:18489klzzwxh:20933klzzwxh:19480klzzwxh:19481klzzwxh:19482klzzwxh:19483klzzwxh:19484klzzwxh:19485klzzwxh:19486klzzwxh:19487klzzwxh:19488 DrawTreeklzzwxh:20934klzzwxh:19489klzzwxh:19490klzzwxh:19491klzzwxh:19492klzzwxh:19493klzzwxh:19494klzzwxh:19495 klzzwxh:18490klzzwxh:18491klzzwxh:20935klzzwxh:19496klzzwxh:19497klzzwxh:19498klzzwxh:19499klzzwxh:19500 $logcanvas.menubar.view.rev add separatorklzzwxh:20936klzzwxh:19501klzzwxh:19502klzzwxh:19503klzzwxh:19504klzzwxh:19505 $logcanvas.menubar.view.rev add checkbutton -label klzzwxh:19506Show tagsklzzwxh:19507 klzzwxh:18492klzzwxh:19508klzzwxh:19509klzzwxh:19510klzzwxh:19511klzzwxh:19512klzzwxh:19513klzzwxh:19514 -variable klzzwxh:18493namespace currentklzzwxh:18494::optklzzwxh:18495showklzzwxh:18496tagsklzzwxh:18497 klzzwxh:18498klzzwxh:19515klzzwxh:19516klzzwxh:19517klzzwxh:19518klzzwxh:19519klzzwxh:19520klzzwxh:19521 -onvalue 1 -offvalue 0 klzzwxh:18499klzzwxh:19522klzzwxh:19523klzzwxh:19524klzzwxh:19525klzzwxh:19526klzzwxh:19527klzzwxh:19528 -command klzzwxh:18500namespace code klzzwxh:18501 DrawTree klzzwxh:18502klzzwxh:18503klzzwxh:20937klzzwxh:19529klzzwxh:19530klzzwxh:19531klzzwxh:19532klzzwxh:19533 $logcanvas.menubar.view.rev add checkbutton -label klzzwxh:19534Show revisionklzzwxh:19535 klzzwxh:18504klzzwxh:19536klzzwxh:19537klzzwxh:19538klzzwxh:19539klzzwxh:19540klzzwxh:19541klzzwxh:19542 -variable klzzwxh:18505namespace currentklzzwxh:18506::optklzzwxh:18507showklzzwxh:18508boxklzzwxh:18509revklzzwxh:18510 klzzwxh:18511klzzwxh:19543klzzwxh:19544klzzwxh:19545klzzwxh:19546klzzwxh:19547klzzwxh:19548klzzwxh:19549 -onvalue 1 -offvalue 0 klzzwxh:18512klzzwxh:19550klzzwxh:19551klzzwxh:19552klzzwxh:19553klzzwxh:19554klzzwxh:19555klzzwxh:19556 -command klzzwxh:18513namespace code klzzwxh:18514 DrawTree klzzwxh:18515klzzwxh:18516klzzwxh:20938klzzwxh:19557klzzwxh:19558klzzwxh:19559klzzwxh:19560klzzwxh:19561 $logcanvas.menubar.view.rev add checkbutton -label klzzwxh:19562Show authorklzzwxh:19563 klzzwxh:18517klzzwxh:19564klzzwxh:19565klzzwxh:19566klzzwxh:19567klzzwxh:19568klzzwxh:19569klzzwxh:19570 -variable klzzwxh:18518namespace currentklzzwxh:18519::optklzzwxh:18520showklzzwxh:18521boxklzzwxh:18522revwhoklzzwxh:18523 klzzwxh:18524klzzwxh:19571klzzwxh:19572klzzwxh:19573klzzwxh:19574klzzwxh:19575klzzwxh:19576klzzwxh:19577 -onvalue 1 -offvalue 0 klzzwxh:18525klzzwxh:19578klzzwxh:19579klzzwxh:19580klzzwxh:19581klzzwxh:19582klzzwxh:19583klzzwxh:19584 -command klzzwxh:18526namespace code klzzwxh:18527 DrawTree klzzwxh:18528klzzwxh:18529klzzwxh:20939klzzwxh:19585klzzwxh:19586klzzwxh:19587klzzwxh:19588klzzwxh:19589 $logcanvas.menubar.view.rev add checkbutton -label klzzwxh:19590Show dateklzzwxh:19591 klzzwxh:18530klzzwxh:19592klzzwxh:19593klzzwxh:19594klzzwxh:19595klzzwxh:19596klzzwxh:19597klzzwxh:19598 -variable klzzwxh:18531namespace currentklzzwxh:18532::optklzzwxh:18533showklzzwxh:18534boxklzzwxh:18535revdateklzzwxh:18536 klzzwxh:18537klzzwxh:19599klzzwxh:19600klzzwxh:19601klzzwxh:19602klzzwxh:19603klzzwxh:19604klzzwxh:19605 -onvalue 1 -offvalue 0 klzzwxh:18538klzzwxh:19606klzzwxh:19607klzzwxh:19608klzzwxh:19609klzzwxh:19610klzzwxh:19611klzzwxh:19612 -command klzzwxh:18539namespace code klzzwxh:18540 DrawTree klzzwxh:18541klzzwxh:18542klzzwxh:20940klzzwxh:19613klzzwxh:19614klzzwxh:19615klzzwxh:19616klzzwxh:19617 $logcanvas.menubar.view.rev add checkbutton -label klzzwxh:19618Show timeklzzwxh:19619 klzzwxh:18543klzzwxh:19620klzzwxh:19621klzzwxh:19622klzzwxh:19623klzzwxh:19624klzzwxh:19625klzzwxh:19626 -variable klzzwxh:18544namespace currentklzzwxh:18545::optklzzwxh:18546showklzzwxh:18547boxklzzwxh:18548revtimeklzzwxh:18549 klzzwxh:18550klzzwxh:19627klzzwxh:19628klzzwxh:19629klzzwxh:19630klzzwxh:19631klzzwxh:19632klzzwxh:19633 -onvalue 1 -offvalue 0 klzzwxh:18551klzzwxh:19634klzzwxh:19635klzzwxh:19636klzzwxh:19637klzzwxh:19638klzzwxh:19639klzzwxh:19640 -command klzzwxh:18552namespace code klzzwxh:18553 DrawTree klzzwxh:18554klzzwxh:18555klzzwxh:20941klzzwxh:19641klzzwxh:19642klzzwxh:19643klzzwxh:19644klzzwxh:19645 $logcanvas.menubar.view add separatorklzzwxh:20942klzzwxh:19646klzzwxh:19647klzzwxh:19648klzzwxh:19649klzzwxh:19650 $logcanvas.menubar.view add cascade -label klzzwxh:19651Sizeklzzwxh:19652 klzzwxh:18556klzzwxh:19653klzzwxh:19654klzzwxh:19655klzzwxh:19656klzzwxh:19657klzzwxh:19658klzzwxh:19659 -menu $logcanvas.menubar.view.sizeklzzwxh:20943klzzwxh:19660klzzwxh:19661klzzwxh:19662klzzwxh:19663klzzwxh:19664 menu $logcanvas.menubar.view.sizeklzzwxh:20944klzzwxh:19665klzzwxh:19666klzzwxh:19667klzzwxh:19668klzzwxh:19669 foreach klzzwxh:18557label factorklzzwxh:18558 $logcfgklzzwxh:18559scalingklzzwxh:18560optionsklzzwxh:18561 klzzwxh:18562klzzwxh:20945klzzwxh:19670klzzwxh:19671klzzwxh:19672klzzwxh:19673klzzwxh:19674klzzwxh:19675klzzwxh:19676 $logcanvas.menubar.view.size add radiobutton -label $label klzzwxh:18563klzzwxh:19677klzzwxh:19678klzzwxh:19679klzzwxh:19680klzzwxh:19681klzzwxh:19682klzzwxh:19683klzzwxh:19684klzzwxh:19685 -variable klzzwxh:18564namespace currentklzzwxh:18565::optklzzwxh:18566scaleklzzwxh:18567 -value $factor klzzwxh:18568klzzwxh:19686klzzwxh:19687klzzwxh:19688klzzwxh:19689klzzwxh:19690klzzwxh:19691klzzwxh:19692klzzwxh:19693klzzwxh:19694 -command klzzwxh:18569namespace code klzzwxh:18570 DrawTree klzzwxh:18571klzzwxh:18572klzzwxh:20946klzzwxh:19695klzzwxh:19696klzzwxh:19697klzzwxh:19698klzzwxh:19699 klzzwxh:18573klzzwxh:20947klzzwxh:19700klzzwxh:19701klzzwxh:19702klzzwxh:19703klzzwxh:19704 $logcanvas.menubar.view add separatorklzzwxh:20948klzzwxh:19705klzzwxh:19706klzzwxh:19707klzzwxh:19708klzzwxh:19709 $logcanvas.menubar.view add command -label klzzwxh:19710Save optionsklzzwxh:19711 klzzwxh:18574klzzwxh:19712klzzwxh:19713klzzwxh:19714klzzwxh:19715klzzwxh:19716klzzwxh:19717klzzwxh:19718 -command klzzwxh:18575namespace code klzzwxh:18576klzzwxh:20949klzzwxh:19719klzzwxh:19720klzzwxh:19721klzzwxh:19722klzzwxh:19723klzzwxh:19724klzzwxh:19725klzzwxh:19726klzzwxh:19727 SaveOptionsklzzwxh:20950klzzwxh:19728klzzwxh:19729klzzwxh:19730klzzwxh:19731klzzwxh:19732klzzwxh:19733klzzwxh:19734 klzzwxh:18577klzzwxh:18578klzzwxh:20951klzzwxh:19735klzzwxh:19736klzzwxh:19737klzzwxh:19738klzzwxh:19739 menuklzzwxh:18579stdklzzwxh:18580help $logcanvas.menubarklzzwxh:20952klzzwxh:19740klzzwxh:19741klzzwxh:19742klzzwxh:19743klzzwxh:19744 if klzzwxh:18581$tclklzzwxh:18582platformklzzwxh:18583platformklzzwxh:18584 klzzwxh:18585= klzzwxh:19745windowsklzzwxh:19746klzzwxh:18586 klzzwxh:18587klzzwxh:20953klzzwxh:19747klzzwxh:19748klzzwxh:19749klzzwxh:19750klzzwxh:19751klzzwxh:19752klzzwxh:19753 wm iconbitmap $logcanvas @$cvscfgklzzwxh:18588bitmapdirklzzwxh:18589/branch.xbmklzzwxh:20954klzzwxh:19754klzzwxh:19755klzzwxh:19756klzzwxh:19757klzzwxh:19758 klzzwxh:18590klzzwxh:20955klzzwxh:19759klzzwxh:19760klzzwxh:19761klzzwxh:19762klzzwxh:19763 wm protocol $logcanvas WMklzzwxh:18591DELETEklzzwxh:18592WINDOW klzzwxh:18593klzzwxh:19764klzzwxh:19765klzzwxh:19766klzzwxh:19767klzzwxh:19768klzzwxh:19769klzzwxh:19770 klzzwxh:18594namespace code klzzwxh:18595$logcanvas.close invokeklzzwxh:18596klzzwxh:18597klzzwxh:20956klzzwxh:19771klzzwxh:19772klzzwxh:19773klzzwxh:19774klzzwxh:19775 frame $logcanvas.up -relief groove -border 2klzzwxh:20957klzzwxh:19776klzzwxh:19777klzzwxh:19778klzzwxh:19779klzzwxh:19780 set textfont $cvscfgklzzwxh:18598listboxfontklzzwxh:18599klzzwxh:20958klzzwxh:19781klzzwxh:19782klzzwxh:19783klzzwxh:19784klzzwxh:19785 set disbg klzzwxh:18600lindex klzzwxh:18601$logcanvas.up configure -backgroundklzzwxh:18602 4klzzwxh:18603klzzwxh:20959klzzwxh:19786klzzwxh:19787klzzwxh:19788klzzwxh:19789klzzwxh:19790 label $logcanvas.up.lfname -width 12 -anchor wklzzwxh:20960klzzwxh:19791klzzwxh:19792klzzwxh:19793klzzwxh:19794klzzwxh:19795 entry $logcanvas.up.rfname -font $textfont -relief groove klzzwxh:18604klzzwxh:19796klzzwxh:19797klzzwxh:19798klzzwxh:19799klzzwxh:19800klzzwxh:19801klzzwxh:19802 -readonlybackground $cvsglbklzzwxh:18605readonlybgklzzwxh:18606klzzwxh:20961klzzwxh:19803klzzwxh:19804klzzwxh:19805klzzwxh:19806klzzwxh:19807klzzwxh:19808klzzwxh:19809 klzzwxh:20962klzzwxh:19810klzzwxh:19811klzzwxh:19812klzzwxh:19813klzzwxh:19814 button $logcanvas.up.bmodbrowse -image Modules -highlightbackground $cvsglbklzzwxh:18607bgklzzwxh:18608 klzzwxh:18609klzzwxh:19815klzzwxh:19816klzzwxh:19817klzzwxh:19818klzzwxh:19819klzzwxh:19820klzzwxh:19821 -command modbrowseklzzwxh:18610runklzzwxh:20963klzzwxh:19822klzzwxh:19823klzzwxh:19824klzzwxh:19825klzzwxh:19826 button $logcanvas.up.bworkdir -image Workdir -highlightbackground $cvsglbklzzwxh:18611bgklzzwxh:18612 klzzwxh:18613klzzwxh:19827klzzwxh:19828klzzwxh:19829klzzwxh:19830klzzwxh:19831klzzwxh:19832klzzwxh:19833 -command klzzwxh:18614 workdirklzzwxh:18615setup klzzwxh:18616klzzwxh:20964klzzwxh:19834klzzwxh:19835klzzwxh:19836klzzwxh:19837klzzwxh:19838 pack $logcanvas.up -side top -fill xklzzwxh:20965klzzwxh:19839klzzwxh:19840klzzwxh:19841klzzwxh:19842klzzwxh:19843 foreach fm klzzwxh:18617A Bklzzwxh:18618 klzzwxh:18619klzzwxh:20966klzzwxh:19844klzzwxh:19845klzzwxh:19846klzzwxh:19847klzzwxh:19848klzzwxh:19849klzzwxh:19850 label $logcanvas.up.rev$klzzwxh:18620fmklzzwxh:18621klzzwxh:18622lvers -text klzzwxh:19851Revision $fmklzzwxh:19852klzzwxh:20967klzzwxh:19853klzzwxh:19854klzzwxh:19855klzzwxh:19856klzzwxh:19857klzzwxh:19858klzzwxh:19859 label $logcanvas.up.rev$klzzwxh:18623fmklzzwxh:18624klzzwxh:18625rvers -text klzzwxh:18626klzzwxh:18627 klzzwxh:18628klzzwxh:19860klzzwxh:19861klzzwxh:19862klzzwxh:19863klzzwxh:19864klzzwxh:19865klzzwxh:19866klzzwxh:19867klzzwxh:19868klzzwxh:19869 -anchor w -font $textfontklzzwxh:20968klzzwxh:19870 klzzwxh:20969klzzwxh:19871klzzwxh:19872klzzwxh:19873klzzwxh:19874klzzwxh:19875klzzwxh:19876klzzwxh:19877 label $logcanvas.up.rev$klzzwxh:18629fmklzzwxh:18630klzzwxh:18631ldate -text klzzwxh:19878Committedklzzwxh:19879klzzwxh:20970klzzwxh:19880klzzwxh:19881klzzwxh:19882klzzwxh:19883klzzwxh:19884klzzwxh:19885klzzwxh:19886 label $logcanvas.up.rev$klzzwxh:18632fmklzzwxh:18633klzzwxh:18634rdate -text klzzwxh:18635klzzwxh:18636 klzzwxh:18637klzzwxh:19887klzzwxh:19888klzzwxh:19889klzzwxh:19890klzzwxh:19891klzzwxh:19892klzzwxh:19893klzzwxh:19894klzzwxh:19895klzzwxh:19896 -anchor w -font $textfontklzzwxh:20971klzzwxh:19897klzzwxh:19898klzzwxh:19899klzzwxh:19900klzzwxh:19901klzzwxh:19902klzzwxh:19903 label $logcanvas.up.rev$klzzwxh:18638fmklzzwxh:18639klzzwxh:18640lwho -text klzzwxh:19904 by klzzwxh:19905klzzwxh:20972klzzwxh:19906klzzwxh:19907klzzwxh:19908klzzwxh:19909klzzwxh:19910klzzwxh:19911klzzwxh:19912 label $logcanvas.up.rev$klzzwxh:18641fmklzzwxh:18642klzzwxh:18643rwho -text klzzwxh:18644klzzwxh:18645 klzzwxh:18646klzzwxh:19913klzzwxh:19914klzzwxh:19915klzzwxh:19916klzzwxh:19917klzzwxh:19918klzzwxh:19919klzzwxh:19920klzzwxh:19921klzzwxh:19922 -anchor w -font $textfontklzzwxh:20973klzzwxh:19923klzzwxh:19924klzzwxh:19925klzzwxh:19926klzzwxh:19927klzzwxh:19928klzzwxh:19929 label $logcanvas.up.log$klzzwxh:18647fmklzzwxh:18648klzzwxh:18649lcomment -text klzzwxh:19930Log $fmklzzwxh:19931klzzwxh:20974klzzwxh:19932klzzwxh:19933klzzwxh:19934klzzwxh:19935klzzwxh:19936klzzwxh:19937klzzwxh:19938klzzwxh:19939 klzzwxh:20975klzzwxh:19940klzzwxh:19941klzzwxh:19942klzzwxh:19943klzzwxh:19944klzzwxh:19945klzzwxh:19946 frame $logcanvas.up.log$klzzwxh:18650fmklzzwxh:18651klzzwxh:18652rlogfm -bd 3 -bg $cvscfgklzzwxh:18653colour$fmklzzwxh:18654klzzwxh:20976klzzwxh:19947klzzwxh:19948klzzwxh:19949klzzwxh:19950klzzwxh:19951klzzwxh:19952klzzwxh:19953 textklzzwxh:19954 $logcanvas.up.log$klzzwxh:18655fmklzzwxh:18656klzzwxh:18657rlogfm.rcomment -height 5 klzzwxh:18658klzzwxh:19955klzzwxh:19956klzzwxh:19957klzzwxh:19958klzzwxh:19959klzzwxh:19960klzzwxh:19961klzzwxh:19962klzzwxh:19963klzzwxh:19964 -fg $cvsglbklzzwxh:18659textfgklzzwxh:18660 -bg $cvsglbklzzwxh:18661textbgklzzwxh:18662 -state disabled klzzwxh:18663klzzwxh:19965klzzwxh:19966klzzwxh:19967klzzwxh:19968klzzwxh:19969klzzwxh:19970klzzwxh:19971klzzwxh:19972klzzwxh:19973klzzwxh:19974 -yscrollcommand klzzwxh:18664namespace codeklzzwxh:18665klzzwxh:19975klzzwxh:19976klzzwxh:19977klzzwxh:19978klzzwxh:19979klzzwxh:19980klzzwxh:19981klzzwxh:19982klzzwxh:19983klzzwxh:19984 klzzwxh:19985$logcanvas.up.log$klzzwxh:18666fmklzzwxh:18667klzzwxh:18668rlogfm.yscroll setklzzwxh:19986klzzwxh:18669klzzwxh:20977klzzwxh:19987klzzwxh:19988klzzwxh:19989klzzwxh:19990klzzwxh:19991klzzwxh:19992klzzwxh:19993klzzwxh:19994klzzwxh:19995klzzwxh:19996 scrollbar $logcanvas.up.log$klzzwxh:18670fmklzzwxh:18671klzzwxh:18672rlogfm.yscroll klzzwxh:18673klzzwxh:19997klzzwxh:19998klzzwxh:19999klzzwxh:20000klzzwxh:20001klzzwxh:20002klzzwxh:20003klzzwxh:20004klzzwxh:20005klzzwxh:20006 -command klzzwxh:18674namespace codeklzzwxh:18675klzzwxh:20007klzzwxh:20008klzzwxh:20009klzzwxh:20010klzzwxh:20011klzzwxh:20012klzzwxh:20013klzzwxh:20014klzzwxh:20015klzzwxh:20016 klzzwxh:20017$logcanvas.up.log$klzzwxh:18676fmklzzwxh:18677klzzwxh:18678rlogfm.rcomment yviewklzzwxh:20018klzzwxh:18679klzzwxh:20978klzzwxh:20019klzzwxh:20020klzzwxh:20021klzzwxh:20022klzzwxh:20023 klzzwxh:18680klzzwxh:20979klzzwxh:20024klzzwxh:20025klzzwxh:20026klzzwxh:20027klzzwxh:20028 frame $logcanvas.up.searchklzzwxh:20980klzzwxh:20029klzzwxh:20030klzzwxh:20031klzzwxh:20032klzzwxh:20033 button $logcanvas.up.searchklzzwxh:18681b -text klzzwxh:20034Searchklzzwxh:20035 -command klzzwxh:18682namespace code klzzwxh:18683 Search klzzwxh:18684klzzwxh:18685klzzwxh:20981klzzwxh:20036klzzwxh:20037klzzwxh:20038klzzwxh:20039klzzwxh:20040 entry $logcanvas.up.search.eklzzwxh:20982klzzwxh:20041klzzwxh:20042klzzwxh:20043klzzwxh:20044klzzwxh:20045 bind $logcanvas.up.search.e klzzwxh:20046Returnklzzwxh:20047 klzzwxh:18686namespace code klzzwxh:18687 Search klzzwxh:18688klzzwxh:18689klzzwxh:20983klzzwxh:20048klzzwxh:20049klzzwxh:20050klzzwxh:20051klzzwxh:20052 label $logcanvas.up.search.l -anchor e -width 10 -text klzzwxh:20053klzzwxh:20054klzzwxh:20984klzzwxh:20055klzzwxh:20056klzzwxh:20057klzzwxh:20058klzzwxh:20059 checkbutton $logcanvas.up.search.c -text klzzwxh:20060Ignore caseklzzwxh:20061 -variable klzzwxh:18690namespace currentklzzwxh:18691::searchklzzwxh:18692nocaseklzzwxh:20985klzzwxh:20062klzzwxh:20063klzzwxh:20064klzzwxh:20065klzzwxh:20066 grid columnconf $logcanvas.up 5 -weight 1klzzwxh:20986klzzwxh:20067klzzwxh:20068klzzwxh:20069klzzwxh:20070klzzwxh:20071 grid $logcanvas.up.lfname -column 0 -row 0 -sticky nwklzzwxh:20987klzzwxh:20072klzzwxh:20073klzzwxh:20074klzzwxh:20075klzzwxh:20076 grid $logcanvas.up.rfname -column 1 -row 0 -columnspan 5 -sticky ewklzzwxh:20988klzzwxh:20077klzzwxh:20078klzzwxh:20079klzzwxh:20080klzzwxh:20081 grid $logcanvas.up.bworkdir -column 6 -row 0 -rowspan 2 -sticky eklzzwxh:18693klzzwxh:20082klzzwxh:20083klzzwxh:20084klzzwxh:20085klzzwxh:20086klzzwxh:20087klzzwxh:20088 -padx 2 -pady 1klzzwxh:20989klzzwxh:20089klzzwxh:20090klzzwxh:20091klzzwxh:20092klzzwxh:20093 grid $logcanvas.up.bmodbrowse -column 7 -row 0 -rowspan 2 -sticky eklzzwxh:18694klzzwxh:20094klzzwxh:20095klzzwxh:20096klzzwxh:20097klzzwxh:20098klzzwxh:20099klzzwxh:20100 -padx 2 -pady 1klzzwxh:20990klzzwxh:20101klzzwxh:20102klzzwxh:20103klzzwxh:20104klzzwxh:20105 grid $logcanvas.up.revAklzzwxh:18695lvers -column 0 -row 1 -sticky wklzzwxh:20991klzzwxh:20106klzzwxh:20107klzzwxh:20108klzzwxh:20109klzzwxh:20110 grid $logcanvas.up.revAklzzwxh:18696rvers -column 1 -row 1 -sticky wklzzwxh:20992klzzwxh:20111klzzwxh:20112klzzwxh:20113klzzwxh:20114klzzwxh:20115 grid $logcanvas.up.revAklzzwxh:18697ldate -column 2 -row 1 -sticky wklzzwxh:20993klzzwxh:20116klzzwxh:20117klzzwxh:20118klzzwxh:20119klzzwxh:20120 grid $logcanvas.up.revAklzzwxh:18698rdate -column 3 -row 1 -sticky wklzzwxh:20994klzzwxh:20121klzzwxh:20122klzzwxh:20123klzzwxh:20124klzzwxh:20125 grid $logcanvas.up.revAklzzwxh:18699lwho -column 4 -row 1 -sticky wklzzwxh:20995klzzwxh:20126klzzwxh:20127klzzwxh:20128klzzwxh:20129klzzwxh:20130 grid $logcanvas.up.revAklzzwxh:18700rwho -column 5 -row 1 -sticky ewklzzwxh:20996klzzwxh:20131klzzwxh:20132klzzwxh:20133klzzwxh:20134klzzwxh:20135 grid $logcanvas.up.logAklzzwxh:18701lcomment -column 0 -row 2 -sticky nwklzzwxh:20997klzzwxh:20136klzzwxh:20137klzzwxh:20138klzzwxh:20139klzzwxh:20140 grid $logcanvas.up.logAklzzwxh:18702rlogfm -column 1 -row 2 -columnspan 7 -sticky ewklzzwxh:20998klzzwxh:20141klzzwxh:20142klzzwxh:20143klzzwxh:20144klzzwxh:20145 pack $logcanvas.up.logAklzzwxh:18703rlogfm.yscroll -side right -fill yklzzwxh:20999klzzwxh:20146klzzwxh:20147klzzwxh:20148klzzwxh:20149klzzwxh:20150 pack $logcanvas.up.logAklzzwxh:18704rlogfm.rcomment -side left -fill x -expand yklzzwxh:21000klzzwxh:20151klzzwxh:20152klzzwxh:20153klzzwxh:20154klzzwxh:20155 grid $logcanvas.up.revBklzzwxh:18705lvers -column 0 -row 3 -sticky wklzzwxh:21001klzzwxh:20156klzzwxh:20157klzzwxh:20158klzzwxh:20159klzzwxh:20160 grid $logcanvas.up.revBklzzwxh:18706rvers -column 1 -row 3 -sticky wklzzwxh:21002klzzwxh:20161klzzwxh:20162klzzwxh:20163klzzwxh:20164klzzwxh:20165 grid $logcanvas.up.revBklzzwxh:18707ldate -column 2 -row 3 -sticky wklzzwxh:21003klzzwxh:20166klzzwxh:20167klzzwxh:20168klzzwxh:20169klzzwxh:20170 grid $logcanvas.up.revBklzzwxh:18708rdate -column 3 -row 3 -sticky wklzzwxh:21004klzzwxh:20171klzzwxh:20172klzzwxh:20173klzzwxh:20174klzzwxh:20175 grid $logcanvas.up.revBklzzwxh:18709lwho -column 4 -row 3 -sticky wklzzwxh:21005klzzwxh:20176klzzwxh:20177klzzwxh:20178klzzwxh:20179klzzwxh:20180 grid $logcanvas.up.revBklzzwxh:18710rwho -column 5 -row 3 -sticky ewklzzwxh:21006klzzwxh:20181klzzwxh:20182klzzwxh:20183klzzwxh:20184klzzwxh:20185 grid $logcanvas.up.logBklzzwxh:18711lcomment -column 0 -row 4 -sticky nwklzzwxh:21007klzzwxh:20186klzzwxh:20187klzzwxh:20188klzzwxh:20189klzzwxh:20190 grid $logcanvas.up.logBklzzwxh:18712rlogfm -column 1 -row 4 -columnspan 7 -sticky ewklzzwxh:21008klzzwxh:20191klzzwxh:20192klzzwxh:20193klzzwxh:20194klzzwxh:20195 pack $logcanvas.up.logBklzzwxh:18713rlogfm.yscroll -side right -fill yklzzwxh:21009klzzwxh:20196klzzwxh:20197klzzwxh:20198klzzwxh:20199klzzwxh:20200 pack $logcanvas.up.logBklzzwxh:18714rlogfm.rcomment -side left -fill x -expand yklzzwxh:21010klzzwxh:20201klzzwxh:20202klzzwxh:20203klzzwxh:20204klzzwxh:20205 grid $logcanvas.up.searchklzzwxh:18715b -column 0 -row 5 -sticky weklzzwxh:21011klzzwxh:20206klzzwxh:20207klzzwxh:20208klzzwxh:20209klzzwxh:20210 grid $logcanvas.up.search -column 1 -row 5 -columnspan 6 -sticky weklzzwxh:21012klzzwxh:20211klzzwxh:20212klzzwxh:20213klzzwxh:20214klzzwxh:20215 pack $logcanvas.up.search.e -side left -fill x -expand 1klzzwxh:21013klzzwxh:20216klzzwxh:20217klzzwxh:20218klzzwxh:20219klzzwxh:20220 pack $logcanvas.up.search.l -side rightklzzwxh:21014klzzwxh:20221klzzwxh:20222klzzwxh:20223klzzwxh:20224klzzwxh:20225 pack $logcanvas.up.search.c -side rightklzzwxh:21015klzzwxh:20226klzzwxh:20227klzzwxh:20228klzzwxh:20229klzzwxh:20230 klzzwxh:18716 Pack the bottom before the middle so it doesnt disappear ifklzzwxh:21016klzzwxh:20231klzzwxh:20232klzzwxh:20233klzzwxh:20234klzzwxh:20235 klzzwxh:18717 the window is resized smallerklzzwxh:21017klzzwxh:20236klzzwxh:20237klzzwxh:20238klzzwxh:20239klzzwxh:20240 frame $logcanvas.down -relief groove -border 2klzzwxh:21018klzzwxh:20241klzzwxh:20242klzzwxh:20243klzzwxh:20244klzzwxh:20245 pack $logcanvas.down -side bottom -fill xklzzwxh:21019klzzwxh:20246klzzwxh:20247klzzwxh:20248klzzwxh:20249klzzwxh:20250 klzzwxh:18718 The canvas for the big pictureklzzwxh:21020klzzwxh:20251klzzwxh:20252klzzwxh:20253klzzwxh:20254klzzwxh:20255 canvas $logcanvas.canvas -relief sunken -border 2 klzzwxh:18719klzzwxh:20256klzzwxh:20257klzzwxh:20258klzzwxh:20259klzzwxh:20260klzzwxh:20261klzzwxh:20262 -height 300 klzzwxh:18720klzzwxh:20263klzzwxh:20264klzzwxh:20265klzzwxh:20266klzzwxh:20267klzzwxh:20268klzzwxh:20269 -yscrollcommand klzzwxh:18721namespace code klzzwxh:20270$logcanvas.yscroll setklzzwxh:20271klzzwxh:18722 klzzwxh:18723klzzwxh:20272klzzwxh:20273klzzwxh:20274klzzwxh:20275klzzwxh:20276klzzwxh:20277klzzwxh:20278 -xscrollcommand klzzwxh:18724namespace code klzzwxh:20279$logcanvas.xscroll setklzzwxh:20280klzzwxh:18725klzzwxh:21021klzzwxh:20281klzzwxh:20282klzzwxh:20283klzzwxh:20284klzzwxh:20285 scrollbar $logcanvas.xscroll -relief sunken -orient horizontal klzzwxh:18726klzzwxh:20286klzzwxh:20287klzzwxh:20288klzzwxh:20289klzzwxh:20290klzzwxh:20291klzzwxh:20292 -command klzzwxh:18727namespace code klzzwxh:20293$logcanvas.canvas xviewklzzwxh:20294klzzwxh:18728klzzwxh:21022klzzwxh:20295klzzwxh:20296klzzwxh:20297klzzwxh:20298klzzwxh:20299 scrollbar $logcanvas.yscroll -relief sunken klzzwxh:18729klzzwxh:20300klzzwxh:20301klzzwxh:20302klzzwxh:20303klzzwxh:20304klzzwxh:20305klzzwxh:20306 -command klzzwxh:18730namespace code klzzwxh:20307$logcanvas.canvas yviewklzzwxh:20308klzzwxh:18731klzzwxh:21023klzzwxh:20309klzzwxh:20310klzzwxh:20311klzzwxh:20312klzzwxh:20313 klzzwxh:18732klzzwxh:21024klzzwxh:20314klzzwxh:20315klzzwxh:20316klzzwxh:20317klzzwxh:20318 klzzwxh:18733 Create buttonsklzzwxh:21025klzzwxh:20319klzzwxh:20320klzzwxh:20321klzzwxh:20322klzzwxh:20323 klzzwxh:18734klzzwxh:21026klzzwxh:20324klzzwxh:20325klzzwxh:20326klzzwxh:20327klzzwxh:20328 frame $logcanvas.down.btnfmklzzwxh:21027klzzwxh:20329klzzwxh:20330klzzwxh:20331klzzwxh:20332klzzwxh:20333 frame $logcanvas.down.closefm -relief groove -bd 2klzzwxh:21028klzzwxh:20334klzzwxh:20335klzzwxh:20336klzzwxh:20337klzzwxh:20338 button $logcanvas.refresh -image Refresh -highlightbackground $cvsglbklzzwxh:18735bgklzzwxh:18736 klzzwxh:18737klzzwxh:20339klzzwxh:20340klzzwxh:20341klzzwxh:20342klzzwxh:20343klzzwxh:20344klzzwxh:20345 -command klzzwxh:18738namespace code klzzwxh:18739klzzwxh:21029klzzwxh:20346klzzwxh:20347klzzwxh:20348klzzwxh:20349klzzwxh:20350klzzwxh:20351klzzwxh:20352klzzwxh:20353klzzwxh:20354klzzwxh:20355klzzwxh:20356klzzwxh:20357klzzwxh:20358klzzwxh:20359klzzwxh:20360klzzwxh:20361 $scopeklzzwxh:18740:reloadLogklzzwxh:21030klzzwxh:20362klzzwxh:20363klzzwxh:20364klzzwxh:20365klzzwxh:20366klzzwxh:20367klzzwxh:20368klzzwxh:20369klzzwxh:20370klzzwxh:20371klzzwxh:20372klzzwxh:20373klzzwxh:20374klzzwxh:20375 klzzwxh:18741klzzwxh:18742klzzwxh:21031klzzwxh:20376klzzwxh:20377klzzwxh:20378klzzwxh:20379klzzwxh:20380 button $logcanvas.view -image Fileview -highlightbackground $cvsglbklzzwxh:18743bgklzzwxh:18744klzzwxh:21032klzzwxh:20381klzzwxh:20382klzzwxh:20383klzzwxh:20384klzzwxh:20385 button $logcanvas.log -image Log -highlightbackground $cvsglbklzzwxh:18745bgklzzwxh:18746klzzwxh:21033klzzwxh:20386klzzwxh:20387klzzwxh:20388klzzwxh:20389klzzwxh:20390 button $logcanvas.annotate -image Annotate -highlightbackground $cvsglbklzzwxh:18747bgklzzwxh:18748klzzwxh:21034klzzwxh:20391klzzwxh:20392klzzwxh:20393klzzwxh:20394klzzwxh:20395 button $logcanvas.diff -image Diff -highlightbackground $cvsglbklzzwxh:18749bgklzzwxh:18750 klzzwxh:18751klzzwxh:20396klzzwxh:20397klzzwxh:20398klzzwxh:20399klzzwxh:20400klzzwxh:20401klzzwxh:20402 -command klzzwxh:18752namespace code klzzwxh:18753klzzwxh:21035klzzwxh:20403klzzwxh:20404klzzwxh:20405klzzwxh:20406klzzwxh:20407klzzwxh:20408klzzwxh:20409klzzwxh:20410klzzwxh:20411 comparediffklzzwxh:18754r klzzwxh:18755$logcanvas.up.revAklzzwxh:18756rvers cget -textklzzwxh:18757 klzzwxh:18758klzzwxh:20412klzzwxh:20413klzzwxh:20414klzzwxh:20415klzzwxh:20416klzzwxh:20417klzzwxh:20418klzzwxh:20419klzzwxh:20420 klzzwxh:18759$logcanvas.up.revBklzzwxh:18760rvers cget -textklzzwxh:18761 $logcanvas $filenameklzzwxh:21036klzzwxh:20421klzzwxh:20422klzzwxh:20423klzzwxh:20424klzzwxh:20425klzzwxh:20426klzzwxh:20427 klzzwxh:18762klzzwxh:18763klzzwxh:21037klzzwxh:20428klzzwxh:20429klzzwxh:20430klzzwxh:20431klzzwxh:20432 button $logcanvas.delta -image Mergediff -highlightbackground $cvsglbklzzwxh:18764bgklzzwxh:18765klzzwxh:21038klzzwxh:20433klzzwxh:20434klzzwxh:20435klzzwxh:20436klzzwxh:20437 button $logcanvas.viewtags -image Tags -highlightbackground $cvsglbklzzwxh:18766bgklzzwxh:18767 klzzwxh:18768klzzwxh:20438klzzwxh:20439klzzwxh:20440klzzwxh:20441klzzwxh:20442klzzwxh:20443klzzwxh:20444 -command klzzwxh:18769namespace code klzzwxh:18770klzzwxh:21039klzzwxh:20445klzzwxh:20446klzzwxh:20447klzzwxh:20448klzzwxh:20449klzzwxh:20450klzzwxh:20451klzzwxh:20452klzzwxh:20453klzzwxh:20454klzzwxh:20455klzzwxh:20456klzzwxh:20457klzzwxh:20458klzzwxh:20459klzzwxh:20460klzzwxh:20461klzzwxh:20462 variable revtagsklzzwxh:21040klzzwxh:20463klzzwxh:20464klzzwxh:20465klzzwxh:20466klzzwxh:20467klzzwxh:20468klzzwxh:20469klzzwxh:20470klzzwxh:20471klzzwxh:20472klzzwxh:20473klzzwxh:20474klzzwxh:20475klzzwxh:20476klzzwxh:20477klzzwxh:20478klzzwxh:20479klzzwxh:20480 variable revbtagsklzzwxh:21041klzzwxh:20481klzzwxh:20482klzzwxh:20483klzzwxh:20484klzzwxh:20485klzzwxh:20486klzzwxh:20487klzzwxh:20488klzzwxh:20489klzzwxh:20490klzzwxh:20491klzzwxh:20492klzzwxh:20493klzzwxh:20494klzzwxh:20495klzzwxh:20496klzzwxh:20497klzzwxh:20498 set taglist klzzwxh:18771klzzwxh:18772klzzwxh:21042klzzwxh:20499klzzwxh:20500klzzwxh:20501klzzwxh:20502klzzwxh:20503klzzwxh:20504klzzwxh:20505klzzwxh:20506klzzwxh:20507klzzwxh:20508klzzwxh:20509klzzwxh:20510klzzwxh:20511klzzwxh:20512klzzwxh:20513klzzwxh:20514klzzwxh:20515klzzwxh:20516 foreach r klzzwxh:18773lsort -command sortrevs klzzwxh:18774klzzwxh:20517klzzwxh:20518klzzwxh:20519klzzwxh:20520klzzwxh:20521klzzwxh:20522klzzwxh:20523klzzwxh:20524klzzwxh:20525klzzwxh:20526klzzwxh:20527klzzwxh:20528klzzwxh:20529klzzwxh:20530klzzwxh:20531klzzwxh:20532klzzwxh:20533klzzwxh:20534klzzwxh:20535klzzwxh:20536klzzwxh:20537klzzwxh:20538 klzzwxh:18775concat klzzwxh:18776array names revtagsklzzwxh:18777 klzzwxh:18778klzzwxh:20539klzzwxh:20540klzzwxh:20541klzzwxh:20542klzzwxh:20543klzzwxh:20544klzzwxh:20545klzzwxh:20546klzzwxh:20547klzzwxh:20548klzzwxh:20549klzzwxh:20550klzzwxh:20551klzzwxh:20552klzzwxh:20553klzzwxh:20554klzzwxh:20555klzzwxh:20556klzzwxh:20557klzzwxh:20558klzzwxh:20559klzzwxh:20560klzzwxh:20561klzzwxh:20562klzzwxh:20563klzzwxh:20564klzzwxh:20565klzzwxh:20566klzzwxh:20567klzzwxh:20568 klzzwxh:18779array names revbtagsklzzwxh:18780klzzwxh:18781klzzwxh:18782 klzzwxh:18783klzzwxh:21043klzzwxh:20569klzzwxh:20570klzzwxh:20571klzzwxh:20572klzzwxh:20573klzzwxh:20574klzzwxh:20575klzzwxh:20576klzzwxh:20577klzzwxh:20578klzzwxh:20579klzzwxh:20580klzzwxh:20581klzzwxh:20582klzzwxh:20583klzzwxh:20584klzzwxh:20585klzzwxh:20586klzzwxh:20587klzzwxh:20588 if klzzwxh:18784info exists revtagsklzzwxh:18785$rklzzwxh:18786klzzwxh:18787 klzzwxh:18788klzzwxh:21044klzzwxh:20589klzzwxh:20590klzzwxh:20591klzzwxh:20592klzzwxh:20593klzzwxh:20594klzzwxh:20595klzzwxh:20596klzzwxh:20597klzzwxh:20598klzzwxh:20599klzzwxh:20600klzzwxh:20601klzzwxh:20602klzzwxh:20603klzzwxh:20604klzzwxh:20605klzzwxh:20606klzzwxh:20607klzzwxh:20608klzzwxh:20609klzzwxh:20610 append taglist klzzwxh:20611$r: $revtagsklzzwxh:18789$rklzzwxh:18790klzzwxh:18791klzzwxh:20612klzzwxh:21045klzzwxh:20613klzzwxh:20614klzzwxh:20615klzzwxh:20616klzzwxh:20617klzzwxh:20618klzzwxh:20619klzzwxh:20620klzzwxh:20621klzzwxh:20622klzzwxh:20623klzzwxh:20624klzzwxh:20625klzzwxh:20626klzzwxh:20627klzzwxh:20628klzzwxh:20629klzzwxh:20630klzzwxh:20631klzzwxh:20632 klzzwxh:18792 elseif klzzwxh:18793info exists revbtagsklzzwxh:18794$rklzzwxh:18795klzzwxh:18796 klzzwxh:18797klzzwxh:21046klzzwxh:20633klzzwxh:20634klzzwxh:20635klzzwxh:20636klzzwxh:20637klzzwxh:20638klzzwxh:20639klzzwxh:20640klzzwxh:20641klzzwxh:20642klzzwxh:20643klzzwxh:20644klzzwxh:20645klzzwxh:20646klzzwxh:20647klzzwxh:20648klzzwxh:20649klzzwxh:20650klzzwxh:20651klzzwxh:20652klzzwxh:20653klzzwxh:20654 append taglist klzzwxh:20655$r: $revbtagsklzzwxh:18798$rklzzwxh:18799klzzwxh:18800klzzwxh:20656klzzwxh:21047klzzwxh:20657klzzwxh:20658klzzwxh:20659klzzwxh:20660klzzwxh:20661klzzwxh:20662klzzwxh:20663klzzwxh:20664klzzwxh:20665klzzwxh:20666klzzwxh:20667klzzwxh:20668klzzwxh:20669klzzwxh:20670klzzwxh:20671klzzwxh:20672klzzwxh:20673klzzwxh:20674klzzwxh:20675klzzwxh:20676 klzzwxh:18801klzzwxh:21048klzzwxh:20677klzzwxh:20678klzzwxh:20679klzzwxh:20680klzzwxh:20681klzzwxh:20682klzzwxh:20683klzzwxh:20684klzzwxh:20685klzzwxh:20686klzzwxh:20687klzzwxh:20688klzzwxh:20689klzzwxh:20690klzzwxh:20691klzzwxh:20692klzzwxh:20693klzzwxh:20694 klzzwxh:18802klzzwxh:21049klzzwxh:20695klzzwxh:20696klzzwxh:20697klzzwxh:20698klzzwxh:20699klzzwxh:20700klzzwxh:20701klzzwxh:20702klzzwxh:20703klzzwxh:20704klzzwxh:20705klzzwxh:20706klzzwxh:20707klzzwxh:20708klzzwxh:20709klzzwxh:20710klzzwxh:20711klzzwxh:20712 viewklzzwxh:18803output::new Tags $taglistklzzwxh:21050klzzwxh:20713klzzwxh:20714klzzwxh:20715klzzwxh:20716klzzwxh:20717klzzwxh:20718klzzwxh:20719klzzwxh:20720klzzwxh:20721klzzwxh:20722klzzwxh:20723klzzwxh:20724klzzwxh:20725klzzwxh:20726klzzwxh:20727klzzwxh:20728 klzzwxh:18804klzzwxh:18805klzzwxh:21051klzzwxh:20729klzzwxh:20730klzzwxh:20731klzzwxh:20732klzzwxh:20733 button $logcanvas.close -text klzzwxh:20734Closeklzzwxh:20735 -highlightbackground $cvsglbklzzwxh:18806bgklzzwxh:18807 klzzwxh:18808klzzwxh:20736klzzwxh:20737klzzwxh:20738klzzwxh:20739klzzwxh:20740klzzwxh:20741klzzwxh:20742 -command klzzwxh:18809namespace code klzzwxh:18810klzzwxh:21052klzzwxh:20743klzzwxh:20744klzzwxh:20745klzzwxh:20746klzzwxh:20747klzzwxh:20748klzzwxh:20749klzzwxh:20750klzzwxh:20751klzzwxh:20752klzzwxh:20753klzzwxh:20754klzzwxh:20755klzzwxh:20756klzzwxh:20757klzzwxh:20758 global cvscfgklzzwxh:21053klzzwxh:20759klzzwxh:20760klzzwxh:20761klzzwxh:20762klzzwxh:20763klzzwxh:20764klzzwxh:20765klzzwxh:20766klzzwxh:20767klzzwxh:20768klzzwxh:20769klzzwxh:20770klzzwxh:20771klzzwxh:20772klzzwxh:20773klzzwxh:20774 variable logcanvasklzzwxh:21054klzzwxh:20775klzzwxh:20776klzzwxh:20777klzzwxh:20778klzzwxh:20779klzzwxh:20780klzzwxh:20781klzzwxh:20782klzzwxh:20783klzzwxh:20784klzzwxh:20785klzzwxh:20786klzzwxh:20787klzzwxh:20788klzzwxh:20789klzzwxh:20790 set cvscfgklzzwxh:18811loggeomklzzwxh:18812 klzzwxh:18813wm geometry $logcanvasklzzwxh:18814klzzwxh:21055klzzwxh:20791klzzwxh:20792klzzwxh:20793klzzwxh:20794klzzwxh:20795klzzwxh:20796klzzwxh:20797klzzwxh:20798klzzwxh:20799klzzwxh:20800klzzwxh:20801klzzwxh:20802klzzwxh:20803klzzwxh:20804klzzwxh:20805klzzwxh:20806 destroy $logcanvasklzzwxh:21056klzzwxh:20807klzzwxh:20808klzzwxh:20809klzzwxh:20810klzzwxh:20811klzzwxh:20812klzzwxh:20813klzzwxh:20814klzzwxh:20815klzzwxh:20816klzzwxh:20817klzzwxh:20818klzzwxh:20819klzzwxh:20820klzzwxh:20821klzzwxh:20822 namespace delete klzzwxh:18815namespace currentklzzwxh:18816klzzwxh:21057klzzwxh:20823klzzwxh:20824klzzwxh:20825klzzwxh:20826klzzwxh:20827klzzwxh:20828klzzwxh:20829klzzwxh:20830klzzwxh:20831klzzwxh:20832klzzwxh:20833klzzwxh:20834klzzwxh:20835klzzwxh:20836klzzwxh:20837klzzwxh:20838 exitklzzwxh:18817cleanup 0klzzwxh:21058klzzwxh:20839klzzwxh:20840klzzwxh:20841klzzwxh:20842klzzwxh:20843klzzwxh:20844klzzwxh:20845klzzwxh:20846klzzwxh:20847klzzwxh:20848klzzwxh:20849klzzwxh:20850klzzwxh:20851klzzwxh:20852 klzzwxh:18818klzzwxh:18819klzzwxh:21059klzzwxh:20853klzzwxh:20854klzzwxh:20855klzzwxh:20856klzzwxh:20857 button $logcanvas.stop -text klzzwxh:20858Stopklzzwxh:20859 -bg red4 -fg white -highlightbackground $cvsglbklzzwxh:18820bgklzzwxh:18821 klzzwxh:18822klzzwxh:20860klzzwxh:20861klzzwxh:20862klzzwxh:20863klzzwxh:20864klzzwxh:20865klzzwxh:20866 -activebackground red4 -activeforeground white klzzwxh:18823klzzwxh:20867klzzwxh:20868klzzwxh:20869klzzwxh:20870klzzwxh:20871klzzwxh:20872klzzwxh:20873 -state klzzwxh:18824expr klzzwxh:18825$cvscfgklzzwxh:18826allowklzzwxh:18827abortklzzwxh:18828 ? klzzwxh:18829normalklzzwxh:18830 : klzzwxh:18831disabledklzzwxh:18832klzzwxh:18833klzzwxh:18834 klzzwxh:18835klzzwxh:20874klzzwxh:20875klzzwxh:20876klzzwxh:20877klzzwxh:20878klzzwxh:20879klzzwxh:20880 -command klzzwxh:20881$scopeklzzwxh:18836:abortLogklzzwxh:20882

    klzzwxh:21071klzzwxh:21072klzzwxh:21073klzzwxh:21074klzzwxh:21075 pack $logcanvas.refresh klzzwxh:21060klzzwxh:21076klzzwxh:21077klzzwxh:21078klzzwxh:21079klzzwxh:21080klzzwxh:21081klzzwxh:21082 -in $logcanvas.down -side left klzzwxh:21061klzzwxh:21083klzzwxh:21084klzzwxh:21085klzzwxh:21086klzzwxh:21087klzzwxh:21088klzzwxh:21089 -ipadx 4 -ipady 4klzzwxh:21188klzzwxh:21090klzzwxh:21091klzzwxh:21092klzzwxh:21093klzzwxh:21094 pack $logcanvas.down.btnfm -side left -fill y -expand 1klzzwxh:21189klzzwxh:21095klzzwxh:21096klzzwxh:21097klzzwxh:21098klzzwxh:21099 pack $logcanvas.view klzzwxh:21062klzzwxh:21100klzzwxh:21101klzzwxh:21102klzzwxh:21103klzzwxh:21104klzzwxh:21105klzzwxh:21106klzzwxh:21107klzzwxh:21108klzzwxh:21109 $logcanvas.log klzzwxh:21063klzzwxh:21110klzzwxh:21111klzzwxh:21112klzzwxh:21113klzzwxh:21114klzzwxh:21115klzzwxh:21116klzzwxh:21117klzzwxh:21118klzzwxh:21119 $logcanvas.annotate klzzwxh:21064klzzwxh:21120klzzwxh:21121klzzwxh:21122klzzwxh:21123klzzwxh:21124klzzwxh:21125klzzwxh:21126klzzwxh:21127klzzwxh:21128klzzwxh:21129 $logcanvas.diff klzzwxh:21065klzzwxh:21130klzzwxh:21131klzzwxh:21132klzzwxh:21133klzzwxh:21134klzzwxh:21135klzzwxh:21136klzzwxh:21137klzzwxh:21138klzzwxh:21139 $logcanvas.delta klzzwxh:21066klzzwxh:21140klzzwxh:21141klzzwxh:21142klzzwxh:21143klzzwxh:21144klzzwxh:21145klzzwxh:21146klzzwxh:21147klzzwxh:21148klzzwxh:21149 $logcanvas.viewtags klzzwxh:21067klzzwxh:21150klzzwxh:21151klzzwxh:21152klzzwxh:21153klzzwxh:21154klzzwxh:21155klzzwxh:21156 -in $logcanvas.down.btnfm -side left klzzwxh:21068klzzwxh:21157klzzwxh:21158klzzwxh:21159klzzwxh:21160klzzwxh:21161klzzwxh:21162klzzwxh:21163 -ipadx 4 -ipady 4klzzwxh:21190klzzwxh:21164klzzwxh:21165klzzwxh:21166klzzwxh:21167klzzwxh:21168 pack $logcanvas.down.closefm -side rightklzzwxh:21191klzzwxh:21169klzzwxh:21170klzzwxh:21171klzzwxh:21172klzzwxh:21173 pack $logcanvas.close klzzwxh:21069klzzwxh:21174klzzwxh:21175klzzwxh:21176klzzwxh:21177klzzwxh:21178klzzwxh:21179klzzwxh:21180 -in $logcanvas.down.closefm -side right klzzwxh:21070klzzwxh:21181klzzwxh:21182klzzwxh:21183klzzwxh:21184klzzwxh:21185klzzwxh:21186klzzwxh:21187 -fill both -expand 1

    klzzwxh:21249klzzwxh:21250klzzwxh:21251klzzwxh:21252klzzwxh:21253 setklzzwxh:21192tooltips $logcanvas.refresh klzzwxh:21193klzzwxh:21254klzzwxh:21255klzzwxh:21256klzzwxh:21257klzzwxh:21258klzzwxh:21259klzzwxh:21260 klzzwxh:21194klzzwxh:21261Re-read the log informationklzzwxh:21262klzzwxh:21195klzzwxh:21483klzzwxh:21263klzzwxh:21264klzzwxh:21265klzzwxh:21266klzzwxh:21267 setklzzwxh:21196tooltips $logcanvas.up.bworkdir klzzwxh:21197klzzwxh:21268klzzwxh:21269klzzwxh:21270klzzwxh:21271klzzwxh:21272klzzwxh:21273klzzwxh:21274 klzzwxh:21198klzzwxh:21275Open the Working Directory Browserklzzwxh:21276klzzwxh:21199klzzwxh:21484klzzwxh:21277klzzwxh:21278klzzwxh:21279klzzwxh:21280klzzwxh:21281 setklzzwxh:21200tooltips $logcanvas.up.bmodbrowse klzzwxh:21201klzzwxh:21282klzzwxh:21283klzzwxh:21284klzzwxh:21285klzzwxh:21286klzzwxh:21287klzzwxh:21288 klzzwxh:21202klzzwxh:21289Open the Repository Browserklzzwxh:21290klzzwxh:21203klzzwxh:21485klzzwxh:21291klzzwxh:21292klzzwxh:21293klzzwxh:21294klzzwxh:21295 setklzzwxh:21204tooltips $logcanvas.view klzzwxh:21205klzzwxh:21296klzzwxh:21297klzzwxh:21298klzzwxh:21299klzzwxh:21300klzzwxh:21301klzzwxh:21302 klzzwxh:21206klzzwxh:21303View a version of the fileklzzwxh:21304klzzwxh:21207klzzwxh:21486klzzwxh:21305klzzwxh:21306klzzwxh:21307klzzwxh:21308klzzwxh:21309 setklzzwxh:21208tooltips $logcanvas.log klzzwxh:21209klzzwxh:21310klzzwxh:21311klzzwxh:21312klzzwxh:21313klzzwxh:21314klzzwxh:21315klzzwxh:21316 klzzwxh:21210klzzwxh:21317Revision Log of the fileklzzwxh:21318klzzwxh:21211klzzwxh:21487klzzwxh:21319klzzwxh:21320klzzwxh:21321klzzwxh:21322klzzwxh:21323 setklzzwxh:21212tooltips $logcanvas.annotate klzzwxh:21213klzzwxh:21324klzzwxh:21325klzzwxh:21326klzzwxh:21327klzzwxh:21328klzzwxh:21329klzzwxh:21330 klzzwxh:21214klzzwxh:21331View revision where each line was modifiedklzzwxh:21332klzzwxh:21215klzzwxh:21488klzzwxh:21333klzzwxh:21334klzzwxh:21335klzzwxh:21336klzzwxh:21337 setklzzwxh:21216tooltips $logcanvas.diff klzzwxh:21217klzzwxh:21338klzzwxh:21339klzzwxh:21340klzzwxh:21341klzzwxh:21342klzzwxh:21343klzzwxh:21344 klzzwxh:21218klzzwxh:21345Compare two versions of the fileklzzwxh:21346klzzwxh:21219klzzwxh:21489klzzwxh:21347klzzwxh:21348klzzwxh:21349klzzwxh:21350klzzwxh:21351 setklzzwxh:21220tooltips $logcanvas.delta klzzwxh:21221klzzwxh:21352klzzwxh:21353klzzwxh:21354klzzwxh:21355klzzwxh:21356klzzwxh:21357klzzwxh:21358 klzzwxh:21222klzzwxh:21359Merge to currentklzzwxh:21360klzzwxh:21223klzzwxh:21490klzzwxh:21361klzzwxh:21362klzzwxh:21363klzzwxh:21364klzzwxh:21365 setklzzwxh:21224tooltips $logcanvas.viewtags klzzwxh:21225klzzwxh:21366klzzwxh:21367klzzwxh:21368klzzwxh:21369klzzwxh:21370klzzwxh:21371klzzwxh:21372 klzzwxh:21226klzzwxh:21373List all the fileklzzwxh:21227s tagsklzzwxh:21374klzzwxh:21228klzzwxh:21491klzzwxh:21375 klzzwxh:21492klzzwxh:21376klzzwxh:21377klzzwxh:21378klzzwxh:21379klzzwxh:21380 klzzwxh:21229klzzwxh:21493klzzwxh:21381klzzwxh:21382klzzwxh:21383klzzwxh:21384klzzwxh:21385 klzzwxh:21230 Put the canvas on to the display.klzzwxh:21494klzzwxh:21386klzzwxh:21387klzzwxh:21388klzzwxh:21389klzzwxh:21390 klzzwxh:21231klzzwxh:21495klzzwxh:21391klzzwxh:21392klzzwxh:21393klzzwxh:21394klzzwxh:21395 pack $logcanvas.xscroll -side bottom -fill x -padx 1 -pady 1klzzwxh:21496klzzwxh:21396klzzwxh:21397klzzwxh:21398klzzwxh:21399klzzwxh:21400 pack $logcanvas.yscroll -side right -fill y -padx 1 -pady 1klzzwxh:21497klzzwxh:21401klzzwxh:21402klzzwxh:21403klzzwxh:21404klzzwxh:21405 pack $logcanvas.canvas -fill both -expand 1klzzwxh:21498klzzwxh:21406klzzwxh:21407klzzwxh:21408klzzwxh:21409klzzwxh:21410 scrollbindings $logcanvas.canvasklzzwxh:21499klzzwxh:21411 klzzwxh:21500klzzwxh:21412klzzwxh:21413klzzwxh:21414klzzwxh:21415klzzwxh:21416 klzzwxh:21232klzzwxh:21501klzzwxh:21417klzzwxh:21418klzzwxh:21419klzzwxh:21420klzzwxh:21421 klzzwxh:21233 Window manager stuff.klzzwxh:21502klzzwxh:21422klzzwxh:21423klzzwxh:21424klzzwxh:21425klzzwxh:21426 klzzwxh:21234klzzwxh:21503klzzwxh:21427klzzwxh:21428klzzwxh:21429klzzwxh:21430klzzwxh:21431 wm minsize $logcanvas 1 1klzzwxh:21504klzzwxh:21432klzzwxh:21433klzzwxh:21434klzzwxh:21435klzzwxh:21436 if klzzwxh:21235klzzwxh:21236info exists cvscfgklzzwxh:21237loggeomklzzwxh:21238klzzwxh:21239klzzwxh:21240 klzzwxh:21241klzzwxh:21505klzzwxh:21437klzzwxh:21438klzzwxh:21439klzzwxh:21440klzzwxh:21441klzzwxh:21442klzzwxh:21443 wm geometry $logcanvas $cvscfgklzzwxh:21242loggeomklzzwxh:21243klzzwxh:21506klzzwxh:21444klzzwxh:21445klzzwxh:21446klzzwxh:21447klzzwxh:21448 klzzwxh:21244klzzwxh:21507klzzwxh:21449 klzzwxh:21508klzzwxh:21450klzzwxh:21451klzzwxh:21452klzzwxh:21453klzzwxh:21454 $logcanvas.canvas bind active klzzwxh:21455Enterklzzwxh:21456 klzzwxh:21245klzzwxh:21457klzzwxh:21458klzzwxh:21459klzzwxh:21460klzzwxh:21461klzzwxh:21462klzzwxh:21463 klzzwxh:21464$logcanvas.canvas config -cursor hand2klzzwxh:21465klzzwxh:21509klzzwxh:21466klzzwxh:21467klzzwxh:21468klzzwxh:21469klzzwxh:21470 $logcanvas.canvas bind active klzzwxh:21471Leaveklzzwxh:21472 klzzwxh:21246klzzwxh:21473klzzwxh:21474klzzwxh:21475klzzwxh:21476klzzwxh:21477klzzwxh:21478klzzwxh:21479 klzzwxh:21480$logcanvas.canvas config -cursor klzzwxh:21247klzzwxh:21248klzzwxh:21481klzzwxh:21510klzzwxh:21482

    klzzwxh:21514klzzwxh:21515klzzwxh:21516klzzwxh:21517klzzwxh:21518 $logcanvas.canvas bind tag klzzwxh:21519Button-1klzzwxh:21520 klzzwxh:21511klzzwxh:21521klzzwxh:21522klzzwxh:21523klzzwxh:21524klzzwxh:21525klzzwxh:21526klzzwxh:21527 klzzwxh:21512namespace code klzzwxh:21528PopupTags %X %Yklzzwxh:21529klzzwxh:21513

    klzzwxh:21540klzzwxh:21541klzzwxh:21542klzzwxh:21543klzzwxh:21544 $logcanvas.canvas bind box klzzwxh:21545ButtonPress-1klzzwxh:21546 klzzwxh:21530klzzwxh:21547klzzwxh:21548klzzwxh:21549klzzwxh:21550klzzwxh:21551klzzwxh:21552klzzwxh:21553 klzzwxh:21531namespace code klzzwxh:21554RevSelect Aklzzwxh:21555klzzwxh:21532klzzwxh:21593klzzwxh:21556klzzwxh:21557klzzwxh:21558klzzwxh:21559klzzwxh:21560 klzzwxh:21533 Tcl/TK for Windows doesn't do Button 3, so we duplicate it on Button 2klzzwxh:21594klzzwxh:21561klzzwxh:21562klzzwxh:21563klzzwxh:21564klzzwxh:21565 $logcanvas.canvas bind box klzzwxh:21566ButtonPress-2klzzwxh:21567 klzzwxh:21534klzzwxh:21568klzzwxh:21569klzzwxh:21570klzzwxh:21571klzzwxh:21572klzzwxh:21573klzzwxh:21574 klzzwxh:21535namespace code klzzwxh:21575RevSelect Bklzzwxh:21576klzzwxh:21536klzzwxh:21595klzzwxh:21577klzzwxh:21578klzzwxh:21579klzzwxh:21580klzzwxh:21581 $logcanvas.canvas bind box klzzwxh:21582ButtonPress-3klzzwxh:21583 klzzwxh:21537klzzwxh:21584klzzwxh:21585klzzwxh:21586klzzwxh:21587klzzwxh:21588klzzwxh:21589klzzwxh:21590 klzzwxh:21538namespace code klzzwxh:21591RevSelect Bklzzwxh:21592klzzwxh:21539

    klzzwxh:21606klzzwxh:21607klzzwxh:21608klzzwxh:21609klzzwxh:21610 klzzwxh:21596 Clicking in a blank part of the canvas unselects boxesklzzwxh:21659klzzwxh:21611klzzwxh:21612klzzwxh:21613klzzwxh:21614klzzwxh:21615 bind $logcanvas.canvas klzzwxh:21616ButtonPress-1klzzwxh:21617 klzzwxh:21597klzzwxh:21618klzzwxh:21619klzzwxh:21620klzzwxh:21621klzzwxh:21622klzzwxh:21623klzzwxh:21624 klzzwxh:21598namespace code klzzwxh:21625Unselect Aklzzwxh:21626klzzwxh:21599klzzwxh:21660klzzwxh:21627klzzwxh:21628klzzwxh:21629klzzwxh:21630klzzwxh:21631 bind $logcanvas.canvas klzzwxh:21632ButtonPress-2klzzwxh:21633 klzzwxh:21600klzzwxh:21634klzzwxh:21635klzzwxh:21636klzzwxh:21637klzzwxh:21638klzzwxh:21639klzzwxh:21640 klzzwxh:21601namespace code klzzwxh:21641Unselect Bklzzwxh:21642klzzwxh:21602klzzwxh:21661klzzwxh:21643klzzwxh:21644klzzwxh:21645klzzwxh:21646klzzwxh:21647 bind $logcanvas.canvas klzzwxh:21648ButtonPress-3klzzwxh:21649 klzzwxh:21603klzzwxh:21650klzzwxh:21651klzzwxh:21652klzzwxh:21653klzzwxh:21654klzzwxh:21655klzzwxh:21656 klzzwxh:21604namespace code klzzwxh:21657Unselect Bklzzwxh:21658klzzwxh:21605

    klzzwxh:21662klzzwxh:21663klzzwxh:21664klzzwxh:21665klzzwxh:21666 focus $logcanvas.up.search.eklzzwxh:21677klzzwxh:21667klzzwxh:21668klzzwxh:21669klzzwxh:21670klzzwxh:21671 $logcanvas.canvas xview moveto 0klzzwxh:21678klzzwxh:21672klzzwxh:21673klzzwxh:21674klzzwxh:21675klzzwxh:21676 $logcanvas.canvas yview moveto 0

    klzzwxh:21686klzzwxh:21687klzzwxh:21688klzzwxh:21689klzzwxh:21690 return klzzwxh:21679list klzzwxh:21680namespace currentklzzwxh:21681 $logcanvasklzzwxh:21682klzzwxh:21695klzzwxh:21691klzzwxh:21692klzzwxh:21693 klzzwxh:21683klzzwxh:21696klzzwxh:21694 klzzwxh:21684klzzwxh:21697klzzwxh:21685

     
    • Christoph
      Christoph
      2008-04-11

      Uups, I just saw that the indentation was lost. If someone is interested in the indented file, please write me an e-mail: add "@gmx.de" to my user name ...

       
      • DorothyR
        DorothyR
        2008-05-13

        The indentation was more or less intact in the email I got.  I'm going to try it out - it looks helpful.  Thanks!