gitk: Factored out some common code into a new start_rev_list procedure
authorPaul Mackerras <paulus@samba.org>
Thu, 1 Dec 2005 11:42:46 +0000 (22:42 +1100)
committerPaul Mackerras <paulus@samba.org>
Thu, 1 Dec 2005 11:42:46 +0000 (22:42 +1100)
Signed-off-by: Paul Mackerras <paulus@samba.org>
gitk

diff --git a/gitk b/gitk
index db61a15da1c806a6c12bafffa1f4bc339a322560..42e96d0e49d06daf769158217b84e3266b5345ca 100755 (executable)
--- a/gitk
+++ b/gitk
@@ -32,26 +32,16 @@ proc parse_args {rargs} {
     return $parsed_args
 }
 
-proc getcommits {rargs} {
-    global oldcommits commits commfd phase canv mainfont env
+proc start_rev_list {rlargs} {
     global startmsecs nextupdate ncmupdate
-    global ctext maincursor textcursor leftover gitencoding
+    global commfd leftover gitencoding
 
-    # check that we can find a .git directory somewhere...
-    set gitdir [gitdir]
-    if {![file isdirectory $gitdir]} {
-       error_popup "Cannot find the git directory \"$gitdir\"."
-       exit 1
-    }
-    set oldcommits {}
-    set commits {}
-    set phase getcommits
     set startmsecs [clock clicks -milliseconds]
     set nextupdate [expr {$startmsecs + 100}]
     set ncmupdate 1
-    set parsed_args [parse_args $rargs]
     if [catch {
-       set commfd [open "|git-rev-list --header --topo-order --parents $parsed_args" r]
+       set commfd [open [concat | git-rev-list --header --topo-order \
+                             --parents $rlargs] r]
     } err] {
        puts stderr "Error executing git-rev-list: $err"
        exit 1
@@ -59,11 +49,26 @@ proc getcommits {rargs} {
     set leftover {}
     fconfigure $commfd -blocking 0 -translation lf -encoding $gitencoding
     fileevent $commfd readable [list getcommitlines $commfd]
+    . config -cursor watch
+    settextcursor watch
+}
+
+proc getcommits {rargs} {
+    global oldcommits commits phase canv mainfont env
+
+    # check that we can find a .git directory somewhere...
+    set gitdir [gitdir]
+    if {![file isdirectory $gitdir]} {
+       error_popup "Cannot find the git directory \"$gitdir\"."
+       exit 1
+    }
+    set oldcommits {}
+    set commits {}
+    set phase getcommits
+    start_rev_list [parse_args $rargs]
     $canv delete all
     $canv create text 3 3 -anchor nw -text "Reading commits..." \
        -font $mainfont -tags textitems
-    . config -cursor watch
-    settextcursor watch
 }
 
 proc getcommitlines {commfd}  {
@@ -3684,20 +3689,7 @@ proc updatecommits {rargs} {
     }
 
     readrefs
-    if [catch {
-       set commfd [open "|git-rev-list --header --topo-order --parents $ignoreold $args" r]
-    } err] {
-       puts stderr "Error executing git-rev-list: $err"
-       exit 1
-    }
-    set startmsecs [clock clicks -milliseconds]
-    set nextupdate [expr $startmsecs + 100]
-    set ncmupdate 1
-    set leftover {}
-    fconfigure $commfd -blocking 0 -translation lf
-    fileevent $commfd readable [list getcommitlines $commfd]
-    . config -cursor watch
-    settextcursor watch
+    start_rev_list [concat $ignoreold $args]
 }
 
 proc showtag {tag isnew} {