diff options
| author | Alec Thomas <[email protected]> | 2012-12-20 06:39:26 -1000 |
|---|---|---|
| committer | Alec Thomas <[email protected]> | 2012-12-20 06:39:26 -1000 |
| commit | 7c5bc8fc09f880184cd52a292e0c31931b5eb847 (patch) | |
| tree | ffde88029b9f8e4ee0d139383e86e538de307ae8 | |
| parent | 2e481152920c23cb939e7224aac245973a00ee95 (diff) | |
Set interspersed behaviour via a setter.
| -rw-r--r-- | flag.go | 34 | ||||
| -rw-r--r-- | flag_test.go | 2 |
2 files changed, 19 insertions, 17 deletions
@@ -260,16 +260,16 @@ type FlagSet struct { // a custom error handler. Usage func() - name string - parsed bool - actual map[string]*Flag - formal map[string]*Flag - shorthands map[byte]*Flag - args []string // arguments after flags - exitOnError bool // does the program exit if there's an error? - errorHandling ErrorHandling - output io.Writer // nil means stderr; use out() accessor - noInterspersed bool // do not allow interspersed option/non-option args + name string + parsed bool + actual map[string]*Flag + formal map[string]*Flag + shorthands map[byte]*Flag + args []string // arguments after flags + exitOnError bool // does the program exit if there's an error? + errorHandling ErrorHandling + output io.Writer // nil means stderr; use out() accessor + interspersed bool // do not allow interspersed option/non-option args } // A Flag represents the state of a flag. @@ -920,7 +920,7 @@ func (f *FlagSet) parseArgs(args []string) error { s := args[0] args = args[1:] if len(s) == 0 || s[0] != '-' || len(s) == 1 { - if f.noInterspersed { + if !f.interspersed { f.args = append(f.args, s) f.args = append(f.args, args...) return nil @@ -1028,9 +1028,9 @@ func Parse() { commandLine.Parse(os.Args[1:]) } -// Do not support interspersed option/non-option arguments. -func NoInterspersed() { - commandLine.NoInterspersed() +// 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. @@ -1047,12 +1047,14 @@ func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet { f := &FlagSet{ name: name, errorHandling: errorHandling, + interspersed: true, } return f } -func (f *FlagSet) NoInterspersed() { - f.noInterspersed = true +// 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. diff --git a/flag_test.go b/flag_test.go index 635f431..42d5483 100644 --- a/flag_test.go +++ b/flag_test.go @@ -338,7 +338,7 @@ func TestHelp(t *testing.T) { func TestNoInterspersed(t *testing.T) { f := NewFlagSet("test", ContinueOnError) - f.NoInterspersed() + f.SetInterspersed(false) f.Bool("true", true, "always true") f.Bool("false", false, "always false") err := f.Parse([]string{"--true", "break", "--false"}) |
