Skip to content

Commit 913c6c2

Browse files
oech3sylvestre
authored andcommitted
tee: don't print EINTR
1 parent c8af53a commit 913c6c2

1 file changed

Lines changed: 20 additions & 17 deletions

File tree

src/uu/tee/src/tee.rs

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -165,22 +165,18 @@ impl MultiWriter {
165165
let mut buffer = [0u8; BUF_SIZE];
166166
// fast-path for small input. needs 2+ read to catch end of file
167167
for _ in 0..2 {
168-
match input.read(&mut buffer) {
169-
Ok(0) => return Ok(()), // end of file
170-
Ok(received) => self.write_flush(&buffer[..received])?,
171-
Err(e) if e.kind() != ErrorKind::Interrupted => return Err(e),
172-
_ => {}
168+
match input.read(&mut buffer)? {
169+
0 => return Ok(()), // end of file
170+
received => self.write_flush(&buffer[..received])?,
173171
}
174172
}
175173
// buffer is too small optimize for large input
176174
//stack array makes code path for smaller file slower
177175
let mut buffer = vec![0u8; 4 * BUF_SIZE];
178176
loop {
179-
match input.read(&mut buffer) {
180-
Ok(0) => return Ok(()), // end of file
181-
Ok(received) => self.write_flush(&buffer[..received])?,
182-
Err(e) if e.kind() != ErrorKind::Interrupted => return Err(e),
183-
_ => {}
177+
match input.read(&mut buffer)? {
178+
0 => return Ok(()), // end of file
179+
received => self.write_flush(&buffer[..received])?,
184180
}
185181
}
186182
}
@@ -284,12 +280,19 @@ struct NamedReader {
284280

285281
impl Read for NamedReader {
286282
fn read(&mut self, buf: &mut [u8]) -> Result<usize> {
287-
self.inner.read(buf).inspect_err(|e| {
288-
let _ = writeln!(
289-
stderr(),
290-
"tee: {}",
291-
translate!("tee-error-stdin", "error" => strip_errno(e))
292-
);
293-
})
283+
loop {
284+
match self.inner.read(buf) {
285+
Ok(n) => return Ok(n),
286+
Err(e) if e.kind() == ErrorKind::Interrupted => {}
287+
Err(e) => {
288+
let _ = writeln!(
289+
stderr(),
290+
"tee: {}",
291+
translate!("tee-error-stdin", "error" => strip_errno(&e))
292+
);
293+
return Err(e);
294+
}
295+
}
296+
}
294297
}
295298
}

0 commit comments

Comments
 (0)