sort.go 520 B

1234567891011121314151617181920212223242526272829
  1. package cli
  2. import "unicode"
  3. // lexicographicLess compares strings alphabetically considering case.
  4. func lexicographicLess(i, j string) bool {
  5. iRunes := []rune(i)
  6. jRunes := []rune(j)
  7. lenShared := len(iRunes)
  8. if lenShared > len(jRunes) {
  9. lenShared = len(jRunes)
  10. }
  11. for index := 0; index < lenShared; index++ {
  12. ir := iRunes[index]
  13. jr := jRunes[index]
  14. if lir, ljr := unicode.ToLower(ir), unicode.ToLower(jr); lir != ljr {
  15. return lir < ljr
  16. }
  17. if ir != jr {
  18. return ir < jr
  19. }
  20. }
  21. return i < j
  22. }