From a31f12a8ee5bdfb05a4c528abc169a7b6b3a4ef6 Mon Sep 17 00:00:00 2001 From: oech3 <79379754+oech3@users.noreply.github.com> Date: Tue, 24 Mar 2026 13:07:46 +0900 Subject: [PATCH] tee: reduce if block --- src/uu/tee/src/tee.rs | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/uu/tee/src/tee.rs b/src/uu/tee/src/tee.rs index b9912c42ebf..344286aa662 100644 --- a/src/uu/tee/src/tee.rs +++ b/src/uu/tee/src/tee.rs @@ -231,22 +231,18 @@ fn copy(mut input: impl Read, mut output: impl Write) -> Result { let mut len = 0; loop { - let received = match input.read(&mut buffer) { - Ok(bytes_count) => bytes_count, - Err(e) if e.kind() == ErrorKind::Interrupted => continue, + match input.read(&mut buffer) { + Ok(0) => return Ok(len), // end of file + Ok(received) => { + output.write_all(&buffer[..received])?; + // flush the buffer to comply with POSIX requirement that + // `tee` does not buffer the input. + output.flush()?; + len += received; + } + Err(e) if e.kind() == ErrorKind::Interrupted => {} Err(e) => return Err(e), - }; - - if received == 0 { - return Ok(len); } - - output.write_all(&buffer[0..received])?; - - // We need to flush the buffer here to comply with POSIX requirement that - // `tee` does not buffer the input. - output.flush()?; - len += received; } }