From f53f9b64966645d7d740436a476271d1540dba1a Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 1 Jan 2024 16:57:47 +0100 Subject: [PATCH] handle the error when stdout is full Avoid panic when using seq 1 >/dev/full Should move tests/csplit/csplit-io-err.sh from ERROR to SKIP --- src/uucore/src/lib/lib.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/uucore/src/lib/lib.rs b/src/uucore/src/lib/lib.rs index dcef26443..2fc0ae301 100644 --- a/src/uucore/src/lib/lib.rs +++ b/src/uucore/src/lib/lib.rs @@ -105,9 +105,15 @@ macro_rules! bin { ($util:ident) => { pub fn main() { use std::io::Write; - uucore::panic::mute_sigpipe_panic(); // suppress extraneous error output for SIGPIPE failures/panics - let code = $util::uumain(uucore::args_os()); // execute utility code - std::io::stdout().flush().expect("could not flush stdout"); // (defensively) flush stdout for utility prior to exit; see + // suppress extraneous error output for SIGPIPE failures/panics + uucore::panic::mute_sigpipe_panic(); + // execute utility code + let code = $util::uumain(uucore::args_os()); + // (defensively) flush stdout for utility prior to exit; see + if let Err(e) = std::io::stdout().flush() { + eprintln!("Error flushing stdout: {}", e); + } + std::process::exit(code); } };