...
1 package cli
2
3 import "unicode"
4
5
6 func lexicographicLess(i, j string) bool {
7 iRunes := []rune(i)
8 jRunes := []rune(j)
9
10 lenShared := len(iRunes)
11 if lenShared > len(jRunes) {
12 lenShared = len(jRunes)
13 }
14
15 for index := 0; index < lenShared; index++ {
16 ir := iRunes[index]
17 jr := jRunes[index]
18
19 if lir, ljr := unicode.ToLower(ir), unicode.ToLower(jr); lir != ljr {
20 return lir < ljr
21 }
22
23 if ir != jr {
24 return ir < jr
25 }
26 }
27
28 return i < j
29 }
30
View as plain text