gitk: Split out diff part in $commitinfo

So far we just parsed everything after the headers into the "comment" bit of $commitinfo, including notes and -- if you gave weird options -- the diff. Split out the diff, if any, into a separate field. It's easy to recognize, since it always starts with /^diff/ and is preceded by an empty line. We take care to snip away said empty line. The display code already properly spaces the end of the message from the first diff, and leaving another empty line at the end looks ugly. Signed-off-by: Thomas Rast <trast@inf.ethz.ch> Signed-off-by: Paul Mackerras <paulus@samba.org>

Thomas Rast committed Nov 16, 2013 at 18:37 UTC b449eb2cb34fbdcb5cab7101a527985013818c9b
1 file changed +10 -1
gitk
+10 -1
@@ -1704,8 +1704,17 @@ proc parsecommit {id contents listed} {
1704 set comment $newcomment
1705 }
1706 set hasnote [string first "\nNotes:\n" $contents]
1707 + set diff ""
1708 + # If there is diff output shown in the git-log stream, split it
1709 + # out. But get rid of the empty line that always precedes the
1710 + # diff.
1711 + set i [string first "\n\ndiff" $comment]
1712 + if {$i >= 0} {
1713 + set diff [string range $comment $i+1 end]
1714 + set comment [string range $comment 0 $i-1]
1715 + }
1716 set commitinfo($id) [list $headline $auname $audate \
1708 - $comname $comdate $comment $hasnote]
1717 + $comname $comdate $comment $hasnote $diff]
1718 }
1719
1720 proc getcommit {id} {