about summary refs log tree commit diff
path: root/third_party/git/git-gui/lib/search.tcl
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2021-09-21T10·03+0300
committerVincent Ambo <mail@tazj.in>2021-09-21T11·29+0300
commit43b1791ec601732ac31195df96781a848360a9ac (patch)
treedaae8d638343295d2f1f7da955e556ef4c958864 /third_party/git/git-gui/lib/search.tcl
parent2d8e7dc9d9c38127ec4ebd13aee8e8f586a43318 (diff)
chore(3p/git): Unvendor git and track patches instead r/2903
This was vendored a long time ago under the expectation that keeping
it in sync with cgit would be easier this way, but it has proven not
to be a big issue.

On the other hand, a vendored copy of git is an annoying maintenance
burden. It is much easier to rebase the single (dottime) patch that we
have.

This removes the vendored copy of git and instead passes the git
source code to cgit via `pkgs.srcOnly`, which includes the applied
patch so that cgit can continue rendering dottime.

Change-Id: If31f62dea7ce688fd1b9050204e9378019775f2b
Diffstat (limited to 'third_party/git/git-gui/lib/search.tcl')
-rw-r--r--third_party/git/git-gui/lib/search.tcl300
1 files changed, 0 insertions, 300 deletions
diff --git a/third_party/git/git-gui/lib/search.tcl b/third_party/git/git-gui/lib/search.tcl
deleted file mode 100644
index ef1e55521d7c..000000000000
--- a/third_party/git/git-gui/lib/search.tcl
+++ /dev/null
@@ -1,300 +0,0 @@
-# incremental search panel
-# based on code from gitk, Copyright (C) Paul Mackerras
-
-class searchbar {
-
-field w
-field ctext
-
-field searchstring   {}
-field regexpsearch
-field default_regexpsearch
-field casesensitive
-field default_casesensitive
-field smartcase
-field searchdirn     -forwards
-
-field history
-field history_index
-
-field smarktop
-field smarkbot
-
-constructor new {i_w i_text args} {
-	global use_ttk NS
-	set w      $i_w
-	set ctext  $i_text
-
-	set default_regexpsearch [is_config_true gui.search.regexp]
-	switch -- [get_config gui.search.case] {
-	no {
-		set default_casesensitive 0
-		set smartcase 0
-	}
-	smart {
-		set default_casesensitive 0
-		set smartcase 1
-	}
-	yes -
-	default {
-		set default_casesensitive 1
-		set smartcase 0
-	}
-	}
-
-	set history [list]
-
-	${NS}::frame  $w
-	${NS}::label  $w.l       -text [mc Find:]
-	tentry  $w.ent -textvariable ${__this}::searchstring -background lightgreen
-	${NS}::button $w.bn      -text [mc Next] -command [cb find_next]
-	${NS}::button $w.bp      -text [mc Prev] -command [cb find_prev]
-	${NS}::checkbutton $w.re -text [mc RegExp] \
-		-variable ${__this}::regexpsearch -command [cb _incrsearch]
-	${NS}::checkbutton $w.cs -text [mc Case] \
-		-variable ${__this}::casesensitive -command [cb _incrsearch]
-	pack   $w.l   -side left
-	pack   $w.cs  -side right
-	pack   $w.re  -side right
-	pack   $w.bp  -side right
-	pack   $w.bn  -side right
-	pack   $w.ent -side left -expand 1 -fill x
-
-	eval grid conf $w -sticky we $args
-	grid remove $w
-
-	trace add variable searchstring write [cb _incrsearch_cb]
-	bind $w.ent <Return> [cb find_next]
-	bind $w.ent <Shift-Return> [cb find_prev]
-	bind $w.ent <Key-Up>   [cb _prev_search]
-	bind $w.ent <Key-Down> [cb _next_search]
-	
-	bind $w <Destroy> [list delete_this $this]
-	return $this
-}
-
-method show {} {
-	if {![visible $this]} {
-		grid $w
-		$w.ent delete 0 end
-		set regexpsearch  $default_regexpsearch
-		set casesensitive $default_casesensitive
-		set history_index [llength $history]
-	}
-	focus -force $w.ent
-}
-
-method hide {} {
-	if {[visible $this]} {
-		focus $ctext
-		grid remove $w
-		_save_search $this
-	}
-}
-
-method visible {} {
-	return [winfo ismapped $w]
-}
-
-method editor {} {
-	return $w.ent
-}
-
-method _get_new_anchor {} {
-	# use start of selection if it is visible,
-	# or the bounds of the visible area
-	set top    [$ctext index @0,0]
-	set bottom [$ctext index @0,[winfo height $ctext]]
-	set sel    [$ctext tag ranges sel]
-	if {$sel ne {}} {
-		set spos [lindex $sel 0]
-		if {[lindex $spos 0] >= [lindex $top 0] &&
-		    [lindex $spos 0] <= [lindex $bottom 0]} {
-			return $spos
-		}
-	}
-	if {$searchdirn eq "-forwards"} {
-		return $top
-	} else {
-		return $bottom
-	}
-}
-
-method _get_wrap_anchor {dir} {
-	if {$dir eq "-forwards"} {
-		return 1.0
-	} else {
-		return end
-	}
-}
-
-method _do_search {start {mlenvar {}} {dir {}} {endbound {}}} {
-	set cmd [list $ctext search]
-	if {$mlenvar ne {}} {
-		upvar $mlenvar mlen
-		lappend cmd -count mlen
-	}
-	if {$regexpsearch} {
-		lappend cmd -regexp
-	}
-	if {!$casesensitive} {
-		lappend cmd -nocase
-	}
-	if {$dir eq {}} {
-		set dir $searchdirn
-	}
-	lappend cmd $dir -- $searchstring
-	if {[catch {
-		if {$endbound ne {}} {
-			set here [eval $cmd [list $start] [list $endbound]]
-		} else {
-			set here [eval $cmd [list $start]]
-			if {$here eq {}} {
-				set here [eval $cmd [_get_wrap_anchor $this $dir]]
-			}
-		}
-	} err]} { set here {} }
-	return $here
-}
-
-method _incrsearch_cb {name ix op} {
-	after idle [cb _incrsearch]
-}
-
-method _incrsearch {} {
-	$ctext tag remove found 1.0 end
-	if {[catch {$ctext index anchor}]} {
-		$ctext mark set anchor [_get_new_anchor $this]
-	}
-	if {$searchstring ne {}} {
-		if {$smartcase && [regexp {[[:upper:]]} $searchstring]} {
-			set casesensitive 1
-		}
-		set here [_do_search $this anchor mlen]
-		if {$here ne {}} {
-			$ctext see $here
-			$ctext tag remove sel 1.0 end
-			$ctext tag add sel $here "$here + $mlen c"
-			#$w.ent configure -background lightgreen
-			$w.ent state !pressed
-			_set_marks $this 1
-		} else {
-			#$w.ent configure -background lightpink
-			$w.ent state pressed
-		}
-	} elseif {$smartcase} {
-		# clearing the field resets the smart case detection
-		set casesensitive 0
-	}
-}
-
-method _save_search {} {
-	if {$searchstring eq {}} {
-		return
-	}
-	if {[llength $history] > 0} {
-		foreach {s_regexp s_case s_expr} [lindex $history end] break
-	} else {
-		set s_regexp $regexpsearch
-		set s_case   $casesensitive
-		set s_expr   ""
-	}
-	if {$searchstring eq $s_expr} {
-		# update modes
-		set history [lreplace $history end end \
-				[list $regexpsearch $casesensitive $searchstring]]
-	} else {
-		lappend history [list $regexpsearch $casesensitive $searchstring]
-	}
-	set history_index [llength $history]
-}
-
-method _prev_search {} {
-	if {$history_index > 0} {
-		incr history_index -1
-		foreach {s_regexp s_case s_expr} [lindex $history $history_index] break
-		$w.ent delete 0 end
-		$w.ent insert 0 $s_expr
-		set regexpsearch $s_regexp
-		set casesensitive $s_case
-	}
-}
-
-method _next_search {} {
-	if {$history_index < [llength $history]} {
-		incr history_index
-	}
-	if {$history_index < [llength $history]} {
-		foreach {s_regexp s_case s_expr} [lindex $history $history_index] break
-	} else {
-		set s_regexp $default_regexpsearch
-		set s_case   $default_casesensitive
-		set s_expr   ""
-	}
-	$w.ent delete 0 end
-	$w.ent insert 0 $s_expr
-	set regexpsearch $s_regexp
-	set casesensitive $s_case
-}
-
-method find_prev {} {
-	find_next $this -backwards
-}
-
-method find_next {{dir -forwards}} {
-	focus $w.ent
-	$w.ent icursor end
-	set searchdirn $dir
-	$ctext mark unset anchor
-	if {$searchstring ne {}} {
-		_save_search $this
-		set start [_get_new_anchor $this]
-		if {$dir eq "-forwards"} {
-			set start "$start + 1c"
-		}
-		set match [_do_search $this $start mlen]
-		$ctext tag remove sel 1.0 end
-		if {$match ne {}} {
-			$ctext see $match
-			$ctext tag add sel $match "$match + $mlen c"
-		}
-	}
-}
-
-method _mark_range {first last} {
-	set mend $first.0
-	while {1} {
-		set match [_do_search $this $mend mlen -forwards $last.end]
-		if {$match eq {}} break
-		set mend "$match + $mlen c"
-		$ctext tag add found $match $mend
-	}
-}
-
-method _set_marks {doall} {
-	set topline [lindex [split [$ctext index @0,0] .] 0]
-	set botline [lindex [split [$ctext index @0,[winfo height $ctext]] .] 0]
-	if {$doall || $botline < $smarktop || $topline > $smarkbot} {
-		# no overlap with previous
-		_mark_range $this $topline $botline
-		set smarktop $topline
-		set smarkbot $botline
-	} else {
-		if {$topline < $smarktop} {
-			_mark_range $this $topline [expr {$smarktop-1}]
-			set smarktop $topline
-		}
-		if {$botline > $smarkbot} {
-			_mark_range $this [expr {$smarkbot+1}] $botline
-			set smarkbot $botline
-		}
-	}
-}
-
-method scrolled {} {
-	if {$searchstring ne {}} {
-		after idle [cb _set_marks 0]
-	}
-}
-
-}