Re: [PATCH 3/4] git-gui: only except numbers in the goto-line input
Bert Wesarg <bert.wesarg@googlemail.com> writes:
Show 46 quoted lines
>Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
>---
> lib/line.tcl | 16 ++++++++++++++--
> 1 files changed, 14 insertions(+), 2 deletions(-)
>
>diff --git a/lib/line.tcl b/lib/line.tcl
>index 692485a..70785e1 100644
>--- a/lib/line.tcl
>+++ b/lib/line.tcl
>@@ -15,7 +15,11 @@ constructor new {i_w i_text args} {
>
> ${NS}::frame $w
> ${NS}::label $w.l -text [mc "Goto Line:"]
>- entry $w.ent -textvariable ${__this}::linenum -background lightgreen
>+ entry $w.ent \
>+ -textvariable ${__this}::linenum \
>+ -background lightgreen \
>+ -validate key \
>+ -validatecommand [cb _validate %P]
> ${NS}::button $w.bn -text [mc Go] -command [cb _incrgoto]
>
> pack $w.l -side left
>@@ -26,7 +30,7 @@ constructor new {i_w i_text args} {
> grid remove $w
>
> bind $w.ent <Return> [cb _incrgoto]
>- bind $w.ent <Escape> [list linebar::hide $this]
>+ bind $w.ent <Escape> [cb hide]
>
> bind $w <Destroy> [list delete_this $this]
> return $this
>@@ -55,6 +59,14 @@ method editor {} {
> return $w.ent
> }
>
>+method _validate {P} {
>+ # only accept numbers as input
>+ if {[regexp {\d*} $P]} {
>+ return 1
>+ }
>+ return 0
>+}
>+
> method _incrgoto {} {
> if {$linenum ne {}} {
> $ctext see $linenum.0This one doesn't actually work when I try it it accepts alphanumeric
input. However, replacing the validate body with
string is integer $P
fixes it to operate as intended so I'll replace it with this.
Looks like it needs theming too but that can be a separate patch.
--
Pat Thoyts http://www.patthoyts.tk/
PGP fingerprint 2C 6E 98 07 2C 59 C8 97 10 CE 11 E6 04 E0 B9 DD