aboutsummaryrefslogtreecommitdiff
path: root/flag.go
diff options
context:
space:
mode:
authorAlbert Nigmatzianov <[email protected]>2017-04-05 16:18:32 +0200
committerEric Paris <[email protected]>2017-04-05 10:18:32 -0400
commit9a906f17374922ed0f74e1b2f593d3723f2ffb00 (patch)
treeaee963894efcfe2b87eb38106a8683d01a7b9db7 /flag.go
parentd16db1e50e33dff1b6cdf37596cef36742128670 (diff)
Prevent changing order of flags after SetNormalizeFunc() (#121)
Fix #120
Diffstat (limited to 'flag.go')
-rw-r--r--flag.go11
1 files changed, 5 insertions, 6 deletions
diff --git a/flag.go b/flag.go
index cb57359..3a2e255 100644
--- a/flag.go
+++ b/flag.go
@@ -200,13 +200,12 @@ func sortFlags(flags map[NormalizedName]*Flag) []*Flag {
// "--getUrl" which may also be translated to "geturl" and everything will work.
func (f *FlagSet) SetNormalizeFunc(n func(f *FlagSet, name string) NormalizedName) {
f.normalizeNameFunc = n
- f.orderedFormal = f.orderedFormal[:0]
- for k, v := range f.formal {
- delete(f.formal, k)
- nname := f.normalizeFlagName(string(k))
- f.formal[nname] = v
- f.orderedFormal = append(f.orderedFormal, v)
+ for k, v := range f.orderedFormal {
+ delete(f.formal, NormalizedName(v.Name))
+ nname := f.normalizeFlagName(v.Name)
v.Name = string(nname)
+ f.formal[nname] = v
+ f.orderedFormal[k] = v
}
}