dsc | 24 ++++++------------------ diff --git a/dsc b/dsc index 96f267ffd2c9f0618cf481f4a6f64a7a50ccf1dba9ec001604ce842b9dc728ea..e80931c5c538cd6967d8332611d5f8b0317a926e6d5c13161a9be8949ca4f5cb 100755 --- a/dsc +++ b/dsc @@ -233,11 +233,8 @@ } } file mkdir "$Stash/[file dirname $opt]" if {[is-bin $opt]} { - set fh [open $Stash/$opt w] - fconfigure $fh -translation binary fconfigure stdin -translation binary - stdin copyto $fh - close $fh + exec base64 >$Stash/$opt <@stdin } else { set v [run-checker $opt $v] set fh [open $Stash/$opt w] @@ -264,11 +261,8 @@ exit } if {[file exists $Stash/$opt]} { if {[is-bin $opt]} { - set fh [open $Stash/$opt] - fconfigure $fh -translation binary fconfigure stdout -translation binary - $fh copyto stdout - close $fh + exec base64 -d <$Stash/$opt >@stdout } else { puts -nonewline [fileread $Stash/$opt] } @@ -393,22 +387,20 @@ } foreach dir $dirs { foreach fn [walk $dir file] { set sfn [string range $fn [string length $Saved]+1 end] + set fh [open $fn] if {[is-bin $sfn]} { puts "-- $sfn:base64 --" - set fh [open "|base64 $fn"] $fh copyto stdout - close $fh } else { puts "-- $sfn --" - set fh [open $fn] while {[gets $fh line] >= 0} { if {[txtar-fn $line] != ""} { set line "-- $line --" } puts $line } - close $fh } + close $fh } } } @@ -457,12 +449,8 @@ set fn [string range $fn 0 [expr {[string length $fn]-7-1}]] } global Stash file mkdir [file dirname $Stash/$fn] - if {$bin} { - set fh [open [list |base64 -d > $Stash/$fn] w] - } else { - set fh [open $Stash/$fn w] - fconfigure $fh -translation binary - } + set fh [open $Stash/$fn w] + fconfigure $fh -translation binary return $fh } set fh [openfh $fn]