summaryrefslogtreecommitdiff
path: root/src/plugins/irc/irc-command.c
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2009-02-10 13:01:04 +0100
committerSebastien Helleu <flashcode@flashtux.org>2009-02-10 13:01:04 +0100
commit0d4513a137ad6a39fa077a0efae50d00e8051763 (patch)
treeca69ded6afd569dc0d740c422023f95839d200db /src/plugins/irc/irc-command.c
parente42e3e309e95875206397aeb4b8faaa396c2407b (diff)
downloadweechat-0d4513a137ad6a39fa077a0efae50d00e8051763.zip
Authorize IRC commands msg/notice/query/quote outside IRC buffers if option "-server" is given
Diffstat (limited to 'src/plugins/irc/irc-command.c')
-rw-r--r--src/plugins/irc/irc-command.c31
1 files changed, 13 insertions, 18 deletions
diff --git a/src/plugins/irc/irc-command.c b/src/plugins/irc/irc-command.c
index e99c83064..c98a4f40c 100644
--- a/src/plugins/irc/irc-command.c
+++ b/src/plugins/irc/irc-command.c
@@ -1987,12 +1987,9 @@ irc_command_msg (void *data, struct t_gui_buffer *buffer, int argc,
char *string;
IRC_GET_SERVER_CHANNEL(buffer);
- if (!ptr_server || !ptr_server->is_connected)
- return WEECHAT_RC_ERROR;
/* make C compiler happy */
(void) data;
- (void) argv_eol;
if (argc <= 2)
{
@@ -2005,13 +2002,14 @@ irc_command_msg (void *data, struct t_gui_buffer *buffer, int argc,
if ((argc >= 5) && (weechat_strcasecmp (argv[1], "-server") == 0))
{
ptr_server = irc_server_search (argv[2]);
- if (!ptr_server || !ptr_server->is_connected)
- return WEECHAT_RC_ERROR;
ptr_channel = NULL;
arg_target = 3;
arg_text = 4;
}
+ if (!ptr_server || !ptr_server->is_connected)
+ return WEECHAT_RC_ERROR;
+
targets = weechat_string_explode (argv[arg_target], ",", 0, 0,
&num_targets);
if (targets)
@@ -2245,13 +2243,10 @@ irc_command_notice (void *data, struct t_gui_buffer *buffer, int argc,
int arg_nick, arg_text;
IRC_GET_SERVER(buffer);
- if (!ptr_server || !ptr_server->is_connected)
- return WEECHAT_RC_ERROR;
/* make C compiler happy */
(void) data;
- (void) argv;
-
+
if (argc > 2)
{
arg_nick = 1;
@@ -2259,11 +2254,13 @@ irc_command_notice (void *data, struct t_gui_buffer *buffer, int argc,
if ((argc >= 5) && (weechat_strcasecmp (argv[1], "-server") == 0))
{
ptr_server = irc_server_search (argv[2]);
- if (!ptr_server || !ptr_server->is_connected)
- return WEECHAT_RC_ERROR;
arg_nick = 3;
arg_text = 4;
}
+
+ if (!ptr_server || !ptr_server->is_connected)
+ return WEECHAT_RC_ERROR;
+
string = irc_color_decode (argv_eol[arg_text],
weechat_config_boolean (irc_config_network_colors_receive));
weechat_printf (ptr_server->buffer,
@@ -2511,8 +2508,6 @@ irc_command_query (void *data, struct t_gui_buffer *buffer, int argc,
int arg_nick, arg_text;
IRC_GET_SERVER_CHANNEL(buffer);
- if (!ptr_server || !ptr_server->is_connected)
- return WEECHAT_RC_ERROR;
/* make C compiler happy */
(void) data;
@@ -2524,12 +2519,13 @@ irc_command_query (void *data, struct t_gui_buffer *buffer, int argc,
if ((argc >= 4) && (weechat_strcasecmp (argv[1], "-server") == 0))
{
ptr_server = irc_server_search (argv[2]);
- if (!ptr_server || !ptr_server->is_connected)
- return WEECHAT_RC_ERROR;
arg_nick = 3;
arg_text = 4;
}
+ if (!ptr_server || !ptr_server->is_connected)
+ return WEECHAT_RC_ERROR;
+
/* create private window if not already opened */
ptr_channel = irc_channel_search (ptr_server, argv[arg_nick]);
if (!ptr_channel)
@@ -2579,12 +2575,9 @@ irc_command_quote (void *data, struct t_gui_buffer *buffer, int argc,
char **argv, char **argv_eol)
{
IRC_GET_SERVER(buffer);
- if (!ptr_server || (ptr_server->sock < 0))
- return WEECHAT_RC_ERROR;
/* make C compiler happy */
(void) data;
- (void) argv;
if (argc > 1)
{
@@ -2597,6 +2590,8 @@ irc_command_quote (void *data, struct t_gui_buffer *buffer, int argc,
}
else
{
+ if (!ptr_server || (ptr_server->sock < 0))
+ return WEECHAT_RC_ERROR;
irc_server_sendf (ptr_server, "%s", argv_eol[1]);
}
}