From 00179e6244e9fc34437ca12a5c8899fd35352d95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Fri, 23 May 2014 22:49:03 +0200 Subject: [PATCH] irc: fix refresh of bar item "irc_channel" after join/part/kick/kill (issue #86) --- src/plugins/irc/irc-bar-item.c | 12 ++++++++++++ src/plugins/irc/irc-bar-item.h | 1 + src/plugins/irc/irc-protocol.c | 15 +++++---------- src/plugins/irc/irc-server.c | 4 ++-- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/plugins/irc/irc-bar-item.c b/src/plugins/irc/irc-bar-item.c index 6a6f22cf5..3ac0d466f 100644 --- a/src/plugins/irc/irc-bar-item.c +++ b/src/plugins/irc/irc-bar-item.c @@ -646,6 +646,18 @@ irc_bar_item_buffer_switch (void *data, const char *signal, return WEECHAT_RC_OK; } +/* + * Updates bar items with the channel. + */ + +void +irc_bar_item_update_channel () +{ + weechat_bar_item_update ("buffer_name"); + weechat_bar_item_update ("buffer_short_name"); + weechat_bar_item_update ("irc_channel"); +} + /* * Initializes IRC bar items. */ diff --git a/src/plugins/irc/irc-bar-item.h b/src/plugins/irc/irc-bar-item.h index a48076784..4d0b00563 100644 --- a/src/plugins/irc/irc-bar-item.h +++ b/src/plugins/irc/irc-bar-item.h @@ -20,6 +20,7 @@ #ifndef WEECHAT_IRC_BAR_ITEM_H #define WEECHAT_IRC_BAR_ITEM_H 1 +extern void irc_bar_item_update_channel (); extern void irc_bar_item_init (); #endif /* WEECHAT_IRC_BAR_ITEM_H */ diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c index 7cd7c1088..8b4e64dcd 100644 --- a/src/plugins/irc/irc-protocol.c +++ b/src/plugins/irc/irc-protocol.c @@ -40,6 +40,7 @@ #include "../weechat-plugin.h" #include "irc.h" #include "irc-protocol.h" +#include "irc-bar-item.h" #include "irc-buffer.h" #include "irc-channel.h" #include "irc-color.h" @@ -696,10 +697,7 @@ IRC_PROTOCOL_CALLBACK(join) } if (local_join) - { - weechat_bar_item_update ("buffer_name"); - weechat_bar_item_update ("buffer_short_name"); - } + irc_bar_item_update_channel (); return WEECHAT_RC_OK; } @@ -809,8 +807,7 @@ IRC_PROTOCOL_CALLBACK(kick) } } - weechat_bar_item_update ("buffer_name"); - weechat_bar_item_update ("buffer_short_name"); + irc_bar_item_update_channel (); } else { @@ -893,8 +890,7 @@ IRC_PROTOCOL_CALLBACK(kill) */ irc_nick_free_all (server, ptr_channel); - weechat_bar_item_update ("buffer_name"); - weechat_bar_item_update ("buffer_short_name"); + irc_bar_item_update_channel (); } else { @@ -1577,8 +1573,7 @@ IRC_PROTOCOL_CALLBACK(part) else ptr_channel->part = 1; } - weechat_bar_item_update ("buffer_name"); - weechat_bar_item_update ("buffer_short_name"); + irc_bar_item_update_channel (); } else { diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c index ab6ef9703..b56451fab 100644 --- a/src/plugins/irc/irc-server.c +++ b/src/plugins/irc/irc-server.c @@ -49,6 +49,7 @@ #include "../weechat-plugin.h" #include "irc.h" #include "irc-server.h" +#include "irc-bar-item.h" #include "irc-buffer.h" #include "irc-channel.h" #include "irc-color.h" @@ -4046,8 +4047,7 @@ irc_server_connect (struct t_irc_server *server) weechat_buffer_set (server->buffer, "display", "auto"); } - weechat_bar_item_update ("buffer_name"); - weechat_bar_item_update ("buffer_short_name"); + irc_bar_item_update_channel (); irc_server_set_index_current_address (server, server->index_current_address);