diff options
| author | Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com> | 2019-01-04 14:54:30 +0300 |
|---|---|---|
| committer | Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com> | 2019-01-04 14:54:30 +0300 |
| commit | 985f855ca569d3ff2aa7e50bb52a7ecbdffe91d9 (patch) | |
| tree | 559df088e96e7fcbf3ae09c3fe996fcdcd82f096 /core/git | |
| parent | sort at lazy start (diff) | |
| download | gitbatch-985f855ca569d3ff2aa7e50bb52a7ecbdffe91d9.tar.gz | |
sort minimalized
Diffstat (limited to 'core/git')
| -rw-r--r-- | core/git/sort.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/core/git/sort.go b/core/git/sort.go index b681396..179368a 100644 --- a/core/git/sort.go +++ b/core/git/sort.go @@ -57,3 +57,32 @@ func (s LastModified) Swap(i, j int) { s[i], s[j] = s[j], s[i] } func (s LastModified) Less(i, j int) bool { return s[i].ModTime.Unix() > s[j].ModTime.Unix() } + + +func Less(ri, rj *Repository) bool { + iRunes := []rune(ri.Name) + jRunes := []rune(rj.Name) + + max := len(iRunes) + if max > len(jRunes) { + max = len(jRunes) + } + + for idx := 0; idx < max; idx++ { + ir := iRunes[idx] + jr := jRunes[idx] + + lir := unicode.ToLower(ir) + ljr := unicode.ToLower(jr) + + if lir != ljr { + return lir < ljr + } + + // the lowercase runes are the same, so compare the original + if ir != jr { + return ir < jr + } + } + return false +}
\ No newline at end of file |
