about summary refs log tree commit diff
path: root/third_party/git/git-gui/lib/class.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/class.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/class.tcl')
-rw-r--r--third_party/git/git-gui/lib/class.tcl194
1 files changed, 0 insertions, 194 deletions
diff --git a/third_party/git/git-gui/lib/class.tcl b/third_party/git/git-gui/lib/class.tcl
deleted file mode 100644
index f08506f3834a..000000000000
--- a/third_party/git/git-gui/lib/class.tcl
+++ /dev/null
@@ -1,194 +0,0 @@
-# git-gui simple class/object fake-alike
-# Copyright (C) 2007 Shawn Pearce
-
-proc class {class body} {
-	if {[namespace exists $class]} {
-		error "class $class already declared"
-	}
-	namespace eval $class "
-		variable __nextid     0
-		variable __sealed     0
-		variable __field_list {}
-		variable __field_array
-
-		proc cb {name args} {
-			upvar this this
-			concat \[list ${class}::\$name \$this\] \$args
-		}
-	"
-	namespace eval $class $body
-}
-
-proc field {name args} {
-	set class [uplevel {namespace current}]
-	variable ${class}::__sealed
-	variable ${class}::__field_array
-
-	switch [llength $args] {
-	0 { set new [list $name] }
-	1 { set new [list $name [lindex $args 0]] }
-	default { error "wrong # args: field name value?" }
-	}
-
-	if {$__sealed} {
-		error "class $class is sealed (cannot add new fields)"
-	}
-
-	if {[catch {set old $__field_array($name)}]} {
-		variable ${class}::__field_list
-		lappend __field_list $new
-		set __field_array($name) 1
-	} else {
-		error "field $name already declared"
-	}
-}
-
-proc constructor {name params body} {
-	set class [uplevel {namespace current}]
-	set ${class}::__sealed 1
-	variable ${class}::__field_list
-	set mbodyc {}
-
-	append mbodyc {set this } $class
-	append mbodyc {::__o[incr } $class {::__nextid]::__d} \;
-	append mbodyc {create_this } $class \;
-	append mbodyc {set __this [namespace qualifiers $this]} \;
-
-	if {$__field_list ne {}} {
-		append mbodyc {upvar #0}
-		foreach n $__field_list {
-			set n [lindex $n 0]
-			append mbodyc { ${__this}::} $n { } $n
-			regsub -all @$n\\M $body "\${__this}::$n" body
-		}
-		append mbodyc \;
-		foreach n $__field_list {
-			if {[llength $n] == 2} {
-				append mbodyc \
-				{set } [lindex $n 0] { } [list [lindex $n 1]] \;
-			}
-		}
-	}
-	append mbodyc $body
-	namespace eval $class [list proc $name $params $mbodyc]
-}
-
-proc method {name params body {deleted {}} {del_body {}}} {
-	set class [uplevel {namespace current}]
-	set ${class}::__sealed 1
-	variable ${class}::__field_list
-	set params [linsert $params 0 this]
-	set mbodyc {}
-
-	append mbodyc {set __this [namespace qualifiers $this]} \;
-
-	switch $deleted {
-	{} {}
-	ifdeleted {
-		append mbodyc {if {![namespace exists $__this]} }
-		append mbodyc \{ $del_body \; return \} \;
-	}
-	default {
-		error "wrong # args: method name args body (ifdeleted body)?"
-	}
-	}
-
-	set decl {}
-	foreach n $__field_list {
-		set n [lindex $n 0]
-		if {[regexp -- $n\\M $body]} {
-			if {   [regexp -all -- $n\\M $body] == 1
-				&& [regexp -all -- \\\$$n\\M $body] == 1
-				&& [regexp -all -- \\\$$n\\( $body] == 0} {
-				regsub -all \
-					\\\$$n\\M $body \
-					"\[set \${__this}::$n\]" body
-			} else {
-				append decl { ${__this}::} $n { } $n
-				regsub -all @$n\\M $body "\${__this}::$n" body
-			}
-		}
-	}
-	if {$decl ne {}} {
-		append mbodyc {upvar #0} $decl \;
-	}
-	append mbodyc $body
-	namespace eval $class [list proc $name $params $mbodyc]
-}
-
-proc create_this {class} {
-	upvar this this
-	namespace eval [namespace qualifiers $this] [list proc \
-		[namespace tail $this] \
-		[list name args] \
-		"eval \[list ${class}::\$name $this\] \$args" \
-	]
-}
-
-proc delete_this {{t {}}} {
-	if {$t eq {}} {
-		upvar this this
-		set t $this
-	}
-	set t [namespace qualifiers $t]
-	if {[namespace exists $t]} {namespace delete $t}
-}
-
-proc make_dialog {t w args} {
-	upvar $t top $w pfx this this
-	global use_ttk
-	uplevel [linsert $args 0 make_toplevel $t $w]
-	catch {wm attributes $top -type dialog}
-	pave_toplevel $pfx
-}
-
-proc make_toplevel {t w args} {
-	upvar $t top $w pfx this this
-
-	if {[llength $args] % 2} {
-		error "make_toplevel topvar winvar {options}"
-	}
-	set autodelete 1
-	foreach {name value} $args {
-		switch -exact -- $name {
-		-autodelete {set autodelete $value}
-		default     {error "unsupported option $name"}
-		}
-	}
-
-	if {$::root_exists || [winfo ismapped .]} {
-		regsub -all {::} $this {__} w
-		set top .$w
-		set pfx $top
-		toplevel $top
-		set ::root_exists 1
-	} else {
-		set top .
-		set pfx {}
-	}
-
-	if {$autodelete} {
-		wm protocol $top WM_DELETE_WINDOW "
-			[list delete_this $this]
-			[list destroy $top]
-		"
-	}
-}
-
-
-## auto_mkindex support for class/constructor/method
-##
-auto_mkindex_parser::command class {name body} {
-	variable parser
-	variable contextStack
-	set contextStack [linsert $contextStack 0 $name]
-	$parser eval [list _%@namespace eval $name] $body
-	set contextStack [lrange $contextStack 1 end]
-}
-auto_mkindex_parser::command constructor {name args} {
-	variable index
-	variable scriptFile
-	append index [list set auto_index([fullname $name])] \
-		[format { [list source [file join $dir %s]]} \
-		[file split $scriptFile]] "\n"
-}