Skip to content

Commit

Permalink
fix(Value Delimiters): fixes the confusion around implicitly setting …
Browse files Browse the repository at this point in the history
…value delimiters. (default is now `false`)

Now if one wishes to use value delimiters, they must explicitly set `Arg::use_delimiter(true)` or
`Arg::require_delimiter(true)`. No other methods implicitly set this value.

Closes #666
  • Loading branch information
kbknapp committed Sep 18, 2016
1 parent ecc6d89 commit 09d4d0a
Showing 1 changed file with 3 additions and 17 deletions.
20 changes: 3 additions & 17 deletions src/args/arg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1313,12 +1313,8 @@ impl<'a, 'b> Arg<'a, 'b> {
/// [option]: ./struct.Arg.html#method.takes_value
/// [`Arg::number_of_values(1)`]: ./struct.Arg.html#method.number_of_values
/// [`Arg::multiple(true)`]: ./struct.Arg.html#method.multiple
pub fn multiple(mut self, multi: bool) -> Self {
pub fn multiple(self, multi: bool) -> Self {
if multi {
if self.settings.is_set(ArgSettings::ValueDelimiterNotSet) &&
self.settings.is_set(ArgSettings::TakesValue) {
self = self.use_delimiter(true);
}
self.set(ArgSettings::Multiple)
} else {
self.unset(ArgSettings::Multiple)
Expand Down Expand Up @@ -1689,12 +1685,6 @@ impl<'a, 'b> Arg<'a, 'b> {
/// ```
/// [`Arg::multiple(true)`]: ./struct.Arg.html#method.multiple
pub fn number_of_values(mut self, qty: u64) -> Self {
if qty > 1 && self.settings.is_set(ArgSettings::ValueDelimiterNotSet) {
self.unsetb(ArgSettings::ValueDelimiterNotSet);
self.setb(ArgSettings::UseValueDelimiter);
} else {
self = self.use_delimiter(false);
}
self.setb(ArgSettings::TakesValue);
self.num_vals = Some(qty);
self
Expand Down Expand Up @@ -1794,12 +1784,6 @@ impl<'a, 'b> Arg<'a, 'b> {
/// ```
/// [`Arg::multiple(true)`]: ./struct.Arg.html#method.multiple
pub fn max_values(mut self, qty: u64) -> Self {
if qty > 1 && self.settings.is_set(ArgSettings::ValueDelimiterNotSet) {
self.unsetb(ArgSettings::ValueDelimiterNotSet);
self.setb(ArgSettings::UseValueDelimiter);
} else {
self = self.use_delimiter(false);
}
self.setb(ArgSettings::TakesValue);
self.max_vals = Some(qty);
self
Expand Down Expand Up @@ -2004,10 +1988,12 @@ impl<'a, 'b> Arg<'a, 'b> {
/// ```
pub fn require_delimiter(mut self, d: bool) -> Self {
if d {
self = self.use_delimiter(true);
self.unsetb(ArgSettings::ValueDelimiterNotSet);
self.setb(ArgSettings::UseValueDelimiter);
self.set(ArgSettings::RequireDelimiter)
} else {
self = self.use_delimiter(false);
self.unsetb(ArgSettings::UseValueDelimiter);
self.unset(ArgSettings::RequireDelimiter)
}
Expand Down

0 comments on commit 09d4d0a

Please sign in to comment.