Docker-DCO-1.1-Signed-off-by: Jonathan Boulle <jonathanboulle@gmail.com> (github: jonboulle)
| ... | ... |
@@ -305,12 +305,10 @@ type flagSlice []string |
| 305 | 305 |
|
| 306 | 306 |
func (p flagSlice) Len() int { return len(p) }
|
| 307 | 307 |
func (p flagSlice) Less(i, j int) bool {
|
| 308 |
- pi, pj := strings.ToLower(p[i]), strings.ToLower(p[j]) |
|
| 309 |
- if pi[0] == '-' {
|
|
| 310 |
- pi = pi[1:] |
|
| 311 |
- } |
|
| 312 |
- if pj[0] == '-' {
|
|
| 313 |
- pj = pj[1:] |
|
| 308 |
+ pi, pj := strings.TrimPrefix(p[i], "-"), strings.TrimPrefix(p[j], "-") |
|
| 309 |
+ lpi, lpj := strings.ToLower(pi), strings.ToLower(pj) |
|
| 310 |
+ if lpi != lpj {
|
|
| 311 |
+ return lpi < lpj |
|
| 314 | 312 |
} |
| 315 | 313 |
return pi < pj |
| 316 | 314 |
} |
| ... | ... |
@@ -443,8 +441,6 @@ func (f *FlagSet) PrintDefaults() {
|
| 443 | 443 |
} |
| 444 | 444 |
fmt.Fprintln(writer, "\t", line) |
| 445 | 445 |
} |
| 446 |
- // start := fmt.Sprintf(format, strings.Join(names, ", -"), flag.DefValue) |
|
| 447 |
- // fmt.Fprintln(f.out(), start, strings.Replace(flag.Usage, "\n", "\n"+strings.Repeat(" ", len(start)+1), -1))
|
|
| 448 | 446 |
} |
| 449 | 447 |
}) |
| 450 | 448 |
writer.Flush() |
| ... | ... |
@@ -833,14 +829,12 @@ func (f *FlagSet) parseOne() (bool, string, error) {
|
| 833 | 833 |
f.args = f.args[1:] |
| 834 | 834 |
has_value := false |
| 835 | 835 |
value := "" |
| 836 |
- for i := 1; i < len(name); i++ { // equals cannot be first
|
|
| 837 |
- if name[i] == '=' {
|
|
| 838 |
- value = trimQuotes(name[i+1:]) |
|
| 839 |
- has_value = true |
|
| 840 |
- name = name[0:i] |
|
| 841 |
- break |
|
| 842 |
- } |
|
| 836 |
+ if i := strings.Index(name, "="); i != -1 {
|
|
| 837 |
+ value = trimQuotes(name[i+1:]) |
|
| 838 |
+ has_value = true |
|
| 839 |
+ name = name[:i] |
|
| 843 | 840 |
} |
| 841 |
+ |
|
| 844 | 842 |
m := f.formal |
| 845 | 843 |
flag, alreadythere := m[name] // BUG |
| 846 | 844 |
if !alreadythere {
|