diff options
Diffstat (limited to 'cli/parser.go')
| -rw-r--r-- | cli/parser.go | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/cli/parser.go b/cli/parser.go index e80750e..50bd0bd 100644 --- a/cli/parser.go +++ b/cli/parser.go @@ -291,7 +291,7 @@ type CompleteParser struct { } func (self CompleteParser) Match(values []string) ([]string, bool) { - remainingValues := values + remainingValues := copySlice(values) for _, parser := range self.parsers { var ok bool @@ -305,7 +305,7 @@ func (self CompleteParser) Match(values []string) ([]string, bool) { } func (self CompleteParser) Capture(values []string) ([]string, map[string]interface{}) { - remainingValues := values + remainingValues := copySlice(values) data := map[string]interface{}{} for _, parser := range self.parsers { @@ -349,3 +349,9 @@ func flagKeyMatch(key string, values []string, index int) ([]string, bool) { return flagKeyMatch(key, values, index + 1) } + +func copySlice(a []string) []string { + b := make([]string, len(a)) + copy(b, a) + return b +} |
