diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/plugins/irc/irc-server.c | 20 |
2 files changed, 19 insertions, 5 deletions
@@ -1,7 +1,7 @@ WeeChat ChangeLog ================= Sébastien Helleu <flashcode@flashtux.org> -v0.3.5-dev, 2011-03-18 +v0.3.5-dev, 2011-03-23 Version 0.3.5 (under dev!) @@ -40,6 +40,8 @@ Version 0.3.5 (under dev!) * core: allow background for nick colors (using ":") * api: add new function buffer_match_list * aspell: fix spellers used after switch of window (bug #32811) +* irc: fix local variable "away" on server buffer (set/delete it each time away + is set or removed on server) * irc: add new options irc.look.buffer_switch_autojoin and irc.look.buffer_switch_join (task #8542, task #10506) * irc: add new option irc.look.smart_filter_nick diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c index 87a86c482..7ec3ebaab 100644 --- a/src/plugins/irc/irc-server.c +++ b/src/plugins/irc/irc-server.c @@ -3686,16 +3686,28 @@ void irc_server_set_away (struct t_irc_server *server, const char *nick, int is_away) { struct t_irc_channel *ptr_channel; - - for (ptr_channel = server->channels; ptr_channel; ptr_channel = ptr_channel->next_channel) + + if (server->is_connected) { - if (server->is_connected) + /* set/del "away" local variable on server buffer */ + if (is_away) + { + weechat_buffer_set (server->buffer, + "localvar_set_away", server->away_message); + } + else + { + weechat_buffer_set (server->buffer, + "localvar_del_away", ""); + } + + for (ptr_channel = server->channels; ptr_channel; ptr_channel = ptr_channel->next_channel) { /* set away flag for nick on channel */ if (ptr_channel->type == IRC_CHANNEL_TYPE_CHANNEL) irc_channel_set_away (server, ptr_channel, nick, is_away); - /* set/del "away" local variable */ + /* set/del "away" local variable on channel buffer */ if (is_away) { weechat_buffer_set (ptr_channel->buffer, |