diff --git a/kike.c b/kike.c index bd30529..4511dae 100644 --- a/kike.c +++ b/kike.c @@ -1209,10 +1209,8 @@ irc_channel_multicast (struct channel *chan, const char *message, struct client *except) { for (struct channel_user *iter = chan->users; iter; iter = iter->next) - { if (iter->c != except) client_send (iter->c, "%s", message); - } } static bool @@ -2037,14 +2035,13 @@ irc_part_all_channels (struct client *c) { struct str_map_iter iter; str_map_iter_init (&iter, &c->ctx->channels); - struct channel *chan = str_map_iter_next (&iter), *next; - while (chan) + struct channel *chan, *next = str_map_iter_next (&iter); + for (chan = next; chan; chan = next) { // We have to be careful here, the channel might get destroyed next = str_map_iter_next (&iter); if (channel_get_user (chan, c)) irc_try_part (c, chan->name, NULL); - chan = next; } }