1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-26 12:56:37 +02:00

Fixed nicklist sort bug

This commit is contained in:
Sebastien Helleu
2006-05-05 12:59:16 +00:00
parent 3352658af4
commit 9761177a2c
4 changed files with 52 additions and 44 deletions
+4 -1
View File
@@ -1,9 +1,12 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
ChangeLog - 2006-04-23
ChangeLog - 2006-05-05
Version 0.1.9 (under dev!):
* fixed nicklist sort bug
* added russian translations (thanks to Pavel Shevchuk)
* added german doc (thanks to Frank Zacharias)
* added missing IRC commands (290, 292, 437, 974)
* fixed crash when multiple pv have same name: now it's forbidden
and pv buffer is not renamed (when a nick changes) if another
+22 -21
View File
@@ -163,6 +163,27 @@ nick_insert_sorted (t_irc_channel *channel, t_irc_nick *nick)
}
}
/*
* nick_resort: resort nick in the list
*/
void
nick_resort (t_irc_channel *channel, t_irc_nick *nick)
{
/* temporarly remove nick from list */
if (nick == channel->nicks)
channel->nicks = nick->next_nick;
else
nick->prev_nick->next_nick = nick->next_nick;
if (nick->next_nick)
nick->next_nick->prev_nick = nick->prev_nick;
if (nick == channel->last_nick)
channel->last_nick = nick->prev_nick;
/* insert again nick into sorted list */
nick_insert_sorted (channel, nick);
}
/*
* nick_new: allocate a new nick for a channel and add it to the nick list
*/
@@ -183,6 +204,7 @@ nick_new (t_irc_server *server, t_irc_channel *channel, char *nick_name,
NICK_SET_FLAG(new_nick, is_op, NICK_OP);
NICK_SET_FLAG(new_nick, is_halfop, NICK_HALFOP);
NICK_SET_FLAG(new_nick, has_voice, NICK_VOICE);
nick_resort (channel, new_nick);
return new_nick;
}
@@ -212,27 +234,6 @@ nick_new (t_irc_server *server, t_irc_channel *channel, char *nick_name,
return new_nick;
}
/*
* nick_resort: resort nick in the list
*/
void
nick_resort (t_irc_channel *channel, t_irc_nick *nick)
{
/* temporarly remove nick from list */
if (nick == channel->nicks)
channel->nicks = nick->next_nick;
else
nick->prev_nick->next_nick = nick->next_nick;
if (nick->next_nick)
nick->next_nick->prev_nick = nick->prev_nick;
if (nick == channel->last_nick)
channel->last_nick = nick->prev_nick;
/* insert again nick into sorted list */
nick_insert_sorted (channel, nick);
}
/*
* nick_change: change nickname and move it if necessary (list is sorted)
*/
+4 -1
View File
@@ -1,9 +1,12 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
ChangeLog - 2006-04-23
ChangeLog - 2006-05-05
Version 0.1.9 (under dev!):
* fixed nicklist sort bug
* added russian translations (thanks to Pavel Shevchuk)
* added german doc (thanks to Frank Zacharias)
* added missing IRC commands (290, 292, 437, 974)
* fixed crash when multiple pv have same name: now it's forbidden
and pv buffer is not renamed (when a nick changes) if another
+22 -21
View File
@@ -163,6 +163,27 @@ nick_insert_sorted (t_irc_channel *channel, t_irc_nick *nick)
}
}
/*
* nick_resort: resort nick in the list
*/
void
nick_resort (t_irc_channel *channel, t_irc_nick *nick)
{
/* temporarly remove nick from list */
if (nick == channel->nicks)
channel->nicks = nick->next_nick;
else
nick->prev_nick->next_nick = nick->next_nick;
if (nick->next_nick)
nick->next_nick->prev_nick = nick->prev_nick;
if (nick == channel->last_nick)
channel->last_nick = nick->prev_nick;
/* insert again nick into sorted list */
nick_insert_sorted (channel, nick);
}
/*
* nick_new: allocate a new nick for a channel and add it to the nick list
*/
@@ -183,6 +204,7 @@ nick_new (t_irc_server *server, t_irc_channel *channel, char *nick_name,
NICK_SET_FLAG(new_nick, is_op, NICK_OP);
NICK_SET_FLAG(new_nick, is_halfop, NICK_HALFOP);
NICK_SET_FLAG(new_nick, has_voice, NICK_VOICE);
nick_resort (channel, new_nick);
return new_nick;
}
@@ -212,27 +234,6 @@ nick_new (t_irc_server *server, t_irc_channel *channel, char *nick_name,
return new_nick;
}
/*
* nick_resort: resort nick in the list
*/
void
nick_resort (t_irc_channel *channel, t_irc_nick *nick)
{
/* temporarly remove nick from list */
if (nick == channel->nicks)
channel->nicks = nick->next_nick;
else
nick->prev_nick->next_nick = nick->next_nick;
if (nick->next_nick)
nick->next_nick->prev_nick = nick->prev_nick;
if (nick == channel->last_nick)
channel->last_nick = nick->prev_nick;
/* insert again nick into sorted list */
nick_insert_sorted (channel, nick);
}
/*
* nick_change: change nickname and move it if necessary (list is sorted)
*/