Skip to content

Commit 531991d

Browse files
oech3sylvestre
authored andcommitted
tee: fix < . message and strip errno
1 parent 1e81775 commit 531991d

4 files changed

Lines changed: 17 additions & 4 deletions

File tree

src/uu/tee/locales/en-US.ftl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ tee-help-output-error-exit = exit on write errors to any output
1414
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)
1515
1616
# Error messages
17-
tee-error-stdin = stdin: { $error }
17+
tee-error-stdin = read error: { $error }
1818
1919
# Other messages
2020
tee-standard-output = 'standard output'

src/uu/tee/locales/fr-FR.ftl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ tee-help-output-error-exit = quitter en cas d'erreurs d'écriture vers toute sor
1414
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)
1515
1616
# Messages d'erreur
17-
tee-error-stdin = stdin : { $error }
17+
tee-error-stdin = erreur de lecture: { $error }
1818
1919
# Autres messages
2020
tee-standard-output = 'sortie standard'

src/uu/tee/src/tee.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use std::fs::OpenOptions;
99
use std::io::{Error, ErrorKind, Read, Result, Write, stderr, stdin, stdout};
1010
use std::path::PathBuf;
1111
use uucore::display::Quotable;
12-
use uucore::error::UResult;
12+
use uucore::error::{UResult, strip_errno};
1313
use uucore::format_usage;
1414
use uucore::parser::shortcut_value_parser::ShortcutValueParser;
1515
use uucore::translate;
@@ -431,7 +431,11 @@ impl Read for NamedReader {
431431
fn read(&mut self, buf: &mut [u8]) -> Result<usize> {
432432
match self.inner.read(buf) {
433433
Err(f) => {
434-
let _ = writeln!(stderr(), "{}", translate!("tee-error-stdin", "error" => f));
434+
let _ = writeln!(
435+
stderr(),
436+
"tee: {}",
437+
translate!("tee-error-stdin", "error" => strip_errno(&f))
438+
);
435439
Err(f)
436440
}
437441
okay => okay,

tests/by-util/test_tee.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,15 @@ use std::time::Duration;
1616

1717
// spell-checker:ignore nopipe
1818

19+
#[test]
20+
#[cfg(unix)]
21+
fn test_error_stdin_directory() {
22+
new_ucmd!()
23+
.set_stdin(std::fs::File::open(".").unwrap())
24+
.fails_with_code(1)
25+
.stderr_is("tee: read error: Is a directory\n");
26+
}
27+
1928
#[test]
2029
fn test_invalid_arg() {
2130
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);

0 commit comments

Comments
 (0)