diff options
author | Paul Fariello <paul@fariello.eu> | 2018-03-22 04:47:52 +0220 |
---|---|---|
committer | Paul Fariello <paul@fariello.eu> | 2018-09-05 13:49:40 +0200 |
commit | c9f6a78f574ce2a90ae7871a08a5ddcfb9ab7270 (patch) | |
tree | f56d2e25e1d5d127c57dd78c82634674774687f7 /src/command/cmd_funcs.c | |
parent | ca022ec75e12d28e6ce71447fe877b90518de310 (diff) | |
download | profani-tty-c9f6a78f574ce2a90ae7871a08a5ddcfb9ab7270.tar.gz |
Add command subcommands: list and exec
Also handle list result
Diffstat (limited to 'src/command/cmd_funcs.c')
-rw-r--r-- | src/command/cmd_funcs.c | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index 048bdd6c..2e606ef5 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -7470,7 +7470,7 @@ cmd_encwarn(ProfWin *window, const char *const command, gchar **args) } gboolean -cmd_command(ProfWin *window, const char *const command, gchar **args) +cmd_command_list(ProfWin *window, const char *const command, gchar **args) { jabber_conn_status_t conn_status = connection_get_status(); @@ -7479,14 +7479,37 @@ cmd_command(ProfWin *window, const char *const command, gchar **args) return TRUE; } - if (args[0] == NULL && connection_supports(XMPP_FEATURE_COMMANDS) == FALSE) { + if (connection_supports(XMPP_FEATURE_COMMANDS) == FALSE) { cons_show("Server does not support ad hoc commands."); return TRUE; } ProfMucWin *mucwin = (ProfMucWin*)window; - iq_send_command(mucwin->roomjid, args[0]); + iq_command_list(mucwin->roomjid); + + cons_show("List available ad hoc commands"); + return TRUE; +} + +gboolean +cmd_command_exec(ProfWin *window, const char *const command, gchar **args) +{ + jabber_conn_status_t conn_status = connection_get_status(); + + if (conn_status != JABBER_CONNECTED) { + cons_show("You are not currently connected."); + return TRUE; + } + + if (connection_supports(XMPP_FEATURE_COMMANDS) == FALSE) { + cons_show("Server does not support ad hoc commands."); + return TRUE; + } + + ProfMucWin *mucwin = (ProfMucWin*)window; + + iq_command_exec(mucwin->roomjid, args[0]); cons_show("Execute %s...", args[0]); return TRUE; |