commit d8907e9
delthas
·
2024-07-16 18:20:00 +0000 UTC
parent 8b9c2f0
Fix sorting members with multiple prefixes
1 files changed,
+13,
-9
+13,
-9
1@@ -480,17 +480,21 @@ func (m members) Len() int {
2 }
3
4 func (m members) Less(i, j int) bool {
5- if m.m[i].PowerLevel != "" && m.m[j].PowerLevel == "" {
6- return true
7- } else if m.m[i].PowerLevel == "" && m.m[j].PowerLevel != "" {
8- return false
9- } else if m.m[i].PowerLevel != m.m[j].PowerLevel {
10- pi := strings.IndexByte(m.prefixes, m.m[i].PowerLevel[0])
11- pj := strings.IndexByte(m.prefixes, m.m[j].PowerLevel[0])
12- return pi < pj
13+ var pi, pj int
14+ if m.m[i].PowerLevel != "" {
15+ pi = strings.IndexByte(m.prefixes, m.m[i].PowerLevel[0])
16+ } else {
17+ pi = len(m.prefixes)
18+ }
19+ if m.m[j].PowerLevel != "" {
20+ pj = strings.IndexByte(m.prefixes, m.m[j].PowerLevel[0])
21 } else {
22- return strings.ToLower(m.m[i].Name.Name) < strings.ToLower(m.m[j].Name.Name)
23+ pj = len(m.prefixes)
24+ }
25+ if pi != pj {
26+ return pi < pj
27 }
28+ return strings.ToLower(m.m[i].Name.Name) < strings.ToLower(m.m[j].Name.Name)
29 }
30
31 func (m members) Swap(i, j int) {