chiark / gitweb /
otter cli: Tiny fixes to stdout handling
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 1 Jun 2021 14:37:23 +0000 (15:37 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 1 Jun 2021 17:04:21 +0000 (18:04 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bin/otter.rs
src/utils.rs

index dfea6f19b00b62818dd4222292a506ac002a4d2d..f8310d9cb175121681d08e60d141dd2e2cf3bdd8 100644 (file)
@@ -191,10 +191,7 @@ fn parse_args<T:Default,U>(
     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
       },
@@ -202,6 +199,7 @@ fn parse_args<T:Default,U>(
       _ => panic!("unexpected error rc {} from ArgumentParser::parse", rc),
     });
   }
+  mem::drop(stdout);
   mem::drop(ap);
   let completed  = completer(parsed)
     .unwrap_or_else(|e:ArgumentParseError| {
index d4533ef39d0f82c4316ff6be660f9b2df3afcaf0..9ce62a28d8a909f2671a2e1d433f54a043e07ab8 100644 (file)
@@ -735,7 +735,7 @@ pub struct CookedStdout(pub BufWriter<SigPipeWriter<io::Stdout>>);
 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))