mirror of
https://github.com/weechat/weechat.git
synced 2026-07-01 23:36:37 +02:00
Removed "irc_default_msg_away" setting, for RFC 2812 conformity (/away command
wihtout argument only removes away status)
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
+44
-51
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user