From 15c6114672d256ec61cac7ec7645e9fa58f26ac4 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 9 Aug 2020 23:00:35 +0100 Subject: [PATCH] fix errors --- src/bin/otter.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/bin/otter.rs b/src/bin/otter.rs index 29f90391..8e524014 100644 --- a/src/bin/otter.rs +++ b/src/bin/otter.rs @@ -121,10 +121,12 @@ where T: Default, { let mut parsed = Default::default(); let ap = apmaker(&mut parsed); + let us = args.get(0).expect("argv[0] must be provided!").clone(); let mut stdout = io::stdout(); + let mut stderr = io::stderr(); - let r = ap.parse(args, &mut stdout, &mut io::stderr()); + let r = ap.parse(args, &mut stdout, &mut stderr); if let Err(rc) = r { exit(match rc { 0 => { @@ -136,12 +138,14 @@ where T: Default, } 0 }, - _ => EXIT_USAGE, + 2 => EXIT_USAGE, + _ => panic!("unexpected error rc {} from ArgumentParser::parse", rc), }); } mem::drop(ap); - completer(&mut parsed).unwrap_or_else(|e| { - eprintln!("bad usage: {}", &e); + completer(&mut parsed).unwrap_or_else(|e:ArgumentParseError| { + let ap = apmaker(&mut parsed); + ap.error(&us, &e.0, &mut stderr); exit(EXIT_USAGE); }); parsed -- 2.30.2