diff --git a/src/args/arg_builder/positional.rs b/src/args/arg_builder/positional.rs index c7c855e830b..665421f4cad 100644 --- a/src/args/arg_builder/positional.rs +++ b/src/args/arg_builder/positional.rs @@ -130,11 +130,19 @@ impl<'n, 'e> PosBuilder<'n, 'e> { impl<'n, 'e> Display for PosBuilder<'n, 'e> { fn fmt(&self, f: &mut Formatter) -> Result { if self.settings.is_set(ArgSettings::Required) { - try!(write!(f, "<{}>", self.name)); + if let Some(ref names) = self.val_names { + try!(write!(f, "{}", names.values().map(|n| format!("<{}>", n)).collect::>().join(" "))); + } else { + try!(write!(f, "<{}>", self.name)); + } } else { - try!(write!(f, "[{}]", self.name)); + if let Some(ref names) = self.val_names { + try!(write!(f, "{}", names.values().map(|n| format!("[{}]", n)).collect::>().join(" "))); + } else { + try!(write!(f, "[{}]", self.name)); + } } - if self.settings.is_set(ArgSettings::Multiple) { + if self.settings.is_set(ArgSettings::Multiple) && self.val_names.is_none() { try!(write!(f, "...")); }