summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--src/plugins/irc/irc-server.c20
2 files changed, 19 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 77314b4f8..407ee3a2e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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,