mirror of
https://github.com/vlang/v.git
synced 2025-09-13 14:32:26 +03:00
flag: include args after end-of-options(--
) when checking min and max args (#21310)
This commit is contained in:
parent
39e550fa33
commit
9fb9443a72
2 changed files with 11 additions and 9 deletions
|
@ -607,25 +607,19 @@ pub fn (mut fs FlagParser) finalize() ![]string {
|
|||
}
|
||||
}
|
||||
}
|
||||
if remaining.len < fs.min_free_args && fs.min_free_args > 0 {
|
||||
remaining << fs.all_after_dashdash
|
||||
if fs.min_free_args > remaining.len {
|
||||
return &ArgsCountError{
|
||||
want: fs.min_free_args
|
||||
got: remaining.len
|
||||
}
|
||||
}
|
||||
if remaining.len > fs.max_free_args && fs.max_free_args > 0 {
|
||||
if fs.max_free_args < remaining.len {
|
||||
return &ArgsCountError{
|
||||
want: fs.max_free_args
|
||||
got: remaining.len
|
||||
}
|
||||
}
|
||||
if remaining.len > 0 && fs.max_free_args == 0 && fs.min_free_args == 0 {
|
||||
return &ArgsCountError{
|
||||
want: 0
|
||||
got: remaining.len
|
||||
}
|
||||
}
|
||||
remaining << fs.all_after_dashdash
|
||||
return remaining
|
||||
}
|
||||
|
||||
|
|
|
@ -204,6 +204,14 @@ fn test_free_args_could_be_limited() {
|
|||
assert args[0] == 'a'
|
||||
assert args[1] == 'b'
|
||||
assert args[2] == 'c'
|
||||
|
||||
mut fp2 := flag.new_flag_parser(['--', 'a'])
|
||||
fp2.limit_free_args_to_at_least(1)!
|
||||
args2 := fp2.finalize() or {
|
||||
assert false
|
||||
return
|
||||
}
|
||||
assert args2[0] == 'a'
|
||||
}
|
||||
|
||||
fn test_error_for_to_few_free_args() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue