From: Pat Thoyts Date: Sat, 15 Oct 2011 22:17:08 GMT Subject: Re: [PATCH 3/4] git-gui: only except numbers in the goto-line input Message-ID: <87fwitkihn.fsf@fox.patthoyts.tk> In-Reply-To: Bert Wesarg writes: >Signed-off-by: Bert Wesarg >--- > 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 [cb _incrgoto] >- bind $w.ent [list linebar::hide $this] >+ bind $w.ent [cb hide] > > bind $w [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.0 This 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