Avoid panic for missing flag value

Currently, in cases where a flag value is required but not passed and
short-option handling is enabled, a panic will occur due to a nil
pointer dereference. This prevents that situation from occurring,
instead propagating the appropriate error.
This commit is contained in:
Robert Liebowitz
2019-09-13 05:30:07 -04:00
committed by Ajitem Sahasrabuddhe
parent f12b8ca4e5
commit 7d46b6d7f1
5 changed files with 99 additions and 47 deletions

View File

@@ -175,16 +175,16 @@ func (c *Command) useShortOptionHandling() bool {
}
func (c *Command) parseFlags(args Args) (*flag.FlagSet, error) {
if c.SkipFlagParsing {
set, err := c.newFlagSet()
if err != nil {
return nil, err
}
set, err := c.newFlagSet()
if err != nil {
return nil, err
}
if c.SkipFlagParsing {
return set, set.Parse(append([]string{"--"}, args.Tail()...))
}
set, err := parseIter(c, args.Tail())
err = parseIter(set, c, args.Tail())
if err != nil {
return nil, err
}