From d00b34552545ddf4f94f110c7c74c9f97e6b2f7e Mon Sep 17 00:00:00 2001 From: oech3 <79379754+oech3@users.noreply.github.com> Date: Sun, 19 Apr 2026 02:34:47 +0900 Subject: [PATCH] tee: reduce line of code --- src/uu/tee/src/tee.rs | 63 +++++++++++++++---------------------------- 1 file changed, 22 insertions(+), 41 deletions(-) diff --git a/src/uu/tee/src/tee.rs b/src/uu/tee/src/tee.rs index 38b17275aa1..4ea973ace5d 100644 --- a/src/uu/tee/src/tee.rs +++ b/src/uu/tee/src/tee.rs @@ -208,31 +208,20 @@ fn process_error( writer: &NamedWriter, ignored_errors: &mut usize, ) -> Result<()> { - match mode { - Some(OutputErrorMode::Warn) => { - let _ = writeln!(stderr(), "{}: {f}", writer.name.maybe_quote()); - *ignored_errors += 1; - Ok(()) - } - Some(OutputErrorMode::WarnNoPipe) | None => { - if f.kind() != ErrorKind::BrokenPipe { - let _ = writeln!(stderr(), "{}: {f}", writer.name.maybe_quote()); - *ignored_errors += 1; - } - Ok(()) - } - Some(OutputErrorMode::Exit) => { - let _ = writeln!(stderr(), "{}: {f}", writer.name.maybe_quote()); - Err(f) - } - Some(OutputErrorMode::ExitNoPipe) => { - if f.kind() == ErrorKind::BrokenPipe { - Ok(()) - } else { - let _ = writeln!(stderr(), "{}: {f}", writer.name.maybe_quote()); - Err(f) - } - } + let ignore_pipe = matches!( + mode, + None | Some(OutputErrorMode::WarnNoPipe) | Some(OutputErrorMode::ExitNoPipe) + ); + + if ignore_pipe && f.kind() == ErrorKind::BrokenPipe { + return Ok(()); + } + let _ = writeln!(stderr(), "{}: {f}", writer.name.maybe_quote()); + if let Some(OutputErrorMode::Exit | OutputErrorMode::ExitNoPipe) = mode { + Err(f) + } else { + *ignored_errors += 1; + Ok(()) } } @@ -277,11 +266,7 @@ impl Write for MultiWriter { .is_ok() }); self.ignored_errors += errors; - if let Some(e) = aborted { - Err(e) - } else { - Ok(()) - } + aborted.map_or(Ok(()), Err) } } @@ -327,16 +312,12 @@ struct NamedReader { impl Read for NamedReader { fn read(&mut self, buf: &mut [u8]) -> Result { - match self.inner.read(buf) { - Err(f) => { - let _ = writeln!( - stderr(), - "tee: {}", - translate!("tee-error-stdin", "error" => strip_errno(&f)) - ); - Err(f) - } - okay => okay, - } + self.inner.read(buf).inspect_err(|e| { + let _ = writeln!( + stderr(), + "tee: {}", + translate!("tee-error-stdin", "error" => strip_errno(e)) + ); + }) } }