1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-27 21:36:37 +02:00

irc: factorize code to set state of modelists in a channel

This commit is contained in:
Sébastien Helleu
2018-03-25 08:18:54 +02:00
parent 1dff661356
commit 5793181ead
3 changed files with 24 additions and 18 deletions
+16
View File
@@ -1369,6 +1369,22 @@ irc_channel_display_nick_back_in_pv (struct t_irc_server *server,
}
}
/*
* Sets state for modelists in a channel.
*/
void
irc_channel_modelist_set_state (struct t_irc_channel *channel, int state)
{
struct t_irc_modelist *ptr_modelist;
for (ptr_modelist = channel->modelists; ptr_modelist;
ptr_modelist = ptr_modelist->next_modelist)
{
ptr_modelist->state = state;
}
}
/*
* Frees a channel and remove it from channels list.
*/
+2
View File
@@ -161,6 +161,8 @@ extern int irc_channel_autorejoin_cb (const void *pointer, void *data,
extern void irc_channel_display_nick_back_in_pv (struct t_irc_server *server,
struct t_irc_nick *nick,
const char *nickname);
extern void irc_channel_modelist_set_state (struct t_irc_channel *channel,
int state);
extern struct t_hdata *irc_channel_hdata_channel_cb (const void *pointer,
void *data,
const char *hdata_name);
+6 -18
View File
@@ -948,7 +948,6 @@ IRC_PROTOCOL_CALLBACK(kick)
int rejoin;
struct t_irc_channel *ptr_channel;
struct t_irc_nick *ptr_nick, *ptr_nick_kicked;
struct t_irc_modelist *ptr_modelist;
IRC_PROTOCOL_MIN_ARGS(4);
IRC_PROTOCOL_CHECK_HOST;
@@ -1008,11 +1007,8 @@ IRC_PROTOCOL_CALLBACK(kick)
*/
irc_nick_free_all (server, ptr_channel);
for (ptr_modelist = ptr_channel->modelists; ptr_modelist;
ptr_modelist = ptr_modelist->next_modelist)
{
ptr_modelist->state = IRC_MODELIST_STATE_MODIFIED;
}
irc_channel_modelist_set_state (ptr_channel,
IRC_MODELIST_STATE_MODIFIED);
/* read option "autorejoin" in server */
rejoin = IRC_SERVER_OPTION_BOOLEAN(server, IRC_SERVER_OPTION_AUTOREJOIN);
@@ -1074,7 +1070,6 @@ IRC_PROTOCOL_CALLBACK(kill)
char *pos_comment;
struct t_irc_channel *ptr_channel;
struct t_irc_nick *ptr_nick, *ptr_nick_killed;
struct t_irc_modelist *ptr_modelist;
IRC_PROTOCOL_MIN_ARGS(3);
IRC_PROTOCOL_CHECK_HOST;
@@ -1129,11 +1124,8 @@ IRC_PROTOCOL_CALLBACK(kill)
*/
irc_nick_free_all (server, ptr_channel);
for (ptr_modelist = ptr_channel->modelists; ptr_modelist;
ptr_modelist = ptr_modelist->next_modelist)
{
ptr_modelist->state = IRC_MODELIST_STATE_MODIFIED;
}
irc_channel_modelist_set_state (ptr_channel,
IRC_MODELIST_STATE_MODIFIED);
irc_bar_item_update_channel ();
}
@@ -1676,7 +1668,6 @@ IRC_PROTOCOL_CALLBACK(part)
struct t_irc_channel *ptr_channel;
struct t_irc_nick *ptr_nick;
struct t_irc_channel_speaking *ptr_nick_speaking;
struct t_irc_modelist *ptr_modelist;
IRC_PROTOCOL_MIN_ARGS(3);
IRC_PROTOCOL_CHECK_HOST;
@@ -1773,11 +1764,8 @@ IRC_PROTOCOL_CALLBACK(part)
{
irc_nick_free_all (server, ptr_channel);
for (ptr_modelist = ptr_channel->modelists; ptr_modelist;
ptr_modelist = ptr_modelist->next_modelist)
{
ptr_modelist->state = IRC_MODELIST_STATE_MODIFIED;
}
irc_channel_modelist_set_state (ptr_channel,
IRC_MODELIST_STATE_MODIFIED);
/* cycling ? => rejoin channel immediately */
if (ptr_channel->cycle)