diff --git a/cflag/util.go b/cflag/util.go index 30bf65c8d..b6feb184d 100644 --- a/cflag/util.go +++ b/cflag/util.go @@ -62,18 +62,22 @@ func AddPrefixes2(name string, shorts []string, nameAtEnd bool) string { } // SplitShortcut string to []string -func SplitShortcut(shortcut string) (shorts []string) { - for _, sub := range strings.Split(shortcut, ",") { - sub = strings.TrimSpace(sub) - if sub != "" { - sub = strings.Trim(sub, "- ") +func SplitShortcut(shortcut string) []string { + return FilterNames(strings.Split(shortcut, ",")) +} + +// FilterNames for option names +func FilterNames(names []string) []string { + filtered := make([]string, 0, len(names)) + for _, sub := range names { + if sub = strings.TrimSpace(sub); sub != "" { + sub = strings.Trim(sub, "-+= ") if sub != "" { - shorts = append(shorts, sub) + filtered = append(filtered, sub) } } } - - return + return filtered } // IsFlagHelpErr check diff --git a/cflag/util_test.go b/cflag/util_test.go index 507136d35..67da14c53 100644 --- a/cflag/util_test.go +++ b/cflag/util_test.go @@ -24,6 +24,7 @@ func TestIsFlagHelpErr(t *testing.T) { func TestSplitShortcut(t *testing.T) { assert.Eq(t, []string{"a", "b"}, cflag.SplitShortcut("a,-b")) + assert.Eq(t, []string{"a", "b"}, cflag.SplitShortcut("a, ,-b")) assert.Eq(t, []string{"ab", "cd"}, cflag.SplitShortcut("-- ab,,-cd")) }