diff options
| author | Alex Ogier <[email protected]> | 2012-12-20 10:45:41 -0800 |
|---|---|---|
| committer | Alex Ogier <[email protected]> | 2012-12-20 10:45:41 -0800 |
| commit | a7be1c8beca28c928f9bd874b97e32fb3b02baef (patch) | |
| tree | c12c281ae78242733e933df99ce43bdb8e010ebc /flag.go | |
| parent | fc678a46fb7fcef2879c7361da75cd77ec172444 (diff) | |
| parent | 6c61b06dffa80d2a272c8c2a79448954d9893c74 (diff) | |
Merge pull request #2 from alecthomas/master
Add ability to disable interspersed option support.
Diffstat (limited to 'flag.go')
| -rw-r--r-- | flag.go | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -271,6 +271,7 @@ type FlagSet struct { exitOnError bool // does the program exit if there's an error? errorHandling ErrorHandling output io.Writer // nil means stderr; use out() accessor + interspersed bool // allow interspersed option/non-option args } // A Flag represents the state of a flag. @@ -927,6 +928,11 @@ func (f *FlagSet) parseArgs(args []string) error { s := args[0] args = args[1:] if len(s) == 0 || s[0] != '-' || len(s) == 1 { + if !f.interspersed { + f.args = append(f.args, s) + f.args = append(f.args, args...) + return nil + } f.args = append(f.args, s) continue } @@ -1030,6 +1036,11 @@ func Parse() { commandLine.Parse(os.Args[1:]) } +// Whether to support interspersed option/non-option arguments. +func SetInterspersed(interspersed bool) { + commandLine.SetInterspersed(interspersed) +} + // Parsed returns true if the command-line flags have been parsed. func Parsed() bool { return commandLine.Parsed() @@ -1044,10 +1055,16 @@ func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet { f := &FlagSet{ name: name, errorHandling: errorHandling, + interspersed: true, } return f } +// Whether to support interspersed option/non-option arguments. +func (f *FlagSet) SetInterspersed(interspersed bool) { + f.interspersed = interspersed +} + // Init sets the name and error handling property for a flag set. // By default, the zero FlagSet uses an empty name and the // ContinueOnError error handling policy. |
