Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
exit(match rc {
0 => {
if let Some(eh) = extra_help {
- eh(&mut stdout).unwrap_or_else(|e|{
- eprintln!("write help to stdout: {:?}", &e);
- exit(EXIT_DISASTER);
- });
+ eh(&mut stdout).unwrap();
}
0
},
_ => panic!("unexpected error rc {} from ArgumentParser::parse", rc),
});
}
+ mem::drop(stdout);
mem::drop(ap);
let completed = completer(parsed)
.unwrap_or_else(|e:ArgumentParseError| {
impl CookedStdout {
pub fn new() -> Self { Self(BufWriter::new(RawStdout::new())) }
fn handle_err(e: io::Error) -> ! {
- AE::from(e).context("write stdout").end_process(12);
+ AE::from(e).context("write stdout").end_process(EXIT_DISASTER as _);
}
fn must_flush(&mut self) {
self.0.flush().unwrap_or_else(|e| Self::handle_err(e))