From 9a906f17374922ed0f74e1b2f593d3723f2ffb00 Mon Sep 17 00:00:00 2001 From: Albert Nigmatzianov Date: Wed, 5 Apr 2017 16:18:32 +0200 Subject: Prevent changing order of flags after SetNormalizeFunc() (#121) Fix #120 --- flag.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'flag.go') 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 } } -- cgit v1.2.3