зеркало из https://github.com/microsoft/git.git
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:
Коммит
ecea1ed5fe
284
gitk
284
gitk
|
@ -309,9 +309,9 @@ proc readrefs {} {
|
|||
foreach v {tagids idtags headids idheads otherrefids idotherrefs} {
|
||||
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]]} {
|
||||
if {![regexp {^([0-9a-f]{40}) refs/([^^]*)$} $line \
|
||||
if {![regexp {^([0-9a-f]{40}) refs/([^^]*)$} $line \
|
||||
match id path]} {
|
||||
continue
|
||||
}
|
||||
|
@ -427,7 +427,7 @@ proc makewindow {} {
|
|||
.bar.view add separator
|
||||
.bar.view add radiobutton -label "All files" -command {showview 0} \
|
||||
-variable selectedview -value 0
|
||||
|
||||
|
||||
menu .bar.help
|
||||
.bar add cascade -label "Help" -menu .bar.help
|
||||
.bar.help add command -label "About gitk" -command about
|
||||
|
@ -435,56 +435,59 @@ proc makewindow {} {
|
|||
.bar.help configure -font $uifont
|
||||
. configure -menu .bar
|
||||
|
||||
if {![info exists geometry(canv1)]} {
|
||||
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
|
||||
}
|
||||
# the gui has upper and lower half, parts of a paned window.
|
||||
panedwindow .ctop -orient vertical
|
||||
if {[info exists geometry(width)]} {
|
||||
.ctop conf -width $geometry(width) -height $geometry(height)
|
||||
set texth [expr {$geometry(height) - $geometry(canvh) - 56}]
|
||||
set geometry(ctexth) [expr {($texth - 8) /
|
||||
[font metrics $textfont -linespace]}]
|
||||
|
||||
# possibly use assumed geometry
|
||||
if {![info exists geometry(topheight)]} {
|
||||
set geometry(topheight) [expr {15 * $linespc}]
|
||||
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
|
||||
frame .ctop.top.lbar
|
||||
pack .ctop.top.lbar -side bottom -fill x
|
||||
pack .ctop.top.bar -side bottom -fill x
|
||||
set cscroll .ctop.top.csb
|
||||
scrollbar $cscroll -command {allcanvs yview} -highlightthickness 0
|
||||
pack $cscroll -side right -fill y
|
||||
panedwindow .ctop.top.clist -orient horizontal -sashpad 0 -handlesize 4
|
||||
pack .ctop.top.clist -side top -fill both -expand 1
|
||||
.ctop add .ctop.top
|
||||
set canv .ctop.top.clist.canv
|
||||
canvas $canv -height $geometry(canvh) -width $geometry(canv1) \
|
||||
|
||||
# the upper half will have a paned window, a scroll bar to the right, and some stuff below
|
||||
frame .tf -height $geometry(topheight) -width $geometry(topwidth)
|
||||
frame .tf.histframe
|
||||
panedwindow .tf.histframe.pwclist -orient horizontal -sashpad 0 -handlesize 4
|
||||
|
||||
# create three canvases
|
||||
set cscroll .tf.histframe.csb
|
||||
set canv .tf.histframe.pwclist.canv
|
||||
canvas $canv -width $geometry(canv) \
|
||||
-background $bgcolor -bd 0 \
|
||||
-yscrollincr $linespc -yscrollcommand "scrollcanv $cscroll"
|
||||
.ctop.top.clist add $canv
|
||||
set canv2 .ctop.top.clist.canv2
|
||||
canvas $canv2 -height $geometry(canvh) -width $geometry(canv2) \
|
||||
.tf.histframe.pwclist add $canv
|
||||
set canv2 .tf.histframe.pwclist.canv2
|
||||
canvas $canv2 -width $geometry(canv2) \
|
||||
-background $bgcolor -bd 0 -yscrollincr $linespc
|
||||
.ctop.top.clist add $canv2
|
||||
set canv3 .ctop.top.clist.canv3
|
||||
canvas $canv3 -height $geometry(canvh) -width $geometry(canv3) \
|
||||
.tf.histframe.pwclist add $canv2
|
||||
set canv3 .tf.histframe.pwclist.canv3
|
||||
canvas $canv3 -width $geometry(canv3) \
|
||||
-background $bgcolor -bd 0 -yscrollincr $linespc
|
||||
.ctop.top.clist add $canv3
|
||||
bind .ctop.top.clist <Configure> {resizeclistpanes %W %w}
|
||||
lappend bglist $canv $canv2 $canv3
|
||||
.tf.histframe.pwclist add $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 sha1but .ctop.top.bar.sha1label
|
||||
set sha1but .tf.bar.sha1label
|
||||
button $sha1but -text "SHA1 ID: " -state disabled -relief flat \
|
||||
-command gotocommit -width 8 -font $uifont
|
||||
$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
|
||||
trace add variable sha1string write sha1change
|
||||
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, 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
|
||||
pack .ctop.top.bar.leftbut -side left -fill y
|
||||
button .ctop.top.bar.rightbut -image bm-right -command goforw \
|
||||
pack .tf.bar.leftbut -side left -fill y
|
||||
button .tf.bar.rightbut -image bm-right -command goforw \
|
||||
-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
|
||||
pack .ctop.top.bar.findbut -side left
|
||||
button .tf.bar.findbut -text "Find" -command dofind -font $uifont
|
||||
pack .tf.bar.findbut -side left
|
||||
set findstring {}
|
||||
set fstring .ctop.top.bar.findstring
|
||||
set fstring .tf.bar.findstring
|
||||
lappend entries $fstring
|
||||
entry $fstring -width 30 -font $textfont -textvariable findstring
|
||||
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 findtypemenu [tk_optionMenu .ctop.top.bar.findtype \
|
||||
findtype Exact IgnCase Regexp]
|
||||
set findtypemenu [tk_optionMenu .tf.bar.findtype \
|
||||
findtype Exact IgnCase Regexp]
|
||||
trace add variable findtype write find_change
|
||||
.ctop.top.bar.findtype configure -font $uifont
|
||||
.ctop.top.bar.findtype.menu configure -font $uifont
|
||||
.tf.bar.findtype configure -font $uifont
|
||||
.tf.bar.findtype.menu configure -font $uifont
|
||||
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
|
||||
trace add variable findloc write find_change
|
||||
.ctop.top.bar.findloc configure -font $uifont
|
||||
.ctop.top.bar.findloc.menu configure -font $uifont
|
||||
pack .ctop.top.bar.findloc -side right
|
||||
pack .ctop.top.bar.findtype -side right
|
||||
.tf.bar.findloc configure -font $uifont
|
||||
.tf.bar.findloc.menu configure -font $uifont
|
||||
pack .tf.bar.findloc -side right
|
||||
pack .tf.bar.findtype -side right
|
||||
|
||||
label .ctop.top.lbar.flabel -text "Highlight: Commits " \
|
||||
-font $uifont
|
||||
pack .ctop.top.lbar.flabel -side left -fill y
|
||||
# build up the bottom bar of upper window
|
||||
label .tf.lbar.flabel -text "Highlight: Commits " \
|
||||
-font $uifont
|
||||
pack .tf.lbar.flabel -side left -fill y
|
||||
set gdttype "touching paths:"
|
||||
set gm [tk_optionMenu .ctop.top.lbar.gdttype gdttype "touching paths:" \
|
||||
"adding/removing string:"]
|
||||
set gm [tk_optionMenu .tf.lbar.gdttype gdttype "touching paths:" \
|
||||
"adding/removing string:"]
|
||||
trace add variable gdttype write hfiles_change
|
||||
$gm conf -font $uifont
|
||||
.ctop.top.lbar.gdttype conf -font $uifont
|
||||
pack .ctop.top.lbar.gdttype -side left -fill y
|
||||
entry .ctop.top.lbar.fent -width 25 -font $textfont \
|
||||
.tf.lbar.gdttype conf -font $uifont
|
||||
pack .tf.lbar.gdttype -side left -fill y
|
||||
entry .tf.lbar.fent -width 25 -font $textfont \
|
||||
-textvariable highlight_files
|
||||
trace add variable highlight_files write hfiles_change
|
||||
lappend entries .ctop.top.lbar.fent
|
||||
pack .ctop.top.lbar.fent -side left -fill x -expand 1
|
||||
label .ctop.top.lbar.vlabel -text " OR in view" -font $uifont
|
||||
pack .ctop.top.lbar.vlabel -side left -fill y
|
||||
lappend entries .tf.lbar.fent
|
||||
pack .tf.lbar.fent -side left -fill x -expand 1
|
||||
label .tf.lbar.vlabel -text " OR in view" -font $uifont
|
||||
pack .tf.lbar.vlabel -side left -fill y
|
||||
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 conf -font $uifont
|
||||
.ctop.top.lbar.vhl conf -font $uifont
|
||||
pack .ctop.top.lbar.vhl -side left -fill y
|
||||
label .ctop.top.lbar.rlabel -text " OR " -font $uifont
|
||||
pack .ctop.top.lbar.rlabel -side left -fill y
|
||||
.tf.lbar.vhl conf -font $uifont
|
||||
pack .tf.lbar.vhl -side left -fill y
|
||||
label .tf.lbar.rlabel -text " OR " -font $uifont
|
||||
pack .tf.lbar.rlabel -side left -fill y
|
||||
global highlight_related
|
||||
set m [tk_optionMenu .ctop.top.lbar.relm highlight_related None \
|
||||
"Descendent" "Not descendent" "Ancestor" "Not ancestor"]
|
||||
set m [tk_optionMenu .tf.lbar.relm highlight_related None \
|
||||
"Descendent" "Not descendent" "Ancestor" "Not ancestor"]
|
||||
$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
|
||||
pack .ctop.top.lbar.relm -side left -fill y
|
||||
pack .tf.lbar.relm -side left -fill y
|
||||
|
||||
panedwindow .ctop.cdet -orient horizontal
|
||||
.ctop add .ctop.cdet
|
||||
frame .ctop.cdet.left
|
||||
frame .ctop.cdet.left.bot
|
||||
pack .ctop.cdet.left.bot -side bottom -fill x
|
||||
button .ctop.cdet.left.bot.search -text "Search" -command dosearch \
|
||||
# Finish putting the upper half of the viewer together
|
||||
pack .tf.lbar -in .tf -side bottom -fill x
|
||||
pack .tf.bar -in .tf -side bottom -fill x
|
||||
pack .tf.histframe -fill both -side top -expand 1
|
||||
.ctop add .tf
|
||||
|
||||
# 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
|
||||
pack .ctop.cdet.left.bot.search -side left -padx 5
|
||||
set sstring .ctop.cdet.left.bot.sstring
|
||||
pack .bleft.top.search -side left -padx 5
|
||||
set sstring .bleft.top.sstring
|
||||
entry $sstring -width 20 -font $textfont -textvariable searchstring
|
||||
lappend entries $sstring
|
||||
trace add variable searchstring write incrsearch
|
||||
pack $sstring -side left -expand 1 -fill x
|
||||
set ctext .ctop.cdet.left.ctext
|
||||
set ctext .bleft.ctext
|
||||
text $ctext -background $bgcolor -foreground $fgcolor \
|
||||
-state disabled -font $textfont \
|
||||
-width $geometry(ctextw) -height $geometry(ctexth) \
|
||||
-yscrollcommand scrolltext -wrap none
|
||||
scrollbar .ctop.cdet.left.sb -command "$ctext yview"
|
||||
pack .ctop.cdet.left.sb -side right -fill y
|
||||
scrollbar .bleft.sb -command "$ctext yview"
|
||||
pack .bleft.top -side top -fill x
|
||||
pack .bleft.sb -side right -fill y
|
||||
pack $ctext -side left -fill both -expand 1
|
||||
.ctop.cdet add .ctop.cdet.left
|
||||
lappend bglist $ctext
|
||||
lappend fglist $ctext
|
||||
|
||||
|
@ -620,36 +637,45 @@ proc makewindow {} {
|
|||
$ctext tag conf msep -font [concat $textfont bold]
|
||||
$ctext tag conf found -back yellow
|
||||
|
||||
frame .ctop.cdet.right
|
||||
frame .ctop.cdet.right.mode
|
||||
radiobutton .ctop.cdet.right.mode.patch -text "Patch" \
|
||||
.pwbottom add .bleft
|
||||
|
||||
# lower right
|
||||
frame .bright
|
||||
frame .bright.mode
|
||||
radiobutton .bright.mode.patch -text "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"
|
||||
grid .ctop.cdet.right.mode.patch .ctop.cdet.right.mode.tree -sticky ew
|
||||
pack .ctop.cdet.right.mode -side top -fill x
|
||||
set cflist .ctop.cdet.right.cfiles
|
||||
grid .bright.mode.patch .bright.mode.tree -sticky ew
|
||||
pack .bright.mode -side top -fill x
|
||||
set cflist .bright.cfiles
|
||||
set indent [font measure $mainfont "nn"]
|
||||
text $cflist -width $geometry(cflistw) \
|
||||
text $cflist \
|
||||
-background $bgcolor -foreground $fgcolor \
|
||||
-font $mainfont \
|
||||
-tabs [list $indent [expr {2 * $indent}]] \
|
||||
-yscrollcommand ".ctop.cdet.right.sb set" \
|
||||
-yscrollcommand ".bright.sb set" \
|
||||
-cursor [. cget -cursor] \
|
||||
-spacing1 1 -spacing3 1
|
||||
lappend bglist $cflist
|
||||
lappend fglist $cflist
|
||||
scrollbar .ctop.cdet.right.sb -command "$cflist yview"
|
||||
pack .ctop.cdet.right.sb -side right -fill y
|
||||
scrollbar .bright.sb -command "$cflist yview"
|
||||
pack .bright.sb -side right -fill y
|
||||
pack $cflist -side left -fill both -expand 1
|
||||
$cflist tag configure highlight \
|
||||
-background [$cflist cget -selectbackground]
|
||||
$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 <B1-Motion> {selcanvline %W %x %y}
|
||||
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 colors $colors]
|
||||
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(canv1) [expr {[winfo width $canv]-2}]"
|
||||
puts $f "set geometry(canv2) [expr {[winfo width $canv2]-2}]"
|
||||
puts $f "set geometry(canv3) [expr {[winfo width $canv3]-2}]"
|
||||
puts $f "set geometry(canvh) [expr {[winfo height $canv]-2}]"
|
||||
set wid [expr {([winfo width $ctext] - 8) \
|
||||
/ [font measure $textfont "0"]}]
|
||||
puts $f "set geometry(ctextw) $wid"
|
||||
set wid [expr {([winfo width $cflist] - 11) \
|
||||
/ [font measure [$cflist cget -font] "0"]}]
|
||||
puts $f "set geometry(cflistw) $wid"
|
||||
|
||||
puts $f "set geometry(main) [winfo geometry .]"
|
||||
puts $f "set geometry(topwidth) [winfo width .tf]"
|
||||
puts $f "set geometry(topheight) [winfo height .tf]"
|
||||
puts $f "set geometry(canv) [expr {[winfo width $canv]-0}]"
|
||||
puts $f "set geometry(canv2) [expr {[winfo width $canv2]-0}]"
|
||||
puts $f "set geometry(canv3) [expr {[winfo width $canv3]-0}]"
|
||||
puts $f "set geometry(botwidth) [winfo width .bleft]"
|
||||
puts $f "set geometry(botheight) [winfo height .bleft]"
|
||||
|
||||
puts -nonewline $f "set permviews {"
|
||||
for {set v 0} {$v < $nextviewnum} {incr v} {
|
||||
if {$viewperm($v)} {
|
||||
|
@ -1402,7 +1426,7 @@ proc newview {ishighlight} {
|
|||
set newviewname($nextviewnum) "View $nextviewnum"
|
||||
set newviewperm($nextviewnum) 0
|
||||
set newviewargs($nextviewnum) [shellarglist $revtreeargs]
|
||||
vieweditor $top $nextviewnum "Gitk view definition"
|
||||
vieweditor $top $nextviewnum "Gitk view definition"
|
||||
}
|
||||
|
||||
proc editview {} {
|
||||
|
@ -3897,7 +3921,7 @@ proc selectline {l isnew} {
|
|||
}
|
||||
$ctext insert end "\n"
|
||||
}
|
||||
|
||||
|
||||
set headers {}
|
||||
set olds [lindex $parentlist $l]
|
||||
if {[llength $olds] > 1} {
|
||||
|
@ -4006,7 +4030,7 @@ proc selnextpage {dir} {
|
|||
set l [expr $numcommits - 1]
|
||||
}
|
||||
unmarkmatches
|
||||
selectline $l 1
|
||||
selectline $l 1
|
||||
}
|
||||
|
||||
proc unselectline {} {
|
||||
|
@ -4043,11 +4067,11 @@ proc addtohistory {cmd} {
|
|||
}
|
||||
incr historyindex
|
||||
if {$historyindex > 1} {
|
||||
.ctop.top.bar.leftbut conf -state normal
|
||||
.tf.bar.leftbut conf -state normal
|
||||
} 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} {
|
||||
|
@ -4067,10 +4091,10 @@ proc goback {} {
|
|||
if {$historyindex > 1} {
|
||||
incr historyindex -1
|
||||
godo [lindex $history [expr {$historyindex - 1}]]
|
||||
.ctop.top.bar.rightbut conf -state normal
|
||||
.tf.bar.rightbut conf -state normal
|
||||
}
|
||||
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]
|
||||
incr historyindex
|
||||
godo $cmd
|
||||
.ctop.top.bar.leftbut conf -state normal
|
||||
.tf.bar.leftbut conf -state normal
|
||||
}
|
||||
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} {
|
||||
global searchstring
|
||||
|
||||
.ctop.cdet.left.sb set $f0 $f1
|
||||
.bleft.sb set $f0 $f1
|
||||
if {$searchstring ne {}} {
|
||||
searchmarkvisible 0
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче