summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2006-01-08 01:22:25 +0000
committerSebastien Helleu <flashcode@flashtux.org>2006-01-08 01:22:25 +0000
commitb1f83dce8a9979aad72ccc5b2f34455488cc6c6e (patch)
treec4fa83a298c271b1530a7a51c1f5e9fff453b518 /src
parentdd39ac243273052609e5f3ee6a5217f07e06402d (diff)
downloadweechat-b1f83dce8a9979aad72ccc5b2f34455488cc6c6e.zip
Removed "irc_default_msg_away" setting, for RFC 2812 conformity (/away command
wihtout argument only removes away status)
Diffstat (limited to 'src')
-rw-r--r--src/common/completion.c16
-rw-r--r--src/common/weeconfig.c5
-rw-r--r--src/common/weeconfig.h1
-rw-r--r--src/irc/irc-send.c95
4 files changed, 44 insertions, 73 deletions
diff --git a/src/common/completion.c b/src/common/completion.c
index a2bd350c8..fb4f4ff90 100644
--- a/src/common/completion.c
+++ b/src/common/completion.c
@@ -574,19 +574,6 @@ completion_list_add_weechat_cmd (t_completion *completion)
}
/*
- * completion_list_add_away: add away message to completion list
- */
-
-void
-completion_list_add_away (t_completion *completion)
-{
- if (cfg_irc_default_msg_away && cfg_irc_default_msg_away[0])
- weelist_add (&completion->completion_list,
- &completion->last_completion,
- cfg_irc_default_msg_away);
-}
-
-/*
* completion_build_list_template: build data list according to a template
*/
@@ -680,9 +667,6 @@ completion_build_list_template (t_completion *completion, char *template)
case 'w': /* WeeChat commands */
completion_list_add_weechat_cmd (completion);
break;
- case 'y': /* away message */
- completion_list_add_away (completion);
- break;
}
}
break;
diff --git a/src/common/weeconfig.c b/src/common/weeconfig.c
index 34e5b37dc..d0ddb588e 100644
--- a/src/common/weeconfig.c
+++ b/src/common/weeconfig.c
@@ -650,7 +650,6 @@ t_config_option weechat_options_log[] =
/* config, irc section */
int cfg_irc_display_away;
-char *cfg_irc_default_msg_away;
char *cfg_irc_default_msg_part;
char *cfg_irc_default_msg_quit;
int cfg_irc_notice_as_pv;
@@ -668,10 +667,6 @@ t_config_option weechat_options_irc[] =
N_("display message to all channels when (un)marking as away"),
OPTION_TYPE_BOOLEAN, BOOL_FALSE, BOOL_TRUE, BOOL_FALSE,
NULL, NULL, &cfg_irc_display_away, NULL, &config_change_noop },
- { "irc_default_msg_away", N_("default message when away"),
- N_("default message when away"),
- OPTION_TYPE_STRING, 0, 0, 0,
- "away", NULL, NULL, &cfg_irc_default_msg_away, &config_change_noop },
{ "irc_default_msg_part", N_("default part message (leaving channel)"),
N_("default part message (leaving channel)"),
OPTION_TYPE_STRING, 0, 0, 0,
diff --git a/src/common/weeconfig.h b/src/common/weeconfig.h
index 254a56a44..9cfd8f006 100644
--- a/src/common/weeconfig.h
+++ b/src/common/weeconfig.h
@@ -183,7 +183,6 @@ extern char *cfg_log_timestamp;
extern int cfg_log_hide_nickserv_pwd;
extern int cfg_irc_display_away;
-extern char *cfg_irc_default_msg_away;
extern char *cfg_irc_default_msg_part;
extern char *cfg_irc_default_msg_quit;
extern int cfg_irc_notice_as_pv;
diff --git a/src/irc/irc-send.c b/src/irc/irc-send.c
index f6b6ce4b8..ca225d59c 100644
--- a/src/irc/irc-send.c
+++ b/src/irc/irc-send.c
@@ -195,8 +195,7 @@ irc_cmd_send_amsg (t_irc_server *server, char *arguments)
int
irc_cmd_send_away (t_irc_server *server, char *arguments)
{
- char *pos, *ptr_away_msg;
- char *ptr_away_default_msg = "away";
+ char *pos;
t_irc_server *ptr_server;
t_gui_window *ptr_window;
time_t elapsed;
@@ -217,37 +216,14 @@ irc_cmd_send_away (t_irc_server *server, char *arguments)
{
if (ptr_server->is_connected)
{
- if (ptr_server->is_away && (!pos))
- {
- server_sendf (ptr_server, "AWAY\r\n");
- ptr_server->is_away = 0;
- if (server->away_time != 0)
- {
- elapsed = time (NULL) - ptr_server->away_time;
- ptr_server->away_time = 0;
- if (cfg_irc_display_away)
- {
- snprintf (buffer, sizeof (buffer),
- "is back (gone %.2ld:%.2ld:%.2ld)",
- (long int)(elapsed / 3600),
- (long int)((elapsed / 60) % 60),
- (long int)(elapsed % 60));
- irc_send_me_all_channels (ptr_server, buffer);
- }
- }
- server_set_away (ptr_server, ptr_server->nick, 0);
- }
- else
+ if (pos)
{
ptr_server->is_away = 1;
ptr_server->away_time = time (NULL);
- ptr_away_msg = (pos) ? pos :
- ((cfg_irc_default_msg_away && cfg_irc_default_msg_away[0]) ?
- cfg_irc_default_msg_away : ptr_away_default_msg);
- server_sendf (ptr_server, "AWAY :%s\r\n", ptr_away_msg);
+ server_sendf (ptr_server, "AWAY :%s\r\n", pos);
if (cfg_irc_display_away)
{
- string = (char *)gui_color_decode ((unsigned char *)ptr_away_msg, 1);
+ string = (char *)gui_color_decode ((unsigned char *)pos, 1);
snprintf (buffer, sizeof (buffer), "is away: %s", (string) ? string : "");
irc_send_me_all_channels (ptr_server, buffer);
if (string)
@@ -262,12 +238,51 @@ irc_cmd_send_away (t_irc_server *server, char *arguments)
ptr_window->buffer->last_line;
}
}
+ else
+ {
+ server_sendf (ptr_server, "AWAY\r\n");
+ ptr_server->is_away = 0;
+ if (server->away_time != 0)
+ {
+ elapsed = time (NULL) - ptr_server->away_time;
+ ptr_server->away_time = 0;
+ if (cfg_irc_display_away)
+ {
+ snprintf (buffer, sizeof (buffer),
+ "is back (gone %.2ld:%.2ld:%.2ld)",
+ (long int)(elapsed / 3600),
+ (long int)((elapsed / 60) % 60),
+ (long int)(elapsed % 60));
+ irc_send_me_all_channels (ptr_server, buffer);
+ }
+ }
+ server_set_away (ptr_server, ptr_server->nick, 0);
+ }
}
}
}
else
{
- if (server->is_away && (!arguments))
+ if (arguments)
+ {
+ server->is_away = 1;
+ server->away_time = time (NULL);
+ server_sendf (server, "AWAY :%s\r\n", arguments);
+ if (cfg_irc_display_away)
+ {
+ snprintf (buffer, sizeof (buffer), "is away: %s", arguments);
+ irc_send_me_all_channels (server, buffer);
+ }
+ server_set_away (server, server->nick, 1);
+ for (ptr_window = gui_windows; ptr_window;
+ ptr_window = ptr_window->next_window)
+ {
+ if (SERVER(ptr_window->buffer) == server)
+ ptr_window->buffer->last_read_line =
+ ptr_window->buffer->last_line;
+ }
+ }
+ else
{
server_sendf (server, "AWAY\r\n");
server->is_away = 0;
@@ -287,28 +302,6 @@ irc_cmd_send_away (t_irc_server *server, char *arguments)
}
server_set_away (server, server->nick, 0);
}
- else
- {
- server->is_away = 1;
- server->away_time = time (NULL);
- ptr_away_msg = (arguments) ? arguments :
- ((cfg_irc_default_msg_away && cfg_irc_default_msg_away[0]) ?
- cfg_irc_default_msg_away : ptr_away_default_msg);
- server_sendf (server, "AWAY :%s\r\n", ptr_away_msg);
- if (cfg_irc_display_away)
- {
- snprintf (buffer, sizeof (buffer), "is away: %s", ptr_away_msg);
- irc_send_me_all_channels (server, buffer);
- }
- server_set_away (server, server->nick, 1);
- for (ptr_window = gui_windows; ptr_window;
- ptr_window = ptr_window->next_window)
- {
- if (SERVER(ptr_window->buffer) == server)
- ptr_window->buffer->last_read_line =
- ptr_window->buffer->last_line;
- }
- }
}
gui_draw_buffer_status (gui_current_window->buffer, 1);
gui_add_hotlist = 1;