pflag icon indicating copy to clipboard operation
pflag copied to clipboard

FlagSet.GetStringToString() drops brackets from values

Open lstemplinger opened this issue 5 months ago • 0 comments

Code Example:

package main

import (
	"fmt"

	"github.com/spf13/pflag"
)

func main() {
	fs := pflag.NewFlagSet("test", pflag.PanicOnError)
	fs.StringToString("testflag", map[string]string{}, "")
	fs.Set("testflag", "x=[]")
	fmt.Println(fs.Lookup("testflag").Value.String())
	result, _ := fs.GetStringToString("testflag")
	fmt.Println(result)
}

With pflag Version 1.0.5 the output is:

[x=[]]    
map[x:] 

I would have expected:

[x=[]]    
map[x:[]] 

Looking at the code, it looks like the Trim() here also removes brackets at the end of the flag value, not just those added by String(): https://github.com/spf13/pflag/blob/master/string_to_string.go#L80

lstemplinger avatar Sep 13 '24 08:09 lstemplinger