From 531991d3448daff10371bd73fc830ea8bcaaf090 Mon Sep 17 00:00:00 2001 From: oech3 <79379754+oech3@users.noreply.github.com> Date: Wed, 25 Mar 2026 15:40:38 +0900 Subject: [PATCH] tee: fix < . message and strip errno --- src/uu/tee/locales/en-US.ftl | 2 +- src/uu/tee/locales/fr-FR.ftl | 2 +- src/uu/tee/src/tee.rs | 8 ++++++-- tests/by-util/test_tee.rs | 9 +++++++++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/uu/tee/locales/en-US.ftl b/src/uu/tee/locales/en-US.ftl index 4db948e6c..47bd49c74 100644 --- a/src/uu/tee/locales/en-US.ftl +++ b/src/uu/tee/locales/en-US.ftl @@ -14,7 +14,7 @@ tee-help-output-error-exit = exit on write errors to any output tee-help-output-error-exit-nopipe = exit on write errors to any output that are not pipe errors (equivalent to exit on non-unix platforms) # Error messages -tee-error-stdin = stdin: { $error } +tee-error-stdin = read error: { $error } # Other messages tee-standard-output = 'standard output' diff --git a/src/uu/tee/locales/fr-FR.ftl b/src/uu/tee/locales/fr-FR.ftl index eeea09ac4..e86faf9b6 100644 --- a/src/uu/tee/locales/fr-FR.ftl +++ b/src/uu/tee/locales/fr-FR.ftl @@ -14,7 +14,7 @@ tee-help-output-error-exit = quitter en cas d'erreurs d'écriture vers toute sor tee-help-output-error-exit-nopipe = quitter en cas d'erreurs d'écriture vers toute sortie qui ne sont pas des erreurs de tube (équivalent à exit sur les plateformes non-unix) # Messages d'erreur -tee-error-stdin = stdin : { $error } +tee-error-stdin = erreur de lecture: { $error } # Autres messages tee-standard-output = 'sortie standard' diff --git a/src/uu/tee/src/tee.rs b/src/uu/tee/src/tee.rs index 6426e447d..5db116df4 100644 --- a/src/uu/tee/src/tee.rs +++ b/src/uu/tee/src/tee.rs @@ -9,7 +9,7 @@ use std::fs::OpenOptions; use std::io::{Error, ErrorKind, Read, Result, Write, stderr, stdin, stdout}; use std::path::PathBuf; use uucore::display::Quotable; -use uucore::error::UResult; +use uucore::error::{UResult, strip_errno}; use uucore::format_usage; use uucore::parser::shortcut_value_parser::ShortcutValueParser; use uucore::translate; @@ -431,7 +431,11 @@ impl Read for NamedReader { fn read(&mut self, buf: &mut [u8]) -> Result { match self.inner.read(buf) { Err(f) => { - let _ = writeln!(stderr(), "{}", translate!("tee-error-stdin", "error" => f)); + let _ = writeln!( + stderr(), + "tee: {}", + translate!("tee-error-stdin", "error" => strip_errno(&f)) + ); Err(f) } okay => okay, diff --git a/tests/by-util/test_tee.rs b/tests/by-util/test_tee.rs index 8d03328b6..ae3e34dcd 100644 --- a/tests/by-util/test_tee.rs +++ b/tests/by-util/test_tee.rs @@ -16,6 +16,15 @@ use std::time::Duration; // spell-checker:ignore nopipe +#[test] +#[cfg(unix)] +fn test_error_stdin_directory() { + new_ucmd!() + .set_stdin(std::fs::File::open(".").unwrap()) + .fails_with_code(1) + .stderr_is("tee: read error: Is a directory\n"); +} + #[test] fn test_invalid_arg() { new_ucmd!().arg("--definitely-invalid").fails_with_code(1);