+set current_diff {}
+set diff_actions [list]
+proc current_diff_trace {varname args} {
+ global current_diff diff_actions file_states
+ if {$current_diff eq {}} {
+ set s {}
+ set f {}
+ set p {}
+ set o disabled
+ } else {
+ set p $current_diff
+ set s [mapdesc [lindex $file_states($p) 0] $p]
+ set f {File:}
+ set p [escape_path $p]
+ set o normal
+ }
+
+ .vpane.lower.diff.header.status configure -text $s
+ .vpane.lower.diff.header.file configure -text $f
+ .vpane.lower.diff.header.path configure -text $p
+ foreach w $diff_actions {
+ uplevel #0 $w $o
+ }
+}
+trace add variable current_diff write current_diff_trace
+