From: Shawn O. Pearce Date: Sat, 11 Nov 2006 23:42:42 +0000 (-0500) Subject: git-gui: Use catch rather than array names to check file. X-Git-Tag: gitgui-0.6.0~259 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=73ad179bbbba56c053045c555b7e5f1882380533;p=git.git git-gui: Use catch rather than array names to check file. 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 --- diff --git a/git-gui b/git-gui index 2c4e97236..e16fcf734 100755 --- a/git-gui +++ b/git-gui @@ -350,11 +350,11 @@ proc clear_diff {} { 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 } }