瀏覽代碼

fix panic with only long flags or only one deprecatd

Docker-DCO-1.1-Signed-off-by: Victor Vieux <victor.vieux@docker.com> (github: vieux)
Victor Vieux 11 年之前
父節點
當前提交
069dc7f8c7
共有 2 個文件被更改,包括 4 次插入4 次删除
  1. 2 2
      pkg/mflag/example/example.go
  2. 2 2
      pkg/mflag/flag.go

+ 2 - 2
pkg/mflag/example/example.go

@@ -14,8 +14,8 @@ var (
 func init() {
 	flag.Bool([]string{"#hp", "#-halp"}, false, "display the halp")
 	flag.BoolVar(&b, []string{"b"}, false, "a simple bool")
-	flag.BoolVar(&b2, []string{"-bool"}, false, "a simple bool")
-	flag.IntVar(&i, []string{"#integer", "-integer"}, -1, "a simple integer")
+	flag.BoolVar(&b2, []string{"#-bool"}, false, "a simple bool")
+	flag.IntVar(&i, []string{"-integer", "-number"}, -1, "a simple integer")
 	flag.StringVar(&str, []string{"s", "#hidden", "-string"}, "", "a simple string") //-s -hidden and --string will work, but -hidden won't be in the usage
 	flag.BoolVar(&h, []string{"h", "#help", "-help"}, false, "display the help")
 	flag.Parse()

+ 2 - 2
pkg/mflag/flag.go

@@ -290,13 +290,13 @@ type Flag struct {
 func sortFlags(flags map[string]*Flag) []*Flag {
 	var list sort.StringSlice
 	for _, f := range flags {
+		fName := strings.TrimPrefix(f.Names[0], "#")
 		if len(f.Names) == 1 {
-			list = append(list, f.Names[0])
+			list = append(list, fName)
 			continue
 		}
 
 		found := false
-		fName := strings.TrimPrefix(strings.TrimPrefix(f.Names[0], "#"), "-")
 		for _, name := range list {
 			if name == fName {
 				found = true