Allow to use cmd without being in a window

This commit is contained in:
Paul Fariello
2018-07-02 08:10:01 +03:20
parent e555e41eaf
commit ec5fc3612f
3 changed files with 18 additions and 9 deletions

View File

@@ -2308,8 +2308,8 @@ static struct cmd_t command_defs[] =
CMD_NOMAINFUNC CMD_NOMAINFUNC
CMD_NOTAGS CMD_NOTAGS
CMD_SYN( CMD_SYN(
"/cmd list", "/cmd list [<jid>]",
"/cmd exec <command>") "/cmd exec <command> [<jid>]")
CMD_DESC( CMD_DESC(
"Execute ad hoc commands.") "Execute ad hoc commands.")
CMD_ARGS( CMD_ARGS(

View File

@@ -7484,9 +7484,12 @@ cmd_command_list(ProfWin *window, const char *const command, gchar **args)
return TRUE; return TRUE;
} }
ProfMucWin *mucwin = (ProfMucWin*)window; char *jid = args[1];
if (jid == NULL) {
iq_command_list(mucwin->roomjid); ProfMucWin *mucwin = (ProfMucWin*)window;
jid = mucwin->roomjid;
}
iq_command_list(jid);
cons_show("List available ad hoc commands"); cons_show("List available ad hoc commands");
return TRUE; return TRUE;
@@ -7507,9 +7510,13 @@ cmd_command_exec(ProfWin *window, const char *const command, gchar **args)
return TRUE; 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]); cons_show("Execute %s...", args[1]);
return TRUE; return TRUE;

View File

@@ -1118,9 +1118,11 @@ _command_list_result_handler(xmpp_stanza_t *const stanza, void *const userdata)
} }
ProfWin *win = wins_get_by_string(from); ProfWin *win = wins_get_by_string(from);
if (win) { if (win == NULL) {
win_handle_command_list(win, cmds); win = wins_get_console();
} }
win_handle_command_list(win, cmds);
g_slist_free(cmds); g_slist_free(cmds);
free(from); free(from);