When we reshow the current diff file it can be faster to just fetch
the value from the file_states array than it is to ask for all paths
whose name exactly matches the one we want to show. This is because
[array names -exact] is O(n) in the number of files.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
proc reshow_diff {} {
global ui_fname_value ui_status_value file_states
- if {$ui_fname_value != {} && [array names file_states \
- -exact $ui_fname_value] != {}} {
- show_diff $ui_fname_value
- } else {
+ if {$ui_fname_value == {}
+ || [catch {set s $file_states($ui_fname_value)}]} {
clear_diff
+ } else {
+ show_diff $ui_fname_value
}
}