summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: e2ed432)
raw | patch | inline | side by side (parent: e2ed432)
author | Paul Mackerras <paulus@dorrigo.(none)> | |
Sun, 17 Jul 2005 15:11:44 +0000 (11:11 -0400) | ||
committer | Paul Mackerras <paulus@dorrigo.(none)> | |
Sun, 17 Jul 2005 15:11:44 +0000 (11:11 -0400) |
Also simplified the parsing of the git-diff-tree -p output and got
rid of the unused 'seenfile' variable.
rid of the unused 'seenfile' variable.
gitk | patch | blob | history |
index 2db187c017fab2358eaa4a782d0f599437c90d0e..d994eec9152ed9da822c21d48f9405f00609ff07 100755 (executable)
--- a/gitk
+++ b/gitk
global lineid linehtag linentag linedtag
global canvy0 linespc parents nparents
global cflist currentid sha1entry
- global commentend seenfile idtags
+ global commentend idtags
$canv delete hover
if {![info exists lineid($l)] || ![info exists linehtag($l)]} return
$canv delete secsel
proc startdiff {id vs} {
global diffpending diffpindex
- global diffindex difffilestart seenfile
+ global diffindex difffilestart
global curdifftag curtagstart
set diffpending $vs
set diffpindex 0
- catch {unset seenfile}
set diffindex 0
catch {unset difffilestart}
set curdifftag Comments
proc contdiff {ids} {
global treediffs diffids treepending
+ set diffids $ids
if {![info exists treediffs($ids)]} {
- set diffids $ids
if {![info exists treepending]} {
gettreediffs $ids
}
proc getblobdiffs {ids} {
global diffopts blobdifffd diffids env
- global nextupdate
+ global nextupdate diffinhdr
set id [lindex $ids 0]
set p [lindex $ids 1]
puts "error getting diffs: $err"
return
}
+ set diffinhdr 0
fconfigure $bdf -blocking 0
set blobdifffd($ids) $bdf
fileevent $bdf readable [list getblobdiffline $bdf $ids]
}
proc getblobdiffline {bdf ids} {
- global diffids blobdifffd ctext curdifftag curtagstart seenfile
+ global diffids blobdifffd ctext curdifftag curtagstart
global diffnexthead diffnextnote diffindex difffilestart
- global nextupdate diffpending diffpindex
+ global nextupdate diffpending diffpindex diffinhdr
set n [gets $bdf line]
if {$n < 0} {
close $bdf
if {$ids == $diffids && $bdf == $blobdifffd($ids)} {
$ctext tag add $curdifftag $curtagstart end
- set seenfile($curdifftag) 1
if {[incr diffpindex] < [llength $diffpending]} {
set id [lindex $ids 0]
set p [lindex $diffpending $diffpindex]
return
}
$ctext conf -state normal
- if {[regexp {^---[ \t]+([^/])*/(.*)} $line match s1 fname]} {
+ if {[regexp {^diff --git a/(.*) b/} $line match fname]} {
# start of a new file
$ctext insert end "\n"
$ctext tag add $curdifftag $curtagstart end
- set seenfile($curdifftag) 1
set curtagstart [$ctext index "end - 1c"]
set header $fname
- if {[info exists diffnexthead]} {
- set fname $diffnexthead
- set header "$diffnexthead ($diffnextnote)"
- unset diffnexthead
- }
set here [$ctext index "end - 1c"]
set difffilestart($diffindex) $here
incr diffindex
set l [expr {(78 - [string length $header]) / 2}]
set pad [string range "----------------------------------------" 1 $l]
$ctext insert end "$pad $header $pad\n" filesep
- } elseif {[string range $line 0 2] == "+++"} {
- # no need to do anything with this
- } elseif {[regexp {^Created: (.*) \((mode: *[0-7]*)\)} $line match fn m]} {
- set diffnexthead $fn
- set diffnextnote "created, mode $m"
- } elseif {[string range $line 0 8] == "Deleted: "} {
- set diffnexthead [string range $line 9 end]
- set diffnextnote "deleted"
- } elseif {[regexp {^diff --git a/(.*) b/} $line match fn]} {
- # save the filename in case the next thing is "new file mode ..."
- set diffnexthead $fn
- set diffnextnote "modified"
- } elseif {[regexp {^new file mode ([0-7]+)} $line match m]} {
- set diffnextnote "new file, mode $m"
- } elseif {[string range $line 0 11] == "deleted file"} {
- set diffnextnote "deleted"
+ set diffinhdr 1
+ } elseif {[regexp {^(---|\+\+\+)} $line]} {
+ set diffinhdr 0
} elseif {[regexp {^@@ -([0-9]+),([0-9]+) \+([0-9]+),([0-9]+) @@(.*)} \
$line match f1l f1c f2l f2c rest]} {
$ctext insert end "\t" hunksep
$ctext insert end " $f1l " d0 " $f2l " d1
$ctext insert end " $rest \n" hunksep
+ set diffinhdr 0
} else {
set x [string range $line 0 0]
if {$x == "-" || $x == "+"} {
} elseif {$x == " "} {
set line [string range $line 1 end]
$ctext insert end "$line\n"
- } elseif {$x == "\\"} {
+ } elseif {$diffinhdr || $x == "\\"} {
# e.g. "\ No newline at end of file"
$ctext insert end "$line\n" filesep
} else {
if {$curdifftag != "Comments"} {
$ctext insert end "\n"
$ctext tag add $curdifftag $curtagstart end
- set seenfile($curdifftag) 1
set curtagstart [$ctext index "end - 1c"]
set curdifftag Comments
}