@@ -534,28 +534,10 @@ proc _lappend_nice {cmd_var} {
534534}
535535
536536proc git {args} {
537- set opt [ list ]
538-
539- while {1} {
540- switch -- [ lindex $args 0] {
541- --nice {
542- _lappend_nice opt
543- }
544-
545- default {
546- break
547- }
548-
549- }
550-
551- set args [ lrange $args 1 end]
552- }
553-
554- set cmdp [ _git_cmd [lindex $args 0] ]
555- set args [ lrange $args 1 end]
556-
557- _trace_exec [ concat $opt $cmdp $args ]
558- set result [ eval exec $opt $cmdp $args ]
537+ set fd [ eval [list git_read] $args ]
538+ fconfigure $fd -translation binary -encoding utf-8
539+ set result [ string trimright [read $fd ] " \n " ]
540+ close $fd
559541 if {$::_trace } {
560542 puts stderr " < $result "
561543 }
@@ -1111,7 +1093,7 @@ git-version proc _parse_config {arr_name args} {
11111093 [list git_read config] \
11121094 $args \
11131095 [ list --null --list] ]
1114- fconfigure $fd_rc -translation binary
1096+ fconfigure $fd_rc -translation binary -encoding utf-8
11151097 set buf [ read $fd_rc ]
11161098 close $fd_rc
11171099 }
@@ -1691,7 +1673,7 @@ proc read_diff_index {fd after} {
16911673 set i [ split [string range $buf_rdi $c [expr {$z1 - 2}] ] { }]
16921674 set p [ string range $buf_rdi $z1 [expr {$z2 - 1}] ]
16931675 merge_state \
1694- [ encoding convertfrom $p ] \
1676+ [ encoding convertfrom utf-8 $p ] \
16951677 [ lindex $i 4] ? \
16961678 [ list [lindex $i 0] [ lindex $i 2] ] \
16971679 [ list ]
@@ -1724,7 +1706,7 @@ proc read_diff_files {fd after} {
17241706 set i [ split [string range $buf_rdf $c [expr {$z1 - 2}] ] { }]
17251707 set p [ string range $buf_rdf $z1 [expr {$z2 - 1}] ]
17261708 merge_state \
1727- [ encoding convertfrom $p ] \
1709+ [ encoding convertfrom utf-8 $p ] \
17281710 ?[ lindex $i 4] \
17291711 [ list ] \
17301712 [ list [lindex $i 0] [ lindex $i 2] ]
@@ -1747,7 +1729,7 @@ proc read_ls_others {fd after} {
17471729 set pck [ split $buf_rlo " \0 " ]
17481730 set buf_rlo [ lindex $pck end]
17491731 foreach p [ lrange $pck 0 end-1] {
1750- set p [ encoding convertfrom $p ]
1732+ set p [ encoding convertfrom utf-8 $p ]
17511733 if {[ string index $p end] eq {/}} {
17521734 set p [ string range $p 0 end-1]
17531735 }
0 commit comments