Merge branch 'ml/gitk' (early part)
* 'ml/gitk' (early part): gitk: Use show-ref instead of ls-remote Make gitk work reasonably well on Cygwin. gitk - remove trailing whitespace from a few lines.
This commit is contained in:
		
							
								
								
									
										276
									
								
								gitk
									
									
									
									
									
								
							
							
						
						
									
										276
									
								
								gitk
									
									
									
									
									
								
							| @ -309,9 +309,9 @@ proc readrefs {} { | |||||||
|     foreach v {tagids idtags headids idheads otherrefids idotherrefs} { |     foreach v {tagids idtags headids idheads otherrefids idotherrefs} { | ||||||
| 	catch {unset $v} | 	catch {unset $v} | ||||||
|     } |     } | ||||||
|     set refd [open [list | git ls-remote [gitdir]] r] |     set refd [open [list | git show-ref] r] | ||||||
|     while {0 <= [set n [gets $refd line]]} { |     while {0 <= [set n [gets $refd line]]} { | ||||||
| 	if {![regexp {^([0-9a-f]{40})	refs/([^^]*)$} $line \ | 	if {![regexp {^([0-9a-f]{40}) refs/([^^]*)$} $line \ | ||||||
| 	    match id path]} { | 	    match id path]} { | ||||||
| 	    continue | 	    continue | ||||||
| 	} | 	} | ||||||
| @ -435,56 +435,59 @@ proc makewindow {} { | |||||||
|     .bar.help configure -font $uifont |     .bar.help configure -font $uifont | ||||||
|     . configure -menu .bar |     . configure -menu .bar | ||||||
|  |  | ||||||
|     if {![info exists geometry(canv1)]} { |     # the gui has upper and lower half, parts of a paned window. | ||||||
| 	set geometry(canv1) [expr {45 * $charspc}] |  | ||||||
| 	set geometry(canv2) [expr {30 * $charspc}] |  | ||||||
| 	set geometry(canv3) [expr {15 * $charspc}] |  | ||||||
| 	set geometry(canvh) [expr {25 * $linespc + 4}] |  | ||||||
| 	set geometry(ctextw) 80 |  | ||||||
| 	set geometry(ctexth) 30 |  | ||||||
| 	set geometry(cflistw) 30 |  | ||||||
|     } |  | ||||||
|     panedwindow .ctop -orient vertical |     panedwindow .ctop -orient vertical | ||||||
|     if {[info exists geometry(width)]} { |  | ||||||
| 	.ctop conf -width $geometry(width) -height $geometry(height) |     # possibly use assumed geometry | ||||||
| 	set texth [expr {$geometry(height) - $geometry(canvh) - 56}] |     if {![info exists geometry(topheight)]} { | ||||||
| 	set geometry(ctexth) [expr {($texth - 8) / |         set geometry(topheight) [expr {15 * $linespc}] | ||||||
| 				    [font metrics $textfont -linespace]}] |         set geometry(topwidth) [expr {80 * $charspc}] | ||||||
|  |         set geometry(botheight) [expr {15 * $linespc}] | ||||||
|  |         set geometry(botwidth) [expr {50 * $charspc}] | ||||||
|  |         set geometry(canv) [expr {40 * $charspc}] | ||||||
|  |         set geometry(canv2) [expr {20 * $charspc}] | ||||||
|  |         set geometry(canv3) [expr {20 * $charspc}] | ||||||
|     } |     } | ||||||
|     frame .ctop.top |  | ||||||
|     frame .ctop.top.bar |     # the upper half will have a paned window, a scroll bar to the right, and some stuff below | ||||||
|     frame .ctop.top.lbar |     frame .tf -height $geometry(topheight) -width $geometry(topwidth) | ||||||
|     pack .ctop.top.lbar -side bottom -fill x |     frame .tf.histframe | ||||||
|     pack .ctop.top.bar -side bottom -fill x |     panedwindow .tf.histframe.pwclist -orient horizontal -sashpad 0 -handlesize 4 | ||||||
|     set cscroll .ctop.top.csb |  | ||||||
|     scrollbar $cscroll -command {allcanvs yview} -highlightthickness 0 |     # create three canvases | ||||||
|     pack $cscroll -side right -fill y |     set cscroll .tf.histframe.csb | ||||||
|     panedwindow .ctop.top.clist -orient horizontal -sashpad 0 -handlesize 4 |     set canv .tf.histframe.pwclist.canv | ||||||
|     pack .ctop.top.clist -side top -fill both -expand 1 |     canvas $canv -width $geometry(canv) \ | ||||||
|     .ctop add .ctop.top |  | ||||||
|     set canv .ctop.top.clist.canv |  | ||||||
|     canvas $canv -height $geometry(canvh) -width $geometry(canv1) \ |  | ||||||
| 	-background $bgcolor -bd 0 \ | 	-background $bgcolor -bd 0 \ | ||||||
| 	-yscrollincr $linespc -yscrollcommand "scrollcanv $cscroll" | 	-yscrollincr $linespc -yscrollcommand "scrollcanv $cscroll" | ||||||
|     .ctop.top.clist add $canv |     .tf.histframe.pwclist add $canv | ||||||
|     set canv2 .ctop.top.clist.canv2 |     set canv2 .tf.histframe.pwclist.canv2 | ||||||
|     canvas $canv2 -height $geometry(canvh) -width $geometry(canv2) \ |     canvas $canv2 -width $geometry(canv2) \ | ||||||
| 	-background $bgcolor -bd 0 -yscrollincr $linespc | 	-background $bgcolor -bd 0 -yscrollincr $linespc | ||||||
|     .ctop.top.clist add $canv2 |     .tf.histframe.pwclist add $canv2 | ||||||
|     set canv3 .ctop.top.clist.canv3 |     set canv3 .tf.histframe.pwclist.canv3 | ||||||
|     canvas $canv3 -height $geometry(canvh) -width $geometry(canv3) \ |     canvas $canv3 -width $geometry(canv3) \ | ||||||
| 	-background $bgcolor -bd 0 -yscrollincr $linespc | 	-background $bgcolor -bd 0 -yscrollincr $linespc | ||||||
|     .ctop.top.clist add $canv3 |     .tf.histframe.pwclist add $canv3 | ||||||
|     bind .ctop.top.clist <Configure> {resizeclistpanes %W %w} |  | ||||||
|     lappend bglist $canv $canv2 $canv3 |  | ||||||
|  |  | ||||||
|     set sha1entry .ctop.top.bar.sha1 |     # a scroll bar to rule them | ||||||
|  |     scrollbar $cscroll -command {allcanvs yview} -highlightthickness 0 | ||||||
|  |     pack $cscroll -side right -fill y | ||||||
|  |     bind .tf.histframe.pwclist <Configure> {resizeclistpanes %W %w} | ||||||
|  |     lappend bglist $canv $canv2 $canv3 | ||||||
|  |     pack .tf.histframe.pwclist -fill both -expand 1 -side left | ||||||
|  |  | ||||||
|  |     # we have two button bars at bottom of top frame. Bar 1 | ||||||
|  |     frame .tf.bar | ||||||
|  |     frame .tf.lbar -height 15 | ||||||
|  |  | ||||||
|  |     set sha1entry .tf.bar.sha1 | ||||||
|     set entries $sha1entry |     set entries $sha1entry | ||||||
|     set sha1but .ctop.top.bar.sha1label |     set sha1but .tf.bar.sha1label | ||||||
|     button $sha1but -text "SHA1 ID: " -state disabled -relief flat \ |     button $sha1but -text "SHA1 ID: " -state disabled -relief flat \ | ||||||
| 	-command gotocommit -width 8 -font $uifont | 	-command gotocommit -width 8 -font $uifont | ||||||
|     $sha1but conf -disabledforeground [$sha1but cget -foreground] |     $sha1but conf -disabledforeground [$sha1but cget -foreground] | ||||||
|     pack .ctop.top.bar.sha1label -side left |     pack .tf.bar.sha1label -side left | ||||||
|     entry $sha1entry -width 40 -font $textfont -textvariable sha1string |     entry $sha1entry -width 40 -font $textfont -textvariable sha1string | ||||||
|     trace add variable sha1string write sha1change |     trace add variable sha1string write sha1change | ||||||
|     pack $sha1entry -side left -pady 2 |     pack $sha1entry -side left -pady 2 | ||||||
| @ -505,91 +508,105 @@ proc makewindow {} { | |||||||
| 	0x00, 0x38, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0x00, 0x38, 0x00, 0x1c, | 	0x00, 0x38, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0x00, 0x38, 0x00, 0x1c, | ||||||
| 	0x00, 0x0e, 0x00, 0x07, 0x80, 0x03, 0xc0, 0x01}; | 	0x00, 0x0e, 0x00, 0x07, 0x80, 0x03, 0xc0, 0x01}; | ||||||
|     } |     } | ||||||
|     button .ctop.top.bar.leftbut -image bm-left -command goback \ |     button .tf.bar.leftbut -image bm-left -command goback \ | ||||||
| 	-state disabled -width 26 | 	-state disabled -width 26 | ||||||
|     pack .ctop.top.bar.leftbut -side left -fill y |     pack .tf.bar.leftbut -side left -fill y | ||||||
|     button .ctop.top.bar.rightbut -image bm-right -command goforw \ |     button .tf.bar.rightbut -image bm-right -command goforw \ | ||||||
| 	-state disabled -width 26 | 	-state disabled -width 26 | ||||||
|     pack .ctop.top.bar.rightbut -side left -fill y |     pack .tf.bar.rightbut -side left -fill y | ||||||
|  |  | ||||||
|     button .ctop.top.bar.findbut -text "Find" -command dofind -font $uifont |     button .tf.bar.findbut -text "Find" -command dofind -font $uifont | ||||||
|     pack .ctop.top.bar.findbut -side left |     pack .tf.bar.findbut -side left | ||||||
|     set findstring {} |     set findstring {} | ||||||
|     set fstring .ctop.top.bar.findstring |     set fstring .tf.bar.findstring | ||||||
|     lappend entries $fstring |     lappend entries $fstring | ||||||
|     entry $fstring -width 30 -font $textfont -textvariable findstring |     entry $fstring -width 30 -font $textfont -textvariable findstring | ||||||
|     trace add variable findstring write find_change |     trace add variable findstring write find_change | ||||||
|     pack $fstring -side left -expand 1 -fill x |     pack $fstring -side left -expand 1 -fill x -in .tf.bar | ||||||
|     set findtype Exact |     set findtype Exact | ||||||
|     set findtypemenu [tk_optionMenu .ctop.top.bar.findtype \ |     set findtypemenu [tk_optionMenu .tf.bar.findtype \ | ||||||
| 			  findtype Exact IgnCase Regexp] | 		      findtype Exact IgnCase Regexp] | ||||||
|     trace add variable findtype write find_change |     trace add variable findtype write find_change | ||||||
|     .ctop.top.bar.findtype configure -font $uifont |     .tf.bar.findtype configure -font $uifont | ||||||
|     .ctop.top.bar.findtype.menu configure -font $uifont |     .tf.bar.findtype.menu configure -font $uifont | ||||||
|     set findloc "All fields" |     set findloc "All fields" | ||||||
|     tk_optionMenu .ctop.top.bar.findloc findloc "All fields" Headline \ |     tk_optionMenu .tf.bar.findloc findloc "All fields" Headline \ | ||||||
| 	Comments Author Committer | 	Comments Author Committer | ||||||
|     trace add variable findloc write find_change |     trace add variable findloc write find_change | ||||||
|     .ctop.top.bar.findloc configure -font $uifont |     .tf.bar.findloc configure -font $uifont | ||||||
|     .ctop.top.bar.findloc.menu configure -font $uifont |     .tf.bar.findloc.menu configure -font $uifont | ||||||
|     pack .ctop.top.bar.findloc -side right |     pack .tf.bar.findloc -side right | ||||||
|     pack .ctop.top.bar.findtype -side right |     pack .tf.bar.findtype -side right | ||||||
|  |  | ||||||
|     label .ctop.top.lbar.flabel -text "Highlight:  Commits " \ |     # build up the bottom bar of upper window | ||||||
| 	-font $uifont |     label .tf.lbar.flabel -text "Highlight:  Commits " \ | ||||||
|     pack .ctop.top.lbar.flabel -side left -fill y |     -font $uifont | ||||||
|  |     pack .tf.lbar.flabel -side left -fill y | ||||||
|     set gdttype "touching paths:" |     set gdttype "touching paths:" | ||||||
|     set gm [tk_optionMenu .ctop.top.lbar.gdttype gdttype "touching paths:" \ |     set gm [tk_optionMenu .tf.lbar.gdttype gdttype "touching paths:" \ | ||||||
| 		"adding/removing string:"] | 	"adding/removing string:"] | ||||||
|     trace add variable gdttype write hfiles_change |     trace add variable gdttype write hfiles_change | ||||||
|     $gm conf -font $uifont |     $gm conf -font $uifont | ||||||
|     .ctop.top.lbar.gdttype conf -font $uifont |     .tf.lbar.gdttype conf -font $uifont | ||||||
|     pack .ctop.top.lbar.gdttype -side left -fill y |     pack .tf.lbar.gdttype -side left -fill y | ||||||
|     entry .ctop.top.lbar.fent -width 25 -font $textfont \ |     entry .tf.lbar.fent -width 25 -font $textfont \ | ||||||
| 	-textvariable highlight_files | 	-textvariable highlight_files | ||||||
|     trace add variable highlight_files write hfiles_change |     trace add variable highlight_files write hfiles_change | ||||||
|     lappend entries .ctop.top.lbar.fent |     lappend entries .tf.lbar.fent | ||||||
|     pack .ctop.top.lbar.fent -side left -fill x -expand 1 |     pack .tf.lbar.fent -side left -fill x -expand 1 | ||||||
|     label .ctop.top.lbar.vlabel -text " OR in view" -font $uifont |     label .tf.lbar.vlabel -text " OR in view" -font $uifont | ||||||
|     pack .ctop.top.lbar.vlabel -side left -fill y |     pack .tf.lbar.vlabel -side left -fill y | ||||||
|     global viewhlmenu selectedhlview |     global viewhlmenu selectedhlview | ||||||
|     set viewhlmenu [tk_optionMenu .ctop.top.lbar.vhl selectedhlview None] |     set viewhlmenu [tk_optionMenu .tf.lbar.vhl selectedhlview None] | ||||||
|     $viewhlmenu entryconf None -command delvhighlight |     $viewhlmenu entryconf None -command delvhighlight | ||||||
|     $viewhlmenu conf -font $uifont |     $viewhlmenu conf -font $uifont | ||||||
|     .ctop.top.lbar.vhl conf -font $uifont |     .tf.lbar.vhl conf -font $uifont | ||||||
|     pack .ctop.top.lbar.vhl -side left -fill y |     pack .tf.lbar.vhl -side left -fill y | ||||||
|     label .ctop.top.lbar.rlabel -text " OR " -font $uifont |     label .tf.lbar.rlabel -text " OR " -font $uifont | ||||||
|     pack .ctop.top.lbar.rlabel -side left -fill y |     pack .tf.lbar.rlabel -side left -fill y | ||||||
|     global highlight_related |     global highlight_related | ||||||
|     set m [tk_optionMenu .ctop.top.lbar.relm highlight_related None \ |     set m [tk_optionMenu .tf.lbar.relm highlight_related None \ | ||||||
| 	       "Descendent" "Not descendent" "Ancestor" "Not ancestor"] | 	"Descendent" "Not descendent" "Ancestor" "Not ancestor"] | ||||||
|     $m conf -font $uifont |     $m conf -font $uifont | ||||||
|     .ctop.top.lbar.relm conf -font $uifont |     .tf.lbar.relm conf -font $uifont | ||||||
|     trace add variable highlight_related write vrel_change |     trace add variable highlight_related write vrel_change | ||||||
|     pack .ctop.top.lbar.relm -side left -fill y |     pack .tf.lbar.relm -side left -fill y | ||||||
|  |  | ||||||
|     panedwindow .ctop.cdet -orient horizontal |     # Finish putting the upper half of the viewer together | ||||||
|     .ctop add .ctop.cdet |     pack .tf.lbar -in .tf -side bottom -fill x | ||||||
|     frame .ctop.cdet.left |     pack .tf.bar -in .tf -side bottom -fill x | ||||||
|     frame .ctop.cdet.left.bot |     pack .tf.histframe -fill both -side top -expand 1 | ||||||
|     pack .ctop.cdet.left.bot -side bottom -fill x |     .ctop add .tf | ||||||
|     button .ctop.cdet.left.bot.search -text "Search" -command dosearch \ |  | ||||||
|  |     # now build up the bottom | ||||||
|  |     panedwindow .pwbottom -orient horizontal | ||||||
|  |  | ||||||
|  |     # lower left, a text box over search bar, scroll bar to the right | ||||||
|  |     # if we know window height, then that will set the lower text height, otherwise | ||||||
|  |     # we set lower text height which will drive window height | ||||||
|  |     if {[info exists geometry(main)]} { | ||||||
|  |         frame .bleft -width $geometry(botwidth) | ||||||
|  |     } else { | ||||||
|  |         frame .bleft -width $geometry(botwidth) -height $geometry(botheight) | ||||||
|  |     } | ||||||
|  |     frame .bleft.top | ||||||
|  |  | ||||||
|  |     button .bleft.top.search -text "Search" -command dosearch \ | ||||||
| 	-font $uifont | 	-font $uifont | ||||||
|     pack .ctop.cdet.left.bot.search -side left -padx 5 |     pack .bleft.top.search -side left -padx 5 | ||||||
|     set sstring .ctop.cdet.left.bot.sstring |     set sstring .bleft.top.sstring | ||||||
|     entry $sstring -width 20 -font $textfont -textvariable searchstring |     entry $sstring -width 20 -font $textfont -textvariable searchstring | ||||||
|     lappend entries $sstring |     lappend entries $sstring | ||||||
|     trace add variable searchstring write incrsearch |     trace add variable searchstring write incrsearch | ||||||
|     pack $sstring -side left -expand 1 -fill x |     pack $sstring -side left -expand 1 -fill x | ||||||
|     set ctext .ctop.cdet.left.ctext |     set ctext .bleft.ctext | ||||||
|     text $ctext -background $bgcolor -foreground $fgcolor \ |     text $ctext -background $bgcolor -foreground $fgcolor \ | ||||||
| 	-state disabled -font $textfont \ | 	-state disabled -font $textfont \ | ||||||
| 	-width $geometry(ctextw) -height $geometry(ctexth) \ |  | ||||||
| 	-yscrollcommand scrolltext -wrap none | 	-yscrollcommand scrolltext -wrap none | ||||||
|     scrollbar .ctop.cdet.left.sb -command "$ctext yview" |     scrollbar .bleft.sb -command "$ctext yview" | ||||||
|     pack .ctop.cdet.left.sb -side right -fill y |     pack .bleft.top -side top -fill x | ||||||
|  |     pack .bleft.sb -side right -fill y | ||||||
|     pack $ctext -side left -fill both -expand 1 |     pack $ctext -side left -fill both -expand 1 | ||||||
|     .ctop.cdet add .ctop.cdet.left |  | ||||||
|     lappend bglist $ctext |     lappend bglist $ctext | ||||||
|     lappend fglist $ctext |     lappend fglist $ctext | ||||||
|  |  | ||||||
| @ -620,36 +637,45 @@ proc makewindow {} { | |||||||
|     $ctext tag conf msep -font [concat $textfont bold] |     $ctext tag conf msep -font [concat $textfont bold] | ||||||
|     $ctext tag conf found -back yellow |     $ctext tag conf found -back yellow | ||||||
|  |  | ||||||
|     frame .ctop.cdet.right |     .pwbottom add .bleft | ||||||
|     frame .ctop.cdet.right.mode |  | ||||||
|     radiobutton .ctop.cdet.right.mode.patch -text "Patch" \ |     # lower right | ||||||
|  |     frame .bright | ||||||
|  |     frame .bright.mode | ||||||
|  |     radiobutton .bright.mode.patch -text "Patch" \ | ||||||
| 	-command reselectline -variable cmitmode -value "patch" | 	-command reselectline -variable cmitmode -value "patch" | ||||||
|     radiobutton .ctop.cdet.right.mode.tree -text "Tree" \ |     radiobutton .bright.mode.tree -text "Tree" \ | ||||||
| 	-command reselectline -variable cmitmode -value "tree" | 	-command reselectline -variable cmitmode -value "tree" | ||||||
|     grid .ctop.cdet.right.mode.patch .ctop.cdet.right.mode.tree -sticky ew |     grid .bright.mode.patch .bright.mode.tree -sticky ew | ||||||
|     pack .ctop.cdet.right.mode -side top -fill x |     pack .bright.mode -side top -fill x | ||||||
|     set cflist .ctop.cdet.right.cfiles |     set cflist .bright.cfiles | ||||||
|     set indent [font measure $mainfont "nn"] |     set indent [font measure $mainfont "nn"] | ||||||
|     text $cflist -width $geometry(cflistw) \ |     text $cflist \ | ||||||
| 	-background $bgcolor -foreground $fgcolor \ | 	-background $bgcolor -foreground $fgcolor \ | ||||||
| 	-font $mainfont \ | 	-font $mainfont \ | ||||||
| 	-tabs [list $indent [expr {2 * $indent}]] \ | 	-tabs [list $indent [expr {2 * $indent}]] \ | ||||||
| 	-yscrollcommand ".ctop.cdet.right.sb set" \ | 	-yscrollcommand ".bright.sb set" \ | ||||||
| 	-cursor [. cget -cursor] \ | 	-cursor [. cget -cursor] \ | ||||||
| 	-spacing1 1 -spacing3 1 | 	-spacing1 1 -spacing3 1 | ||||||
|     lappend bglist $cflist |     lappend bglist $cflist | ||||||
|     lappend fglist $cflist |     lappend fglist $cflist | ||||||
|     scrollbar .ctop.cdet.right.sb -command "$cflist yview" |     scrollbar .bright.sb -command "$cflist yview" | ||||||
|     pack .ctop.cdet.right.sb -side right -fill y |     pack .bright.sb -side right -fill y | ||||||
|     pack $cflist -side left -fill both -expand 1 |     pack $cflist -side left -fill both -expand 1 | ||||||
|     $cflist tag configure highlight \ |     $cflist tag configure highlight \ | ||||||
| 	-background [$cflist cget -selectbackground] | 	-background [$cflist cget -selectbackground] | ||||||
|     $cflist tag configure bold -font [concat $mainfont bold] |     $cflist tag configure bold -font [concat $mainfont bold] | ||||||
|     .ctop.cdet add .ctop.cdet.right |  | ||||||
|     bind .ctop.cdet <Configure> {resizecdetpanes %W %w} |  | ||||||
|  |  | ||||||
|     pack .ctop -side top -fill both -expand 1 |     .pwbottom add .bright | ||||||
|  |     .ctop add .pwbottom | ||||||
|  |  | ||||||
|  |     # restore window position if known | ||||||
|  |     if {[info exists geometry(main)]} { | ||||||
|  |         wm geometry . "$geometry(main)" | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     bind .pwbottom <Configure> {resizecdetpanes %W %w} | ||||||
|  |     pack .ctop -fill both -expand 1 | ||||||
|     bindall <1> {selcanvline %W %x %y} |     bindall <1> {selcanvline %W %x %y} | ||||||
|     #bindall <B1-Motion> {selcanvline %W %x %y} |     #bindall <B1-Motion> {selcanvline %W %x %y} | ||||||
|     bindall <ButtonRelease-4> "allcanvs yview scroll -5 units" |     bindall <ButtonRelease-4> "allcanvs yview scroll -5 units" | ||||||
| @ -802,18 +828,16 @@ proc savestuff {w} { | |||||||
| 	puts $f [list set fgcolor $fgcolor] | 	puts $f [list set fgcolor $fgcolor] | ||||||
| 	puts $f [list set colors $colors] | 	puts $f [list set colors $colors] | ||||||
| 	puts $f [list set diffcolors $diffcolors] | 	puts $f [list set diffcolors $diffcolors] | ||||||
| 	puts $f "set geometry(width) [winfo width .ctop]" |  | ||||||
| 	puts $f "set geometry(height) [winfo height .ctop]" |         puts $f "set geometry(main) [winfo geometry .]" | ||||||
| 	puts $f "set geometry(canv1) [expr {[winfo width $canv]-2}]" | 	puts $f "set geometry(topwidth) [winfo width .tf]" | ||||||
| 	puts $f "set geometry(canv2) [expr {[winfo width $canv2]-2}]" | 	puts $f "set geometry(topheight) [winfo height .tf]" | ||||||
| 	puts $f "set geometry(canv3) [expr {[winfo width $canv3]-2}]" | 	puts $f "set geometry(canv) [expr {[winfo width $canv]-0}]" | ||||||
| 	puts $f "set geometry(canvh) [expr {[winfo height $canv]-2}]" | 	puts $f "set geometry(canv2) [expr {[winfo width $canv2]-0}]" | ||||||
| 	set wid [expr {([winfo width $ctext] - 8) \ | 	puts $f "set geometry(canv3) [expr {[winfo width $canv3]-0}]" | ||||||
| 			   / [font measure $textfont "0"]}] | 	puts $f "set geometry(botwidth) [winfo width .bleft]" | ||||||
| 	puts $f "set geometry(ctextw) $wid" | 	puts $f "set geometry(botheight) [winfo height .bleft]" | ||||||
| 	set wid [expr {([winfo width $cflist] - 11) \ |  | ||||||
| 			   / [font measure [$cflist cget -font] "0"]}] |  | ||||||
| 	puts $f "set geometry(cflistw) $wid" |  | ||||||
| 	puts -nonewline $f "set permviews {" | 	puts -nonewline $f "set permviews {" | ||||||
| 	for {set v 0} {$v < $nextviewnum} {incr v} { | 	for {set v 0} {$v < $nextviewnum} {incr v} { | ||||||
| 	    if {$viewperm($v)} { | 	    if {$viewperm($v)} { | ||||||
| @ -4043,11 +4067,11 @@ proc addtohistory {cmd} { | |||||||
|     } |     } | ||||||
|     incr historyindex |     incr historyindex | ||||||
|     if {$historyindex > 1} { |     if {$historyindex > 1} { | ||||||
| 	.ctop.top.bar.leftbut conf -state normal | 	.tf.bar.leftbut conf -state normal | ||||||
|     } else { |     } else { | ||||||
| 	.ctop.top.bar.leftbut conf -state disabled | 	.tf.bar.leftbut conf -state disabled | ||||||
|     } |     } | ||||||
|     .ctop.top.bar.rightbut conf -state disabled |     .tf.bar.rightbut conf -state disabled | ||||||
| } | } | ||||||
|  |  | ||||||
| proc godo {elt} { | proc godo {elt} { | ||||||
| @ -4067,10 +4091,10 @@ proc goback {} { | |||||||
|     if {$historyindex > 1} { |     if {$historyindex > 1} { | ||||||
| 	incr historyindex -1 | 	incr historyindex -1 | ||||||
| 	godo [lindex $history [expr {$historyindex - 1}]] | 	godo [lindex $history [expr {$historyindex - 1}]] | ||||||
| 	.ctop.top.bar.rightbut conf -state normal | 	.tf.bar.rightbut conf -state normal | ||||||
|     } |     } | ||||||
|     if {$historyindex <= 1} { |     if {$historyindex <= 1} { | ||||||
| 	.ctop.top.bar.leftbut conf -state disabled | 	.tf.bar.leftbut conf -state disabled | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| @ -4081,10 +4105,10 @@ proc goforw {} { | |||||||
| 	set cmd [lindex $history $historyindex] | 	set cmd [lindex $history $historyindex] | ||||||
| 	incr historyindex | 	incr historyindex | ||||||
| 	godo $cmd | 	godo $cmd | ||||||
| 	.ctop.top.bar.leftbut conf -state normal | 	.tf.bar.leftbut conf -state normal | ||||||
|     } |     } | ||||||
|     if {$historyindex >= [llength $history]} { |     if {$historyindex >= [llength $history]} { | ||||||
| 	.ctop.top.bar.rightbut conf -state disabled | 	.tf.bar.rightbut conf -state disabled | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| @ -4591,7 +4615,7 @@ proc searchmarkvisible {doall} { | |||||||
| proc scrolltext {f0 f1} { | proc scrolltext {f0 f1} { | ||||||
|     global searchstring |     global searchstring | ||||||
|  |  | ||||||
|     .ctop.cdet.left.sb set $f0 $f1 |     .bleft.sb set $f0 $f1 | ||||||
|     if {$searchstring ne {}} { |     if {$searchstring ne {}} { | ||||||
| 	searchmarkvisible 0 | 	searchmarkvisible 0 | ||||||
|     } |     } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Junio C Hamano
					Junio C Hamano