Skip to content

Commit

Permalink
passing the no-more-options string "--" twice or more should pass the…
Browse files Browse the repository at this point in the history
… second and subsequent ones through as positionals
  • Loading branch information
alexflint committed Oct 21, 2024
1 parent b218ad8 commit 51d9bef
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
2 changes: 1 addition & 1 deletion parse.go
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ func (p *Parser) process(args []string) error {
// must use explicit for loop, not range, because we manipulate i inside the loop
for i := 0; i < len(args); i++ {
arg := args[i]
if arg == "--" {
if arg == "--" && !allpositional {
allpositional = true
continue
}
Expand Down
9 changes: 9 additions & 0 deletions parse_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -609,6 +609,15 @@ func TestNoMoreOptionsBeforeHelp(t *testing.T) {
assert.NotEqual(t, ErrHelp, err)
}

func TestNoMoreOptionsTwice(t *testing.T) {
var args struct {
X []string `arg:"positional"`
}
err := parse("-- --", &args)
require.NoError(t, err)
assert.Equal(t, []string{"--"}, args.X)
}

func TestHelpFlag(t *testing.T) {
var args struct {
Foo string
Expand Down

0 comments on commit 51d9bef

Please sign in to comment.