@@ -12,7 +12,7 @@ use operation::{
12
12
translate_input,
13
13
} ;
14
14
use std:: ffi:: OsString ;
15
- use std:: io:: { BufWriter , Write , stdin, stdout} ;
15
+ use std:: io:: { Write , stdin, stdout} ;
16
16
use uucore:: display:: Quotable ;
17
17
use uucore:: error:: { FromIo , UResult , USimpleError , UUsageError } ;
18
18
use uucore:: fs:: is_stdin_directory;
@@ -107,7 +107,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
107
107
108
108
let stdin = stdin ( ) ;
109
109
let mut locked_stdin = stdin. lock ( ) ;
110
- let mut buffered_stdout = BufWriter :: new ( stdout ( ) . lock ( ) ) ;
110
+ let mut locked_stdout = stdout ( ) . lock ( ) ;
111
111
112
112
// According to the man page: translating only happens if deleting or if a second set is given
113
113
let translating = !delete_flag && sets. len ( ) > 1 ;
@@ -131,34 +131,34 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
131
131
let delete_op = DeleteOperation :: new ( set1) ;
132
132
let squeeze_op = SqueezeOperation :: new ( set2) ;
133
133
let op = delete_op. chain ( squeeze_op) ;
134
- translate_input ( & mut locked_stdin, & mut buffered_stdout , op) ?;
134
+ translate_input ( & mut locked_stdin, & mut locked_stdout , op) ?;
135
135
} else {
136
136
let op = DeleteOperation :: new ( set1) ;
137
- translate_input ( & mut locked_stdin, & mut buffered_stdout , op) ?;
137
+ translate_input ( & mut locked_stdin, & mut locked_stdout , op) ?;
138
138
}
139
139
} else if squeeze_flag {
140
140
if sets_len == 1 {
141
141
let op = SqueezeOperation :: new ( set1) ;
142
- translate_input ( & mut locked_stdin, & mut buffered_stdout , op) ?;
142
+ translate_input ( & mut locked_stdin, & mut locked_stdout , op) ?;
143
143
} else {
144
144
let translate_op = TranslateOperation :: new ( set1, set2. clone ( ) ) ?;
145
145
let squeeze_op = SqueezeOperation :: new ( set2) ;
146
146
let op = translate_op. chain ( squeeze_op) ;
147
- translate_input ( & mut locked_stdin, & mut buffered_stdout , op) ?;
147
+ translate_input ( & mut locked_stdin, & mut locked_stdout , op) ?;
148
148
}
149
149
} else {
150
150
let op = TranslateOperation :: new ( set1, set2) ?;
151
- translate_input ( & mut locked_stdin, & mut buffered_stdout , op) ?;
151
+ translate_input ( & mut locked_stdin, & mut locked_stdout , op) ?;
152
152
}
153
153
154
154
#[ cfg( not( target_os = "windows" ) ) ]
155
- buffered_stdout
155
+ locked_stdout
156
156
. flush ( )
157
157
. map_err_context ( || translate ! ( "tr-error-write-error" ) ) ?;
158
158
159
159
// SIGPIPE is not available on Windows.
160
160
#[ cfg( target_os = "windows" ) ]
161
- match buffered_stdout . flush ( ) {
161
+ match locked_stdout . flush ( ) {
162
162
Ok ( ( ) ) => { }
163
163
Err ( err) if err. kind ( ) == std:: io:: ErrorKind :: BrokenPipe => std:: process:: exit ( 13 ) ,
164
164
Err ( err) => return Err ( err. map_err_context ( || translate ! ( "tr-error-write-error" ) ) ) ,
0 commit comments