diff options
| -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 +} | 
