]> asedeno.scripts.mit.edu Git - git.git/blobdiff - lib/blame.tcl
Merge branch 'maint'
[git.git] / lib / blame.tcl
index b5236548152043c5ec29997a791f5a51fa3f56cb..76b5168fb32bd93f7824c2b8fb9ceb8ac7e139e4 100644 (file)
@@ -33,6 +33,13 @@ variable group_colors {
        #ececec
 }
 
+# Switches for original location detection
+#
+variable original_options [list -C -C]
+if {[git-version >= 1.5.3]} {
+       lappend original_options -w ; # ignore indentation changes
+}
+
 # Current blame data; cleared/reset on each load
 #
 field commit               ; # input commit to blame
@@ -304,8 +311,9 @@ constructor new {i_commit i_path} {
 
        set req_w [winfo reqwidth  $top]
        set req_h [winfo reqheight $top]
+       set scr_h [expr {[winfo screenheight $top] - 100}]
        if {$req_w < 600} {set req_w 600}
-       if {$req_h < 400} {set req_h 400}
+       if {$req_h < $scr_h} {set req_h $scr_h}
        set g "${req_w}x${req_h}"
        wm geometry $top $g
        update
@@ -511,6 +519,7 @@ method _exec_blame {cur_w cur_d options cur_s} {
 method _read_blame {fd cur_w cur_d cur_s} {
        upvar #0 $cur_d line_data
        variable group_colors
+       variable original_options
 
        if {$fd ne $current_fd} {
                catch {close $fd}
@@ -547,6 +556,10 @@ method _read_blame {fd cur_w cur_d cur_s} {
                        set a_name {}
                        catch {set a_name $header($cmit,author)}
                        while {$a_name ne {}} {
+                               if {$author_abbr ne {}
+                                       && [string index $a_name 0] eq {'}} {
+                                       regsub {^'[^']+'\s+} $a_name {} a_name
+                               }
                                if {![regexp {^([[:upper:]])} $a_name _a]} break
                                append author_abbr $_a
                                unset _a
@@ -680,7 +693,7 @@ method _read_blame {fd cur_w cur_d cur_s} {
                close $fd
                if {$cur_w eq $w_asim} {
                        _exec_blame $this $w_amov @amov_data \
-                               [list -M -C -C] \
+                               $original_options \
                                { original location}
                } else {
                        set current_fd {}