From 6ceb88a594caae825605abc1cdad95204996bf29 Mon Sep 17 00:00:00 2001 From: Kevin K Date: Mon, 30 Mar 2015 20:41:26 -0400 Subject: [PATCH] fix(args): fix bug in arguments who are required and mutually exclusive When arguments are required-by-default and also mutually exclusive with other arguments and the user chooses the mutually eclusive argument, the requirements must be updated as well. --- src/app.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/app.rs b/src/app.rs index e5e5c972..0c7a2ee5 100644 --- a/src/app.rs +++ b/src/app.rs @@ -800,6 +800,7 @@ impl<'a, 'v, 'ab, 'u, 'ar> App<'a, 'v, 'ab, 'u, 'ar>{ if let Some(ref bl) = p.blacklist { for name in bl { self.blacklist.insert(name); + self.required.remove(name); } } if self.required.contains(p.name) { @@ -948,6 +949,7 @@ impl<'a, 'v, 'ab, 'u, 'ar> App<'a, 'v, 'ab, 'u, 'ar>{ if let Some(ref bl) = v.blacklist { for name in bl { self.blacklist.insert(name); + self.required.remove(name); } } if self.required.contains(v.name) { @@ -1005,6 +1007,7 @@ impl<'a, 'v, 'ab, 'u, 'ar> App<'a, 'v, 'ab, 'u, 'ar>{ if let Some(ref bl) = v.blacklist { for name in bl { self.blacklist.insert(name); + self.required.remove(name); } } @@ -1070,6 +1073,7 @@ impl<'a, 'v, 'ab, 'u, 'ar> App<'a, 'v, 'ab, 'u, 'ar>{ if let Some(ref bl) = v.blacklist { for name in bl { self.blacklist.insert(name); + self.required.remove(name); } } if self.required.contains(v.name) { @@ -1130,6 +1134,7 @@ impl<'a, 'v, 'ab, 'u, 'ar> App<'a, 'v, 'ab, 'u, 'ar>{ if let Some(ref bl) = v.blacklist { for name in bl { self.blacklist.insert(name); + self.required.remove(name); } }