From: Bert Wesarg Date: Sun, 16 Oct 2011 10:32:47 GMT Subject: Re: [PATCH 3/4] git-gui: only except numbers in the goto-line input Message-ID: In-Reply-To: <87fwitkihn.fsf@fox.patthoyts.tk> Hi, On Sun, Oct 16, 2011 at 00:17, Pat Thoyts wrote: > 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. Sorry, the correct regexp would have been {^\d*$}. But your [string is integer] should completely suffice. Thanks. > Looks like it needs theming too but that can be a separate patch. Theming is not my field, sorry. Bert > -- > Pat Thoyts                            http://www.patthoyts.tk/ > PGP fingerprint 2C 6E 98 07 2C 59 C8 97  10 CE 11 E6 04 E0 B9 DD >