Revert "fix(usage)!: Separate mutli-occ from multi-val syntax"

This reverts commit 53bd42a809.
This commit is contained in:
Ed Page 2021-11-18 20:34:11 -06:00
parent 7ac79da34a
commit 77b1adc950
5 changed files with 9 additions and 25 deletions

View file

@ -1520,7 +1520,7 @@ impl<'help> Arg<'help> {
/// ```
/// # use clap::{App, Arg};
/// let m = App::new("posix")
/// .arg(Arg::from_usage("[opt]... --opt [val]... 'some option'")
/// .arg(Arg::from_usage("--opt [val]... 'some option'")
/// .overrides_with("opt"))
/// .get_matches_from(vec!["", "--opt", "first", "over", "--opt", "other", "val"]);
/// assert!(m.is_present("opt"));

View file

@ -176,10 +176,8 @@ impl<'help> UsageParser<'help> {
if arg.is_set(ArgSettings::TakesValue) {
// This is after `--name=value`, so requesting multiple value
arg.settings.set(ArgSettings::MultipleValues);
} else {
// This is after `[name]` (or a flag), so requesting multiple occurrences
arg.settings.set(ArgSettings::MultipleOccurrences);
}
arg.settings.set(ArgSettings::MultipleOccurrences);
self.prev = UsageToken::Multiple;
self.pos += 1;
break;
@ -482,24 +480,10 @@ mod test {
assert_eq!(a.short.unwrap(), 'o');
assert!(a.long.is_none());
assert_eq!(a.help.unwrap(), "some help info");
assert!(!a.is_set(ArgSettings::MultipleOccurrences));
assert!(a.is_set(ArgSettings::MultipleValues));
assert!(a.is_set(ArgSettings::TakesValue));
assert!(a.is_set(ArgSettings::Required));
assert_eq!(a.val_names.iter().collect::<Vec<_>>(), [&"opt"]);
}
#[test]
fn create_option_usage10() {
let a = Arg::from_usage("[option]... -o [opt]... 'some help info'");
assert_eq!(a.name, "option");
assert_eq!(a.short.unwrap(), 'o');
assert!(a.long.is_none());
assert_eq!(a.help.unwrap(), "some help info");
assert!(a.is_set(ArgSettings::MultipleOccurrences));
assert!(a.is_set(ArgSettings::MultipleValues));
assert!(a.is_set(ArgSettings::TakesValue));
assert!(!a.is_set(ArgSettings::Required));
assert!(a.is_set(ArgSettings::Required));
assert_eq!(a.val_names.iter().collect::<Vec<_>>(), [&"opt"]);
}

View file

@ -1025,7 +1025,7 @@ fn aaos_opts_mult() {
let res = App::new("posix")
.setting(AppSettings::AllArgsOverrideSelf)
.arg(
Arg::from_usage("[opt]... --opt [val]... 'some option'")
Arg::from_usage("--opt [val]... 'some option'")
.number_of_values(1)
.takes_value(true)
.use_delimiter(true)
@ -1047,7 +1047,7 @@ fn aaos_opts_mult_req_delims() {
// opts with multiple and require delims
let res = App::new("posix")
.setting(AppSettings::AllArgsOverrideSelf)
.arg(Arg::from_usage("[opt]... --opt [val]... 'some option'"))
.arg(Arg::from_usage("--opt [val]... 'some option'"))
.try_get_matches_from(vec![
"",
"--opt",

View file

@ -38,7 +38,7 @@ fn option_overrides_itself() {
fn mult_option_require_delim_overrides_itself() {
let res = App::new("posix")
.arg(
Arg::from_usage("[opt]... --opt [val]... 'some option'")
Arg::from_usage("--opt [val]... 'some option'")
.overrides_with("opt")
.number_of_values(1)
.takes_value(true)
@ -59,7 +59,7 @@ fn mult_option_require_delim_overrides_itself() {
#[test]
fn mult_option_overrides_itself() {
let res = App::new("posix")
.arg(Arg::from_usage("[opt]... --opt [val]... 'some option'").overrides_with("opt"))
.arg(Arg::from_usage("--opt [val]... 'some option'").overrides_with("opt"))
.try_get_matches_from(vec![
"",
"--opt",

View file

@ -60,7 +60,7 @@ pub fn complex_app() -> App<'static> {
.about("tests clap library")
.author("Kevin K. <kbknapp@gmail.com>")
.arg(Arg::from_usage(
"[option]... -o --option=[opt]... 'tests options'",
"[option] -o --option=[opt]... 'tests options'",
))
.arg(Arg::from_usage("[positional] 'tests positionals'"))
.arg(Arg::from_usage("-f --flag... 'tests flags'").global(true))
@ -85,7 +85,7 @@ pub fn complex_app() -> App<'static> {
.version("0.1")
.author("Kevin K. <kbknapp@gmail.com>")
.arg(Arg::from_usage(
"[option]... -o --option [scoption]... 'tests options'",
"[option] -o --option [scoption]... 'tests options'",
))
.arg(Arg::from_usage(
"-s --subcmdarg [subcmdarg] 'tests other args'",