1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-27 05:16:38 +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:
Sebastien Helleu
2006-01-08 01:22:25 +00:00
parent dd39ac2432
commit b1f83dce8a
18 changed files with 94 additions and 192 deletions
+2
View File
@@ -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)
-7
View File
@@ -762,13 +762,6 @@
<entry></entry>
<entry>Display message to all channels when (un)marking as away</entry>
</row>
<row>
<entry><option>irc_default_msg_away</option></entry>
<entry>string</entry>
<entry>any string</entry>
<entry></entry>
<entry>Default message when away</entry>
</row>
<row>
<entry><option>irc_default_msg_part</option></entry>
<entry>string</entry>
-4
View File
@@ -1686,10 +1686,6 @@ plugin->msg_handler_add (plugin, "KICK", &amp;msg_kick, NULL, NULL);
<entry><literal>%w</literal></entry>
<entry>WeeChat commands</entry>
</row>
<row>
<entry><literal>%y</literal></entry>
<entry>default "away" message</entry>
</row>
</tbody>
</tgroup>
</informaltable>
+1 -8
View File
@@ -759,16 +759,9 @@
<entry><option>irc_display_away</option></entry>
<entry>booléen</entry>
<entry>'on' ou 'off'</entry>
<entry>'on'</entry>
<entry>'off'</entry>
<entry>Affiche un message sur tous les canaux pour l'absence/le retour</entry>
</row>
<row>
<entry><option>irc_default_msg_away</option></entry>
<entry>chaîne</entry>
<entry>toute chaîne</entry>
<entry>'away'</entry>
<entry>Message par défaut pour l'absence</entry>
</row>
<row>
<entry><option>irc_default_msg_part</option></entry>
<entry>chaîne</entry>
-4
View File
@@ -1715,10 +1715,6 @@ plugin->msg_handler_add (plugin, "KICK", &amp;msg_kick, NULL, NULL);
<entry><literal>%w</literal></entry>
<entry>commandes WeeChat</entry>
</row>
<row>
<entry><literal>%y</literal></entry>
<entry>message d'absence ("away") par défaut</entry>
</row>
</tbody>
</tgroup>
</informaltable>
-16
View File
@@ -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;
-5
View File
@@ -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,
-1
View File
@@ -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
View File
@@ -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;
+2
View File
@@ -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)
-7
View File
@@ -762,13 +762,6 @@
<entry></entry>
<entry>Display message to all channels when (un)marking as away</entry>
</row>
<row>
<entry><option>irc_default_msg_away</option></entry>
<entry>string</entry>
<entry>any string</entry>
<entry></entry>
<entry>Default message when away</entry>
</row>
<row>
<entry><option>irc_default_msg_part</option></entry>
<entry>string</entry>
-4
View File
@@ -1686,10 +1686,6 @@ plugin->msg_handler_add (plugin, "KICK", &amp;msg_kick, NULL, NULL);
<entry><literal>%w</literal></entry>
<entry>WeeChat commands</entry>
</row>
<row>
<entry><literal>%y</literal></entry>
<entry>default "away" message</entry>
</row>
</tbody>
</tgroup>
</informaltable>
+1 -8
View File
@@ -759,16 +759,9 @@
<entry><option>irc_display_away</option></entry>
<entry>booléen</entry>
<entry>'on' ou 'off'</entry>
<entry>'on'</entry>
<entry>'off'</entry>
<entry>Affiche un message sur tous les canaux pour l'absence/le retour</entry>
</row>
<row>
<entry><option>irc_default_msg_away</option></entry>
<entry>chaîne</entry>
<entry>toute chaîne</entry>
<entry>'away'</entry>
<entry>Message par défaut pour l'absence</entry>
</row>
<row>
<entry><option>irc_default_msg_part</option></entry>
<entry>chaîne</entry>
-4
View File
@@ -1715,10 +1715,6 @@ plugin->msg_handler_add (plugin, "KICK", &amp;msg_kick, NULL, NULL);
<entry><literal>%w</literal></entry>
<entry>commandes WeeChat</entry>
</row>
<row>
<entry><literal>%y</literal></entry>
<entry>message d'absence ("away") par défaut</entry>
</row>
</tbody>
</tgroup>
</informaltable>
-16
View File
@@ -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;
-5
View File
@@ -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,
-1
View File
@@ -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
View File
@@ -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;