diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2006-01-08 01:22:25 +0000 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2006-01-08 01:22:25 +0000 |
commit | b1f83dce8a9979aad72ccc5b2f34455488cc6c6e (patch) | |
tree | c4fa83a298c271b1530a7a51c1f5e9fff453b518 /src | |
parent | dd39ac243273052609e5f3ee6a5217f07e06402d (diff) | |
download | weechat-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.c | 16 | ||||
-rw-r--r-- | src/common/weeconfig.c | 5 | ||||
-rw-r--r-- | src/common/weeconfig.h | 1 | ||||
-rw-r--r-- | src/irc/irc-send.c | 95 |
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; |