mirror of
https://github.com/irssi/irssi.git
synced 2024-11-03 04:27:19 -05:00
Merge pull request #453 from LemonBoy/dcc-quote
Support quoted filenames in some /DCC commands
This commit is contained in:
commit
1349755bb5
@ -36,10 +36,10 @@
|
||||
%9Examples:%9
|
||||
|
||||
/DCC CHAT mike
|
||||
/DCC GET bob summer vacation.mkv
|
||||
/DCC GET bob "summer vacation.mkv"
|
||||
/DCC SEND sarah "summer vacation.mkv"
|
||||
/DCC CLOSE get mike
|
||||
/DCC CLOSE send bob summer vacation.mkv
|
||||
/DCC CLOSE send bob "summer vacation.mkv"
|
||||
|
||||
%9See also:%9 CD
|
||||
|
||||
|
@ -526,14 +526,14 @@ void cmd_dcc_receive(const char *data, DCC_GET_FUNC accept_func,
|
||||
{
|
||||
GET_DCC_REC *dcc;
|
||||
GSList *tmp, *next;
|
||||
char *nick, *fname;
|
||||
char *nick, *arg, *fname;
|
||||
void *free_arg;
|
||||
int found;
|
||||
|
||||
g_return_if_fail(data != NULL);
|
||||
|
||||
if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST,
|
||||
&nick, &fname))
|
||||
if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST |
|
||||
PARAM_FLAG_STRIP_TRAILING_WS, &nick, &arg))
|
||||
return;
|
||||
|
||||
if (*nick == '\0') {
|
||||
@ -548,6 +548,8 @@ void cmd_dcc_receive(const char *data, DCC_GET_FUNC accept_func,
|
||||
return;
|
||||
}
|
||||
|
||||
fname = cmd_get_quoted_param(&arg);
|
||||
|
||||
found = FALSE;
|
||||
for (tmp = dcc_conns; tmp != NULL; tmp = next) {
|
||||
GET_DCC_REC *dcc = tmp->data;
|
||||
|
@ -490,7 +490,7 @@ static void event_no_such_nick(IRC_SERVER_REC *server, char *data)
|
||||
static void cmd_dcc_close(char *data, IRC_SERVER_REC *server)
|
||||
{
|
||||
GSList *tmp, *next;
|
||||
char *typestr, *nick, *arg;
|
||||
char *typestr, *nick, *arg, *fname;
|
||||
void *free_arg;
|
||||
int found, type;
|
||||
|
||||
@ -510,13 +510,15 @@ static void cmd_dcc_close(char *data, IRC_SERVER_REC *server)
|
||||
return;
|
||||
}
|
||||
|
||||
fname = cmd_get_quoted_param(&arg);
|
||||
|
||||
found = FALSE;
|
||||
for (tmp = dcc_conns; tmp != NULL; tmp = next) {
|
||||
DCC_REC *dcc = tmp->data;
|
||||
|
||||
next = tmp->next;
|
||||
if (dcc->type == type && g_ascii_strcasecmp(dcc->nick, nick) == 0 &&
|
||||
(*arg == '\0' || g_strcmp0(dcc->arg, arg) == 0)) {
|
||||
(*fname == '\0' || g_strcmp0(dcc->arg, fname) == 0)) {
|
||||
dcc_reject(dcc, server);
|
||||
found = TRUE;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user