mirror of
https://github.com/irssi/irssi.git
synced 2026-08-10 12:23:37 +02:00
sort nicks with custom prefix by the order defined in isupport in /NAMES
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4247 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
3eedfa4e12
commit
461f653d9b
3 changed files with 17 additions and 12 deletions
|
|
@ -473,12 +473,14 @@ void fe_channels_nicklist(CHANNEL_REC *channel, int flags)
|
|||
NICK_REC *nick;
|
||||
GSList *tmp, *nicklist, *sorted;
|
||||
int nicks, normal, voices, halfops, ops;
|
||||
const char *nick_flags;
|
||||
|
||||
nicks = normal = voices = halfops = ops = 0;
|
||||
nicklist = nicklist_getnicks(channel);
|
||||
sorted = NULL;
|
||||
nick_flags = channel->server->get_nick_flags(channel->server);
|
||||
|
||||
/* sort the nicklist */
|
||||
/* filter (for flags) and count ops, halfops, voices */
|
||||
for (tmp = nicklist; tmp != NULL; tmp = tmp->next) {
|
||||
nick = tmp->data;
|
||||
|
||||
|
|
@ -501,11 +503,13 @@ void fe_channels_nicklist(CHANNEL_REC *channel, int flags)
|
|||
continue;
|
||||
}
|
||||
|
||||
sorted = g_slist_insert_sorted(sorted, nick, (GCompareFunc)
|
||||
nicklist_compare);
|
||||
sorted = g_slist_prepend(sorted, nick);
|
||||
}
|
||||
g_slist_free(nicklist);
|
||||
|
||||
/* sort the nicklist */
|
||||
sorted = g_slist_sort_with_data(sorted, (GCompareDataFunc) nicklist_compare, (void *)nick_flags);
|
||||
|
||||
/* display the nicks */
|
||||
if ((flags & CHANNEL_NICKLIST_FLAG_COUNT) == 0) {
|
||||
printformat(channel->server, channel->visible_name,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue