From faad83fbef6752f3093b6e98fca09a9449b830f4 Mon Sep 17 00:00:00 2001 From: Kevin K Date: Thu, 17 Dec 2015 23:51:47 -0500 Subject: [PATCH] fix: ArgRequiredElseHelp setting now takes precedence over missing required args Closes #362 --- src/app/mod.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/app/mod.rs b/src/app/mod.rs index 8e945999dd6..06345b699b2 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -2728,12 +2728,17 @@ impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar> { if let Some(a) = self.positionals.values().filter(|p| &p.name == name).next() { if self._validate_blacklist_required(a, matcher) { continue 'outer; } } - return Err(error_builder::MissingRequiredArgument( + let err = if self.settings.is_set(&AppSettings::ArgRequiredElseHelp) && matcher.is_empty() { + self._help().unwrap_err() + } else { + error_builder::MissingRequiredArgument( &*self.get_required_from(&self.required, Some(matcher)) .iter() .fold(String::new(), |acc, s| acc + &format!("\n\t{}", Format::Error(s))[..]), - &*try!(self.create_current_usage(matcher)))); + &*try!(self.create_current_usage(matcher))) + }; + return Err(err); } Ok(()) }