From 8c2d48acf5473feebd721a9049a9c9b7051e70f9 Mon Sep 17 00:00:00 2001 From: Kevin K Date: Wed, 19 Aug 2015 21:40:06 -0400 Subject: [PATCH] feat: implements posix compatible conflicts for long args --- src/app.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/app.rs b/src/app.rs index 4f2e9ae2e1c..12e47c6e9a9 100644 --- a/src/app.rs +++ b/src/app.rs @@ -2570,6 +2570,17 @@ impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar>{ true, Some(matches.args.keys().map(|k| *k).collect())); } + self.overrides.dedup(); + debugln!("checking if {} is in overrides", v.name); + if self.overrides.contains(&v.name) { + debugln!("it is..."); + debugln!("checking who defined it..."); + if let Some(name) = self.overriden_from(v.name, matches) { + debugln!("found {}", name); + matches.args.remove(name); + remove_override!(self, name); + } + } if let Some(ref or) = v.overrides { for pa in or { matches.args.remove(pa); @@ -2691,6 +2702,17 @@ impl<'a, 'v, 'ab, 'u, 'h, 'ar> App<'a, 'v, 'ab, 'u, 'h, 'ar>{ true, Some(matches.args.keys().map(|k| *k).collect())); } + self.overrides.dedup(); + debugln!("checking if {} is in overrides", v.name); + if self.overrides.contains(&v.name) { + debugln!("it is..."); + debugln!("checking who defined it..."); + if let Some(name) = self.overriden_from(v.name, matches) { + debugln!("found {}", name); + matches.args.remove(name); + remove_override!(self, name); + } + } if let Some(ref or) = v.overrides { for pa in or { matches.args.remove(pa);