From ec5fc3612fd46cc3661f5ec6988e54900f271447 Mon Sep 17 00:00:00 2001 From: Paul Fariello Date: Mon, 2 Jul 2018 08:10:01 +0320 Subject: Allow to use cmd without being in a window --- src/command/cmd_defs.c | 4 ++-- src/command/cmd_funcs.c | 17 ++++++++++++----- src/xmpp/iq.c | 6 ++++-- 3 files changed, 18 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index deffd954..b3bfa22d 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -2308,8 +2308,8 @@ static struct cmd_t command_defs[] = CMD_NOMAINFUNC CMD_NOTAGS CMD_SYN( - "/cmd list", - "/cmd exec ") + "/cmd list []", + "/cmd exec []") CMD_DESC( "Execute ad hoc commands.") CMD_ARGS( diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index 475a81b4..f067d67a 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -7484,9 +7484,12 @@ cmd_command_list(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfMucWin *mucwin = (ProfMucWin*)window; - - iq_command_list(mucwin->roomjid); + char *jid = args[1]; + if (jid == NULL) { + ProfMucWin *mucwin = (ProfMucWin*)window; + jid = mucwin->roomjid; + } + iq_command_list(jid); cons_show("List available ad hoc commands"); return TRUE; @@ -7507,9 +7510,13 @@ cmd_command_exec(ProfWin *window, const char *const command, gchar **args) return TRUE; } - ProfMucWin *mucwin = (ProfMucWin*)window; + char *jid = args[2]; + if (jid == NULL) { + ProfMucWin *mucwin = (ProfMucWin*)window; + jid = mucwin->roomjid; + } - iq_command_exec(mucwin->roomjid, args[1]); + iq_command_exec(jid, args[1]); cons_show("Execute %s...", args[1]); return TRUE; diff --git a/src/xmpp/iq.c b/src/xmpp/iq.c index 337701bc..9204f196 100644 --- a/src/xmpp/iq.c +++ b/src/xmpp/iq.c @@ -1118,9 +1118,11 @@ _command_list_result_handler(xmpp_stanza_t *const stanza, void *const userdata) } ProfWin *win = wins_get_by_string(from); - if (win) { - win_handle_command_list(win, cmds); + if (win == NULL) { + win = wins_get_console(); } + + win_handle_command_list(win, cmds); g_slist_free(cmds); free(from); -- cgit 1.4.1-2-gfad0