@@ -621,7 +621,7 @@ proc _lappend_nice {cmd_var} {
621621}
622622
623623proc git {args} {
624- set fd [eval [ list git_read] $args ]
624+ set fd [git_read $args ]
625625 fconfigure $fd -translation binary -encoding utf-8
626626 set result [string trimright [read $fd ] " \n " ]
627627 close $fd
@@ -642,34 +642,34 @@ proc _open_stdout_stderr {cmd} {
642642 return $fd
643643}
644644
645- proc git_read {args } {
646- set cmdp [_git_cmd [lindex $args 0]]
647- set args [lrange $args 1 end]
645+ proc git_read {cmd } {
646+ set cmdp [_git_cmd [lindex $cmd 0]]
647+ set cmd [lrange $cmd 1 end]
648648
649- return [_open_stdout_stderr [concat $cmdp $args ]]
649+ return [_open_stdout_stderr [concat $cmdp $cmd ]]
650650}
651651
652- proc git_read_nice {args } {
652+ proc git_read_nice {cmd } {
653653 set opt [list ]
654654
655655 _lappend_nice opt
656656
657- set cmdp [_git_cmd [lindex $args 0]]
658- set args [lrange $args 1 end]
657+ set cmdp [_git_cmd [lindex $cmd 0]]
658+ set cmd [lrange $cmd 1 end]
659659
660- return [_open_stdout_stderr [concat $opt $cmdp $args ]]
660+ return [_open_stdout_stderr [concat $opt $cmdp $cmd ]]
661661}
662662
663- proc git_write {args } {
664- set cmdp [_git_cmd [lindex $args 0]]
665- set args [lrange $args 1 end]
663+ proc git_write {cmd } {
664+ set cmdp [_git_cmd [lindex $cmd 0]]
665+ set cmd [lrange $cmd 1 end]
666666
667- _trace_exec [concat $cmdp $args ]
668- return [open [concat [list | ] $cmdp $args ] w]
667+ _trace_exec [concat $cmdp $cmd ]
668+ return [open [concat [list | ] $cmdp $cmd ] w]
669669}
670670
671671proc githook_read {hook_name args} {
672- git_read hook run --ignore-missing $hook_name -- $args 2>@1
672+ git_read [ concat [ list hook run --ignore-missing $hook_name --] $args 2>@1]
673673}
674674
675675proc kill_file_process {fd} {
@@ -1110,10 +1110,10 @@ proc _parse_config {arr_name args} {
11101110 array unset arr
11111111 set buf {}
11121112 catch {
1113- set fd_rc [eval \
1114- [list git_read config] \
1113+ set fd_rc [git_read \
1114+ [concat config \
11151115 $args \
1116- [ list --null --list]]
1116+ --null --list]]
11171117 fconfigure $fd_rc -translation binary -encoding utf-8
11181118 set buf [read $fd_rc ]
11191119 close $fd_rc
@@ -1482,12 +1482,12 @@ proc rescan {after {honor_trustmtime 1}} {
14821482 } else {
14831483 set rescan_active 1
14841484 ui_status [mc " Refreshing file status..." ]
1485- set fd_rf [git_read update-index \
1485+ set fd_rf [git_read [ list update-index \
14861486 -q \
14871487 --unmerged \
14881488 --ignore-missing \
14891489 --refresh \
1490- ]
1490+ ]]
14911491 fconfigure $fd_rf -blocking 0 -translation binary
14921492 fileevent $fd_rf readable \
14931493 [list rescan_stage2 $fd_rf $after ]
@@ -1527,11 +1527,11 @@ proc rescan_stage2 {fd after} {
15271527 set rescan_active 2
15281528 ui_status [mc " Scanning for modified files ..." ]
15291529 if {[git-version >= " 1.7.2" ]} {
1530- set fd_di [git_read diff-index --cached --ignore-submodules=dirty -z [PARENT]]
1530+ set fd_di [git_read [ list diff-index --cached --ignore-submodules=dirty -z [PARENT] ]]
15311531 } else {
1532- set fd_di [git_read diff-index --cached -z [PARENT]]
1532+ set fd_di [git_read [ list diff-index --cached -z [PARENT] ]]
15331533 }
1534- set fd_df [git_read diff-files -z]
1534+ set fd_df [git_read [ list diff-files -z] ]
15351535
15361536 fconfigure $fd_di -blocking 0 -translation binary -encoding binary
15371537 fconfigure $fd_df -blocking 0 -translation binary -encoding binary
@@ -1540,7 +1540,7 @@ proc rescan_stage2 {fd after} {
15401540 fileevent $fd_df readable [list read_diff_files $fd_df $after ]
15411541
15421542 if {[is_config_true gui.displayuntracked]} {
1543- set fd_lo [eval git_read ls-files --others -z $ls_others ]
1543+ set fd_lo [git_read [ concat ls-files --others -z $ls_others ] ]
15441544 fconfigure $fd_lo -blocking 0 -translation binary -encoding binary
15451545 fileevent $fd_lo readable [list read_ls_others $fd_lo $after ]
15461546 incr rescan_active
0 commit comments