From 0a0243d7333a5c0de107170d02f667c37fb4dc54 Mon Sep 17 00:00:00 2001 From: Bert Wesarg Date: Fri, 14 Oct 2011 10:14:50 +0200 Subject: [PATCH] git-gui: add smart case search mode in searchbar Setting config gui.search.smartcase to true, the search mode in the searchbar (from the blame view) is by default case-insensitive. But entering an upper case letter into the search field activates the case- sensitive search mode. Signed-off-by: Bert Wesarg Signed-off-by: Pat Thoyts --- lib/search.tcl | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/search.tcl b/lib/search.tcl index ef3486f083..461c66d1a0 100644 --- a/lib/search.tcl +++ b/lib/search.tcl @@ -7,7 +7,8 @@ field w field ctext field searchstring {} -field casesensitive 1 +field casesensitive +field default_casesensitive field searchdirn -forwards field smarktop @@ -18,6 +19,12 @@ constructor new {i_w i_text args} { set w $i_w set ctext $i_text + if {[is_config_true gui.search.smartcase]} { + set default_casesensitive 0 + } else { + set default_casesensitive 1 + } + ${NS}::frame $w ${NS}::label $w.l -text [mc Find:] entry $w.ent -textvariable ${__this}::searchstring -background lightgreen @@ -45,6 +52,7 @@ constructor new {i_w i_text args} { method show {} { if {![visible $this]} { grid $w + set casesensitive $default_casesensitive } focus -force $w.ent } @@ -125,6 +133,9 @@ method _incrsearch {} { if {[catch {$ctext index anchor}]} { $ctext mark set anchor [_get_new_anchor $this] } + if {[regexp {[[:upper:]]} $searchstring]} { + set casesensitive 1 + } if {$searchstring ne {}} { set here [_do_search $this anchor mlen] if {$here ne {}} {