diff options
author | delthas <delthas@dille.cc> | 2021-07-12 19:19:40 +0200 |
---|---|---|
committer | Hubert Hirtz <hubert@hirtz.pm> | 2021-07-12 19:27:17 +0200 |
commit | 63d17a738bea58e83efb9aaddd5d522d92793945 (patch) | |
tree | 0cc8217063dd3a82bed2d6a2824060fa641b5919 /irc/tokens.go | |
parent | Ignore case when searching for a /BUFFER (diff) |
Sort channel members by name
This is used for nick autocomplete and for /NAMES.
It will also be used for the vertical user list in the UI in a upcoming
patch.
Diffstat (limited to 'irc/tokens.go')
-rw-r--r-- | irc/tokens.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/irc/tokens.go b/irc/tokens.go index 9c669bb..aa5d4b6 100644 --- a/irc/tokens.go +++ b/irc/tokens.go @@ -517,6 +517,20 @@ type Member struct { Name *Prefix } +type members []Member + +func (m members) Len() int { + return len(m) +} + +func (m members) Less(i, j int) bool { + return strings.ToLower(m[i].Name.Name) < strings.ToLower(m[j].Name.Name) +} + +func (m members) Swap(i, j int) { + m[i], m[j] = m[j], m[i] +} + // ParseNameReply parses the last parameter of RPL_NAMREPLY, according to the // membership prefixes of the server. func ParseNameReply(trailing string, prefixes string) (names []Member) { |