From b1f83dce8a9979aad72ccc5b2f34455488cc6c6e Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Sun, 8 Jan 2006 01:22:25 +0000 Subject: [PATCH] Removed "irc_default_msg_away" setting, for RFC 2812 conformity (/away command wihtout argument only removes away status) --- ChangeLog | 2 + doc/en/config.xml | 7 --- doc/en/weechat.en.xml | 4 -- doc/fr/config.xml | 9 +--- doc/fr/weechat.fr.xml | 4 -- src/common/completion.c | 16 ------ src/common/weeconfig.c | 5 -- src/common/weeconfig.h | 1 - src/irc/irc-send.c | 95 +++++++++++++++------------------ weechat/ChangeLog | 2 + weechat/doc/en/config.xml | 7 --- weechat/doc/en/weechat.en.xml | 4 -- weechat/doc/fr/config.xml | 9 +--- weechat/doc/fr/weechat.fr.xml | 4 -- weechat/src/common/completion.c | 16 ------ weechat/src/common/weeconfig.c | 5 -- weechat/src/common/weeconfig.h | 1 - weechat/src/irc/irc-send.c | 95 +++++++++++++++------------------ 18 files changed, 94 insertions(+), 192 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8bc9439a7..12270e9e9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,8 @@ ChangeLog - 2006-01-08 Version 0.1.7 (under dev!): + * removed "irc_default_msg_away" setting, for RFC 2812 conformity + (/away command wihtout argument only removes away status) * fixed refresh bug with Solaris when term size is changed * replaced Texinfo doc by XML Docbook * added color for window separators (when splited) diff --git a/doc/en/config.xml b/doc/en/config.xml index 62884ad17..b5591da75 100644 --- a/doc/en/config.xml +++ b/doc/en/config.xml @@ -762,13 +762,6 @@ Display message to all channels when (un)marking as away - - - string - any string - - Default message when away - string diff --git a/doc/en/weechat.en.xml b/doc/en/weechat.en.xml index e61d4a001..9e1d0e0aa 100644 --- a/doc/en/weechat.en.xml +++ b/doc/en/weechat.en.xml @@ -1686,10 +1686,6 @@ plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL); %w WeeChat commands - - %y - default "away" message - diff --git a/doc/fr/config.xml b/doc/fr/config.xml index 3263b3475..9c3f46154 100644 --- a/doc/fr/config.xml +++ b/doc/fr/config.xml @@ -759,16 +759,9 @@ booléen 'on' ou 'off' - 'on' + 'off' Affiche un message sur tous les canaux pour l'absence/le retour - - - chaîne - toute chaîne - 'away' - Message par défaut pour l'absence - chaîne diff --git a/doc/fr/weechat.fr.xml b/doc/fr/weechat.fr.xml index 408b6ba01..551f2a26c 100644 --- a/doc/fr/weechat.fr.xml +++ b/doc/fr/weechat.fr.xml @@ -1715,10 +1715,6 @@ plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL); %w commandes WeeChat - - %y - message d'absence ("away") par défaut - 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 @@ -573,19 +573,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,7 +216,29 @@ irc_cmd_send_away (t_irc_server *server, char *arguments) { if (ptr_server->is_connected) { - if (ptr_server->is_away && (!pos)) + if (pos) + { + ptr_server->is_away = 1; + ptr_server->away_time = time (NULL); + server_sendf (ptr_server, "AWAY :%s\r\n", pos); + if (cfg_irc_display_away) + { + 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) + free (string); + } + server_set_away (ptr_server, ptr_server->nick, 1); + for (ptr_window = gui_windows; ptr_window; + ptr_window = ptr_window->next_window) + { + if (SERVER(ptr_window->buffer) == ptr_server) + ptr_window->buffer->last_read_line = + ptr_window->buffer->last_line; + } + } + else { server_sendf (ptr_server, "AWAY\r\n"); ptr_server->is_away = 0; @@ -237,37 +258,31 @@ irc_cmd_send_away (t_irc_server *server, char *arguments) } server_set_away (ptr_server, ptr_server->nick, 0); } - else - { - 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); - if (cfg_irc_display_away) - { - string = (char *)gui_color_decode ((unsigned char *)ptr_away_msg, 1); - snprintf (buffer, sizeof (buffer), "is away: %s", (string) ? string : ""); - irc_send_me_all_channels (ptr_server, buffer); - if (string) - free (string); - } - server_set_away (ptr_server, ptr_server->nick, 1); - for (ptr_window = gui_windows; ptr_window; - ptr_window = ptr_window->next_window) - { - if (SERVER(ptr_window->buffer) == ptr_server) - ptr_window->buffer->last_read_line = - ptr_window->buffer->last_line; - } - } } } } 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; diff --git a/weechat/ChangeLog b/weechat/ChangeLog index 8bc9439a7..12270e9e9 100644 --- a/weechat/ChangeLog +++ b/weechat/ChangeLog @@ -5,6 +5,8 @@ ChangeLog - 2006-01-08 Version 0.1.7 (under dev!): + * removed "irc_default_msg_away" setting, for RFC 2812 conformity + (/away command wihtout argument only removes away status) * fixed refresh bug with Solaris when term size is changed * replaced Texinfo doc by XML Docbook * added color for window separators (when splited) diff --git a/weechat/doc/en/config.xml b/weechat/doc/en/config.xml index 62884ad17..b5591da75 100644 --- a/weechat/doc/en/config.xml +++ b/weechat/doc/en/config.xml @@ -762,13 +762,6 @@ Display message to all channels when (un)marking as away - - - string - any string - - Default message when away - string diff --git a/weechat/doc/en/weechat.en.xml b/weechat/doc/en/weechat.en.xml index e61d4a001..9e1d0e0aa 100644 --- a/weechat/doc/en/weechat.en.xml +++ b/weechat/doc/en/weechat.en.xml @@ -1686,10 +1686,6 @@ plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL); %w WeeChat commands - - %y - default "away" message - diff --git a/weechat/doc/fr/config.xml b/weechat/doc/fr/config.xml index 3263b3475..9c3f46154 100644 --- a/weechat/doc/fr/config.xml +++ b/weechat/doc/fr/config.xml @@ -759,16 +759,9 @@ booléen 'on' ou 'off' - 'on' + 'off' Affiche un message sur tous les canaux pour l'absence/le retour - - - chaîne - toute chaîne - 'away' - Message par défaut pour l'absence - chaîne diff --git a/weechat/doc/fr/weechat.fr.xml b/weechat/doc/fr/weechat.fr.xml index 408b6ba01..551f2a26c 100644 --- a/weechat/doc/fr/weechat.fr.xml +++ b/weechat/doc/fr/weechat.fr.xml @@ -1715,10 +1715,6 @@ plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL); %w commandes WeeChat - - %y - message d'absence ("away") par défaut - diff --git a/weechat/src/common/completion.c b/weechat/src/common/completion.c index a2bd350c8..fb4f4ff90 100644 --- a/weechat/src/common/completion.c +++ b/weechat/src/common/completion.c @@ -573,19 +573,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/weechat/src/common/weeconfig.c b/weechat/src/common/weeconfig.c index 34e5b37dc..d0ddb588e 100644 --- a/weechat/src/common/weeconfig.c +++ b/weechat/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/weechat/src/common/weeconfig.h b/weechat/src/common/weeconfig.h index 254a56a44..9cfd8f006 100644 --- a/weechat/src/common/weeconfig.h +++ b/weechat/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/weechat/src/irc/irc-send.c b/weechat/src/irc/irc-send.c index f6b6ce4b8..ca225d59c 100644 --- a/weechat/src/irc/irc-send.c +++ b/weechat/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,7 +216,29 @@ irc_cmd_send_away (t_irc_server *server, char *arguments) { if (ptr_server->is_connected) { - if (ptr_server->is_away && (!pos)) + if (pos) + { + ptr_server->is_away = 1; + ptr_server->away_time = time (NULL); + server_sendf (ptr_server, "AWAY :%s\r\n", pos); + if (cfg_irc_display_away) + { + 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) + free (string); + } + server_set_away (ptr_server, ptr_server->nick, 1); + for (ptr_window = gui_windows; ptr_window; + ptr_window = ptr_window->next_window) + { + if (SERVER(ptr_window->buffer) == ptr_server) + ptr_window->buffer->last_read_line = + ptr_window->buffer->last_line; + } + } + else { server_sendf (ptr_server, "AWAY\r\n"); ptr_server->is_away = 0; @@ -237,37 +258,31 @@ irc_cmd_send_away (t_irc_server *server, char *arguments) } server_set_away (ptr_server, ptr_server->nick, 0); } - else - { - 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); - if (cfg_irc_display_away) - { - string = (char *)gui_color_decode ((unsigned char *)ptr_away_msg, 1); - snprintf (buffer, sizeof (buffer), "is away: %s", (string) ? string : ""); - irc_send_me_all_channels (ptr_server, buffer); - if (string) - free (string); - } - server_set_away (ptr_server, ptr_server->nick, 1); - for (ptr_window = gui_windows; ptr_window; - ptr_window = ptr_window->next_window) - { - if (SERVER(ptr_window->buffer) == ptr_server) - ptr_window->buffer->last_read_line = - ptr_window->buffer->last_line; - } - } } } } 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;