git-gui: Always use eq/ne for string comparsions.

This is one of those stupid Tcl mistakes that an experienced Tcl
programmer just wouldn't make.  We should always use eq and ne to
compare string values (and never == or !=) as when we use ==/!=
Tcl will attempt to convert either side to numeric if one of the
two sides looks like a numeric.  This could cause some trouble if
a file named "1" exists and a different file named "1.0" also exists;
their paths are equal according to == but not according to eq.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Shawn O. Pearce 2006-11-12 18:16:45 -05:00
parent c8ebafd845
commit 043f701116

140
git-gui
View File

@ -90,15 +90,15 @@ proc save_config {} {
foreach name [array names default_config] { foreach name [array names default_config] {
set value $global_config_new($name) set value $global_config_new($name)
if {$value != $global_config($name)} { if {$value ne $global_config($name)} {
if {$value == $default_config($name)} { if {$value eq $default_config($name)} {
catch {exec git repo-config --global --unset $name} catch {exec git repo-config --global --unset $name}
} else { } else {
regsub -all "\[{}\]" $value {"} value regsub -all "\[{}\]" $value {"} value
exec git repo-config --global $name $value exec git repo-config --global $name $value
} }
set global_config($name) $value set global_config($name) $value
if {$value == $repo_config($name)} { if {$value eq $repo_config($name)} {
catch {exec git repo-config --unset $name} catch {exec git repo-config --unset $name}
set repo_config($name) $value set repo_config($name) $value
} }
@ -107,8 +107,8 @@ proc save_config {} {
foreach name [array names default_config] { foreach name [array names default_config] {
set value $repo_config_new($name) set value $repo_config_new($name)
if {$value != $repo_config($name)} { if {$value ne $repo_config($name)} {
if {$value == $global_config($name)} { if {$value eq $global_config($name)} {
catch {exec git repo-config --unset $name} catch {exec git repo-config --unset $name}
} else { } else {
regsub -all "\[{}\]" $value {"} value regsub -all "\[{}\]" $value {"} value
@ -123,7 +123,7 @@ proc error_popup {msg} {
global gitdir appname global gitdir appname
set title $appname set title $appname
if {$gitdir != {}} { if {$gitdir ne {}} {
append title { (} append title { (}
append title [lindex \ append title [lindex \
[file split [file normalize [file dirname $gitdir]]] \ [file split [file normalize [file dirname $gitdir]]] \
@ -142,7 +142,7 @@ proc info_popup {msg} {
global gitdir appname global gitdir appname
set title $appname set title $appname
if {$gitdir != {}} { if {$gitdir ne {}} {
append title { (} append title { (}
append title [lindex \ append title [lindex \
[file split [file normalize [file dirname $gitdir]]] \ [file split [file normalize [file dirname $gitdir]]] \
@ -167,13 +167,13 @@ if { [catch {set cdup [exec git rev-parse --show-cdup]} err]
error_popup "Cannot find the git directory:\n\n$err" error_popup "Cannot find the git directory:\n\n$err"
exit 1 exit 1
} }
if {$cdup != ""} { if {$cdup ne ""} {
cd $cdup cd $cdup
} }
unset cdup unset cdup
set single_commit 0 set single_commit 0
if {$appname == {git-citool}} { if {$appname eq {git-citool}} {
set single_commit 1 set single_commit 1
} }
@ -194,13 +194,13 @@ set commit_type {}
proc lock_index {type} { proc lock_index {type} {
global index_lock_type disable_on_lock global index_lock_type disable_on_lock
if {$index_lock_type == {none}} { if {$index_lock_type eq {none}} {
set index_lock_type $type set index_lock_type $type
foreach w $disable_on_lock { foreach w $disable_on_lock {
uplevel #0 $w disabled uplevel #0 $w disabled
} }
return 1 return 1
} elseif {$index_lock_type == {begin-update} && $type == {update}} { } elseif {$index_lock_type eq {begin-update} && $type eq {update}} {
set index_lock_type $type set index_lock_type $type
return 1 return 1
} }
@ -242,9 +242,9 @@ proc update_status {{final Ready.}} {
if {$status_active || ![lock_index read]} return if {$status_active || ![lock_index read]} return
repository_state new_HEAD new_type repository_state new_HEAD new_type
if {$commit_type == {amend} if {$commit_type eq {amend}
&& $new_type == {normal} && $new_type eq {normal}
&& $new_HEAD == $HEAD} { && $new_HEAD eq $HEAD} {
} else { } else {
set HEAD $new_HEAD set HEAD $new_HEAD
set PARENT $new_HEAD set PARENT $new_HEAD
@ -254,7 +254,7 @@ proc update_status {{final Ready.}} {
array unset file_states array unset file_states
if {![$ui_comm edit modified] if {![$ui_comm edit modified]
|| [string trim [$ui_comm get 0.0 end]] == {}} { || [string trim [$ui_comm get 0.0 end]] eq {}} {
if {[load_message GITGUI_MSG]} { if {[load_message GITGUI_MSG]} {
} elseif {[load_message MERGE_MSG]} { } elseif {[load_message MERGE_MSG]} {
} elseif {[load_message SQUASH_MSG]} { } elseif {[load_message SQUASH_MSG]} {
@ -263,7 +263,7 @@ proc update_status {{final Ready.}} {
$ui_comm edit reset $ui_comm edit reset
} }
if {$repo_config(gui.trustmtime) == {true}} { if {$repo_config(gui.trustmtime) eq {true}} {
update_status_stage2 {} $final update_status_stage2 {} $final
} else { } else {
set status_active 1 set status_active 1
@ -286,7 +286,7 @@ proc update_status_stage2 {fd final} {
global status_active global status_active
global buf_rdi buf_rdf buf_rlo global buf_rdi buf_rdf buf_rlo
if {$fd != {}} { if {$fd ne {}} {
read $fd read $fd
if {![eof $fd]} return if {![eof $fd]} return
close $fd close $fd
@ -442,7 +442,7 @@ proc clear_diff {} {
proc reshow_diff {} { proc reshow_diff {} {
global ui_fname_value ui_status_value file_states global ui_fname_value ui_status_value file_states
if {$ui_fname_value == {} if {$ui_fname_value eq {}
|| [catch {set s $file_states($ui_fname_value)}]} { || [catch {set s $file_states($ui_fname_value)}]} {
clear_diff clear_diff
} else { } else {
@ -455,7 +455,7 @@ proc handle_empty_diff {} {
set path $ui_fname_value set path $ui_fname_value
set s $file_states($path) set s $file_states($path)
if {[lindex $s 0] != {_M}} return if {[lindex $s 0] ne {_M}} return
info_popup "No differences detected. info_popup "No differences detected.
@ -494,7 +494,7 @@ proc show_diff {path {w {}} {lno {}}} {
if {$diff_active || ![lock_index read]} return if {$diff_active || ![lock_index read]} return
clear_diff clear_diff
if {$w == {} || $lno == {}} { if {$w eq {} || $lno == {}} {
foreach w [array names file_lists] { foreach w [array names file_lists] {
set lno [lsearch -sorted $file_lists($w) $path] set lno [lsearch -sorted $file_lists($w) $path]
if {$lno >= 0} { if {$lno >= 0} {
@ -503,7 +503,7 @@ proc show_diff {path {w {}} {lno {}}} {
} }
} }
} }
if {$w != {} && $lno >= 1} { if {$w ne {} && $lno >= 1} {
$w tag add in_diff $lno.0 [expr $lno + 1].0 $w tag add in_diff $lno.0 [expr $lno + 1].0
} }
@ -604,8 +604,8 @@ proc read_diff {fd} {
unlock_index unlock_index
set ui_status_value {Ready.} set ui_status_value {Ready.}
if {$repo_config(gui.trustmtime) == {true} if {$repo_config(gui.trustmtime) eq {true}
&& [$ui_diff index end] == {2.0}} { && [$ui_diff index end] eq {2.0}} {
handle_empty_diff handle_empty_diff
} }
} }
@ -618,8 +618,8 @@ proc read_diff {fd} {
proc load_last_commit {} { proc load_last_commit {} {
global HEAD PARENT commit_type ui_comm global HEAD PARENT commit_type ui_comm
if {$commit_type == {amend}} return if {$commit_type eq {amend}} return
if {$commit_type != {normal}} { if {$commit_type ne {normal}} {
error_popup "Can't amend a $commit_type commit." error_popup "Can't amend a $commit_type commit."
return return
} }
@ -671,10 +671,10 @@ proc commit_tree {} {
# -- Our in memory state should match the repository. # -- Our in memory state should match the repository.
# #
repository_state curHEAD cur_type repository_state curHEAD cur_type
if {$commit_type == {amend} if {$commit_type eq {amend}
&& $cur_type == {normal} && $cur_type eq {normal}
&& $curHEAD == $HEAD} { && $curHEAD eq $HEAD} {
} elseif {$commit_type != $cur_type || $HEAD != $curHEAD} { } elseif {$commit_type ne $cur_type || $HEAD ne $curHEAD} {
error_popup {Last scanned state does not match repository state. error_popup {Last scanned state does not match repository state.
Its highly likely that another Git program modified the Its highly likely that another Git program modified the
@ -725,7 +725,7 @@ You must include at least 1 file before you can commit.
# -- A message is required. # -- A message is required.
# #
set msg [string trim [$ui_comm get 1.0 end]] set msg [string trim [$ui_comm get 1.0 end]]
if {$msg == {}} { if {$msg eq {}} {
error_popup {Please supply a commit message. error_popup {Please supply a commit message.
A good commit message has the following format: A good commit message has the following format:
@ -741,7 +741,7 @@ A good commit message has the following format:
# -- Ask the pre-commit hook for the go-ahead. # -- Ask the pre-commit hook for the go-ahead.
# #
set pchook [file join $gitdir hooks pre-commit] set pchook [file join $gitdir hooks pre-commit]
if {$tcl_platform(platform) == {windows} && [file isfile $pchook]} { if {$tcl_platform(platform) eq {windows} && [file isfile $pchook]} {
set pchook [list sh -c [concat \ set pchook [list sh -c [concat \
"if test -x \"$pchook\";" \ "if test -x \"$pchook\";" \
"then exec \"$pchook\" 2>&1;" \ "then exec \"$pchook\" 2>&1;" \
@ -751,7 +751,7 @@ A good commit message has the following format:
} else { } else {
set pchook {} set pchook {}
} }
if {$pchook != {}} { if {$pchook ne {}} {
set ui_status_value {Calling pre-commit hook...} set ui_status_value {Calling pre-commit hook...}
set pch_error {} set pch_error {}
set fd_ph [open "| $pchook" r] set fd_ph [open "| $pchook" r]
@ -798,7 +798,7 @@ proc commit_stage3 {fd_wt curHEAD msg} {
global file_states global file_states
gets $fd_wt tree_id gets $fd_wt tree_id
if {$tree_id == {} || [catch {close $fd_wt} err]} { if {$tree_id eq {} || [catch {close $fd_wt} err]} {
error_popup "write-tree failed:\n\n$err" error_popup "write-tree failed:\n\n$err"
set ui_status_value {Commit failed.} set ui_status_value {Commit failed.}
unlock_index unlock_index
@ -808,10 +808,10 @@ proc commit_stage3 {fd_wt curHEAD msg} {
# -- Create the commit. # -- Create the commit.
# #
set cmd [list git commit-tree $tree_id] set cmd [list git commit-tree $tree_id]
if {$PARENT != {}} { if {$PARENT ne {}} {
lappend cmd -p $PARENT lappend cmd -p $PARENT
} }
if {$commit_type == {merge}} { if {$commit_type eq {merge}} {
if {[catch { if {[catch {
set fd_mh [open [file join $gitdir MERGE_HEAD] r] set fd_mh [open [file join $gitdir MERGE_HEAD] r]
while {[gets $fd_mh merge_head] >= 0} { while {[gets $fd_mh merge_head] >= 0} {
@ -825,7 +825,7 @@ proc commit_stage3 {fd_wt curHEAD msg} {
return return
} }
} }
if {$PARENT == {}} { if {$PARENT eq {}} {
# git commit-tree writes to stderr during initial commit. # git commit-tree writes to stderr during initial commit.
lappend cmd 2>/dev/null lappend cmd 2>/dev/null
} }
@ -840,7 +840,7 @@ proc commit_stage3 {fd_wt curHEAD msg} {
# -- Update the HEAD ref. # -- Update the HEAD ref.
# #
set reflogm commit set reflogm commit
if {$commit_type != {normal}} { if {$commit_type ne {normal}} {
append reflogm " ($commit_type)" append reflogm " ($commit_type)"
} }
set i [string first "\n" $msg] set i [string first "\n" $msg]
@ -873,7 +873,7 @@ proc commit_stage3 {fd_wt curHEAD msg} {
# -- Run the post-commit hook. # -- Run the post-commit hook.
# #
set pchook [file join $gitdir hooks post-commit] set pchook [file join $gitdir hooks post-commit]
if {$tcl_platform(platform) == {windows} && [file isfile $pchook]} { if {$tcl_platform(platform) eq {windows} && [file isfile $pchook]} {
set pchook [list sh -c [concat \ set pchook [list sh -c [concat \
"if test -x \"$pchook\";" \ "if test -x \"$pchook\";" \
"then exec \"$pchook\";" \ "then exec \"$pchook\";" \
@ -881,7 +881,7 @@ proc commit_stage3 {fd_wt curHEAD msg} {
} elseif {![file executable $pchook]} { } elseif {![file executable $pchook]} {
set pchook {} set pchook {}
} }
if {$pchook != {}} { if {$pchook ne {}} {
catch {exec $pchook &} catch {exec $pchook &}
} }
@ -906,7 +906,7 @@ proc commit_stage3 {fd_wt curHEAD msg} {
D? {set m _[string index $m 1]} D? {set m _[string index $m 1]}
} }
if {$m == {__}} { if {$m eq {__}} {
unset file_states($path) unset file_states($path)
} else { } else {
lset file_states($path) 0 $m lset file_states($path) 0 $m
@ -940,7 +940,7 @@ proc pull_remote {remote branch} {
# -- Our in memory state should match the repository. # -- Our in memory state should match the repository.
# #
repository_state curHEAD cur_type repository_state curHEAD cur_type
if {$commit_type != $cur_type || $HEAD != $curHEAD} { if {$commit_type ne $cur_type || $HEAD ne $curHEAD} {
error_popup {Last scanned state does not match repository state. error_popup {Last scanned state does not match repository state.
Its highly likely that another Git program modified the Its highly likely that another Git program modified the
@ -969,7 +969,7 @@ Commit or throw away all changes before starting a pull operation.
set w [new_console "pull $remote $branch" \ set w [new_console "pull $remote $branch" \
"Pulling new changes from branch $branch in $remote"] "Pulling new changes from branch $branch in $remote"]
set cmd [list git pull] set cmd [list git pull]
if {$repo_config(gui.pullsummary) == {false}} { if {$repo_config(gui.pullsummary) eq {false}} {
lappend cmd --no-summary lappend cmd --no-summary
} }
lappend cmd $remote lappend cmd $remote
@ -1059,15 +1059,15 @@ proc merge_state {path new_state} {
set icon [lindex $info 1] set icon [lindex $info 1]
} }
if {$s0 == {_}} { if {$s0 eq {_}} {
set s0 [string index $state 0] set s0 [string index $state 0]
} elseif {$s0 == {*}} { } elseif {$s0 eq {*}} {
set s0 _ set s0 _
} }
if {$s1 == {_}} { if {$s1 eq {_}} {
set s1 [string index $state 1] set s1 [string index $state 1]
} elseif {$s1 == {*}} { } elseif {$s1 eq {*}} {
set s1 _ set s1 _
} }
@ -1087,7 +1087,7 @@ proc display_file {path state} {
set old_w [mapcol $old_m $path] set old_w [mapcol $old_m $path]
set new_icon [mapicon $new_m $path] set new_icon [mapicon $new_m $path]
if {$new_w != $old_w} { if {$new_w ne $old_w} {
set lno [lsearch -sorted $file_lists($old_w) $path] set lno [lsearch -sorted $file_lists($old_w) $path]
if {$lno >= 0} { if {$lno >= 0} {
incr lno incr lno
@ -1107,7 +1107,7 @@ proc display_file {path state} {
-image $new_icon -image $new_icon
$new_w insert $lno.1 "[escape_path $path]\n" $new_w insert $lno.1 "[escape_path $path]\n"
$new_w conf -state disabled $new_w conf -state disabled
} elseif {$new_icon != [mapicon $old_m $path]} { } elseif {$new_icon ne [mapicon $old_m $path]} {
$new_w conf -state normal $new_w conf -state normal
$new_w image conf [lindex $s 1] -image $new_icon $new_w image conf [lindex $s 1] -image $new_icon
$new_w conf -state disabled $new_w conf -state disabled
@ -1199,7 +1199,7 @@ proc write_update_index {fd pathList totalCnt batch} {
puts -nonewline $fd $path puts -nonewline $fd $path
puts -nonewline $fd "\0" puts -nonewline $fd "\0"
display_file $path $new display_file $path $new
if {$ui_fname_value == $path} { if {$ui_fname_value eq $path} {
show_diff $path show_diff $path
} }
} }
@ -1252,8 +1252,8 @@ proc populate_pull_menu {m} {
foreach remote $all_remotes { foreach remote $all_remotes {
set rb {} set rb {}
if {[array get repo_config remote.$remote.url] != {}} { if {[array get repo_config remote.$remote.url] ne {}} {
if {[array get repo_config remote.$remote.fetch] != {}} { if {[array get repo_config remote.$remote.fetch] ne {}} {
regexp {^([^:]+):} \ regexp {^([^:]+):} \
[lindex $repo_config(remote.$remote.fetch) 0] \ [lindex $repo_config(remote.$remote.fetch) 0] \
line rb line rb
@ -1272,7 +1272,7 @@ proc populate_pull_menu {m} {
set rb_short $rb set rb_short $rb
regsub ^refs/heads/ $rb {} rb_short regsub ^refs/heads/ $rb {} rb_short
if {$rb_short != {}} { if {$rb_short ne {}} {
$m add command \ $m add command \
-label "Branch $rb_short from $remote..." \ -label "Branch $rb_short from $remote..." \
-command [list pull_remote $remote $rb] \ -command [list pull_remote $remote $rb] \
@ -1384,7 +1384,7 @@ foreach i {
if {$max_status_desc < [string length [lindex $i 3]]} { if {$max_status_desc < [string length [lindex $i 3]]} {
set max_status_desc [string length [lindex $i 3]] set max_status_desc [string length [lindex $i 3]]
} }
if {[lindex $i 1] == {i}} { if {[lindex $i 1] eq {i}} {
set all_cols([lindex $i 0]) $ui_index set all_cols([lindex $i 0]) $ui_index
} else { } else {
set all_cols([lindex $i 0]) $ui_other set all_cols([lindex $i 0]) $ui_other
@ -1400,8 +1400,8 @@ unset filemask i
proc is_MacOSX {} { proc is_MacOSX {} {
global tcl_platform tk_library global tcl_platform tk_library
if {$tcl_platform(platform) == {unix} if {$tcl_platform(platform) eq {unix}
&& $tcl_platform(os) == {Darwin} && $tcl_platform(os) eq {Darwin}
&& [string match /Library/Frameworks/* $tk_library]} { && [string match /Library/Frameworks/* $tk_library]} {
return 1 return 1
} }
@ -1543,7 +1543,7 @@ proc console_exec {w cmd {after {}}} {
# -- Windows tosses the enviroment when we exec our child. # -- Windows tosses the enviroment when we exec our child.
# But most users need that so we have to relogin. :-( # But most users need that so we have to relogin. :-(
# #
if {$tcl_platform(platform) == {windows}} { if {$tcl_platform(platform) eq {windows}} {
set cmd [list sh --login -c "cd \"[pwd]\" && [join $cmd { }]"] set cmd [list sh --login -c "cd \"[pwd]\" && [join $cmd { }]"]
} }
@ -1561,7 +1561,7 @@ proc console_read {w fd after} {
global console_cr console_data global console_cr console_data
set buf [read $fd] set buf [read $fd]
if {$buf != {}} { if {$buf ne {}} {
if {![winfo exists $w]} {console_init $w} if {![winfo exists $w]} {console_init $w}
$w.m.t conf -state normal $w.m.t conf -state normal
set c 0 set c 0
@ -1605,7 +1605,7 @@ proc console_read {w fd after} {
} }
array unset console_cr $w array unset console_cr $w
array unset console_data $w array unset console_data $w
if {$after != {}} { if {$after ne {}} {
uplevel #0 $after $ok uplevel #0 $after $ok
} }
return return
@ -1624,12 +1624,12 @@ proc do_gitk {} {
set ui_status_value $starting_gitk_msg set ui_status_value $starting_gitk_msg
after 10000 { after 10000 {
if {$ui_status_value == $starting_gitk_msg} { if {$ui_status_value eq $starting_gitk_msg} {
set ui_status_value {Ready.} set ui_status_value {Ready.}
} }
} }
if {$tcl_platform(platform) == {windows}} { if {$tcl_platform(platform) eq {windows}} {
exec sh -c gitk & exec sh -c gitk &
} else { } else {
exec gitk & exec gitk &
@ -1656,13 +1656,13 @@ proc do_quit {} {
# #
set save [file join $gitdir GITGUI_MSG] set save [file join $gitdir GITGUI_MSG]
set msg [string trim [$ui_comm get 0.0 end]] set msg [string trim [$ui_comm get 0.0 end]]
if {[$ui_comm edit modified] && $msg != {}} { if {[$ui_comm edit modified] && $msg ne {}} {
catch { catch {
set fd [open $save w] set fd [open $save w]
puts $fd [string trim [$ui_comm get 0.0 end]] puts $fd [string trim [$ui_comm get 0.0 end]]
close $fd close $fd
} }
} elseif {$msg == {} && [file exists $save]} { } elseif {$msg eq {} && [file exists $save]} {
file delete $save file delete $save
} }
@ -1675,7 +1675,7 @@ proc do_quit {} {
if {[catch {set rc_geometry $repo_config(gui.geometry)}]} { if {[catch {set rc_geometry $repo_config(gui.geometry)}]} {
set rc_geometry {} set rc_geometry {}
} }
if {$cfg_geometry != $rc_geometry} { if {$cfg_geometry ne $rc_geometry} {
catch {exec git repo-config gui.geometry $cfg_geometry} catch {exec git repo-config gui.geometry $cfg_geometry}
} }
@ -1702,7 +1702,7 @@ proc do_include_all {} {
_D {lappend pathList $path} _D {lappend pathList $path}
} }
} }
if {$pathList == {}} { if {$pathList eq {}} {
unlock_index unlock_index
} else { } else {
update_index $pathList update_index $pathList
@ -1714,7 +1714,7 @@ set GIT_COMMITTER_IDENT {}
proc do_signoff {} { proc do_signoff {} {
global ui_comm GIT_COMMITTER_IDENT global ui_comm GIT_COMMITTER_IDENT
if {$GIT_COMMITTER_IDENT == {}} { if {$GIT_COMMITTER_IDENT eq {}} {
if {[catch {set me [exec git var GIT_COMMITTER_IDENT]} err]} { if {[catch {set me [exec git var GIT_COMMITTER_IDENT]} err]} {
error_popup "Unable to obtain your identity:\n\n$err" error_popup "Unable to obtain your identity:\n\n$err"
return return
@ -1728,9 +1728,9 @@ proc do_signoff {} {
set sob "Signed-off-by: $GIT_COMMITTER_IDENT" set sob "Signed-off-by: $GIT_COMMITTER_IDENT"
set last [$ui_comm get {end -1c linestart} {end -1c}] set last [$ui_comm get {end -1c linestart} {end -1c}]
if {$last != $sob} { if {$last ne $sob} {
$ui_comm edit separator $ui_comm edit separator
if {$last != {} if {$last ne {}
&& ![regexp {^[A-Z][A-Za-z]*-[A-Za-z-]+: *} $last]} { && ![regexp {^[A-Z][A-Za-z]*-[A-Za-z-]+: *} $last]} {
$ui_comm insert end "\n" $ui_comm insert end "\n"
} }
@ -1888,7 +1888,7 @@ proc click {w x y shift wx wy} {
set lno [lindex $pos 0] set lno [lindex $pos 0]
set col [lindex $pos 1] set col [lindex $pos 1]
set path [lindex $file_lists($w) [expr $lno - 1]] set path [lindex $file_lists($w) [expr $lno - 1]]
if {$path == {}} return if {$path eq {}} return
if {$col > 0 && $shift == 1} { if {$col > 0 && $shift == 1} {
show_diff $path $w $lno show_diff $path $w $lno
@ -1902,7 +1902,7 @@ proc unclick {w x y} {
set lno [lindex $pos 0] set lno [lindex $pos 0]
set col [lindex $pos 1] set col [lindex $pos 1]
set path [lindex $file_lists($w) [expr $lno - 1]] set path [lindex $file_lists($w) [expr $lno - 1]]
if {$path == {}} return if {$path eq {}} return
if {$col == 0} { if {$col == 0} {
update_index [list $path] update_index [list $path]
@ -1927,7 +1927,7 @@ font create font_diffbold
set M1B M1 set M1B M1
set M1T M1 set M1T M1
if {$tcl_platform(platform) == {windows}} { if {$tcl_platform(platform) eq {windows}} {
set M1B Control set M1B Control
set M1T Ctrl set M1T Ctrl
} elseif {[is_MacOSX]} { } elseif {[is_MacOSX]} {