diff options
author | Pat Thoyts <patthoyts@users.sourceforge.net> | 2011-03-01 23:50:50 +0000 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2011-03-09 21:05:02 +1100 |
commit | 8dd60f5401c6ccfb69de5e8f76c55fa9e92edae5 (patch) | |
tree | 8ff90a099e92bc8d111968cd480f0757ee97f3e0 | |
parent | 21ac8a8d0b8d95058e8fc7121ab7e653ab948c9e (diff) | |
download | git-8dd60f5401c6ccfb69de5e8f76c55fa9e92edae5.tar.gz |
gitk: Quote tag names in event bindings to avoid problems with % chars
Tag names that contain a % character require quoting when used in event
bindings or the name may be mis-recognised for percent substitution in
the event script.
Reported-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
-rwxr-xr-x | gitk | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -6301,6 +6301,7 @@ proc drawtags {id x xt y1} { -width $lthickness -fill black -tags tag.$id] $canv lower $t foreach tag $marks x $xvals wid $wvals { + set tag_quoted [string map {% %%} $tag] set xl [expr {$x + $delta}] set xr [expr {$x + $delta + $wid + $lthickness}] set font mainfont @@ -6309,7 +6310,7 @@ proc drawtags {id x xt y1} { set t [$canv create polygon $x [expr {$yt + $delta}] $xl $yt \ $xr $yt $xr $yb $xl $yb $x [expr {$yb - $delta}] \ -width 1 -outline black -fill yellow -tags tag.$id] - $canv bind $t <1> [list showtag $tag 1] + $canv bind $t <1> [list showtag $tag_quoted 1] set rowtextx([rowofcommit $id]) [expr {$xr + $linespc}] } else { # draw a head or other ref @@ -6336,9 +6337,9 @@ proc drawtags {id x xt y1} { set t [$canv create text $xl $y1 -anchor w -text $tag -fill $fgcolor \ -font $font -tags [list tag.$id text]] if {$ntags >= 0} { - $canv bind $t <1> [list showtag $tag 1] + $canv bind $t <1> [list showtag $tag_quoted 1] } elseif {$nheads >= 0} { - $canv bind $t $ctxbut [list headmenu %X %Y $id $tag] + $canv bind $t $ctxbut [list headmenu %X %Y $id $tag_quoted] } } return $xt |