Add message arguement to /query

Closes #757
This commit is contained in:
TingPing 2013-09-17 18:19:02 -04:00
parent b67953c70c
commit 1007af9506
1 changed files with 27 additions and 1 deletions

View File

@ -2980,17 +2980,43 @@ static int
cmd_query (struct session *sess, char *tbuf, char *word[], char *word_eol[]) cmd_query (struct session *sess, char *tbuf, char *word[], char *word_eol[])
{ {
char *nick = word[2]; char *nick = word[2];
char *msg = word_eol[3];
char *split_text = NULL;
gboolean focus = TRUE; gboolean focus = TRUE;
int cmd_length = 13; /* " PRIVMSG ", " ", :, \r, \n */
int offset = 0;
if (strcmp (word[2], "-nofocus") == 0) if (strcmp (word[2], "-nofocus") == 0)
{ {
nick = word[3]; nick = word[3];
msg = word_eol[4];
focus = FALSE; focus = FALSE;
} }
if (*nick && !is_channel (sess->server, nick)) if (*nick && !is_channel (sess->server, nick))
{ {
open_query (sess->server, nick, focus); open_query (sess->server, nick, focus);
if (*msg)
{
if (!sess->server->connected)
{
notc_msg (sess);
return TRUE;
}
while ((split_text = split_up_text (sess, msg + offset, cmd_length, split_text)))
{
sess->server->p_message (sess->server, nick, split_text);
if (*split_text)
offset += strlen(split_text);
g_free(split_text);
}
sess->server->p_message (sess->server, nick, msg + offset);
}
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
@ -3936,7 +3962,7 @@ const struct commands xc_cmds[] = {
{"PING", cmd_ping, 1, 0, 1, {"PING", cmd_ping, 1, 0, 1,
N_("PING <nick | channel>, CTCP pings nick or channel")}, N_("PING <nick | channel>, CTCP pings nick or channel")},
{"QUERY", cmd_query, 0, 0, 1, {"QUERY", cmd_query, 0, 0, 1,
N_("QUERY [-nofocus] <nick>, opens up a new privmsg window to someone")}, N_("QUERY [-nofocus] <nick> [message], opens up a new privmsg window to someone and optionally sends a message")},
{"QUIET", cmd_quiet, 1, 1, 1, {"QUIET", cmd_quiet, 1, 1, 1,
N_("QUIET <mask> [<quiettype>], quiet everyone matching the mask in the current channel if supported by the server.")}, N_("QUIET <mask> [<quiettype>], quiet everyone matching the mask in the current channel if supported by the server.")},
{"QUIT", cmd_quit, 0, 0, 1, {"QUIT", cmd_quit, 0, 0, 1,