diff options
author | Michael Vetter <jubalh@iodoru.org> | 2019-11-05 22:06:19 +0100 |
---|---|---|
committer | Michael Vetter <jubalh@iodoru.org> | 2019-11-05 22:06:19 +0100 |
commit | c1a97362328c0507bf6d8ba1dbdec4ac2c29644a (patch) | |
tree | fbb13e2297f3632f8f24af3c248ff1aa1c990c4f /src/command/cmd_funcs.c | |
parent | 40dc5932f71ccb6bd67f4fd8365749a0ddecbf71 (diff) | |
download | profani-tty-c1a97362328c0507bf6d8ba1dbdec4ac2c29644a.tar.gz |
Merge /invite, /invites and /decline commands
`/invite <contact>` became `/invite send <contact>. `/invites` became `/invite list`. `/decline` became `/invite decline`. Accept is still done via `/join`. Regards https://github.com/profanity-im/profanity/issues/1116
Diffstat (limited to 'src/command/cmd_funcs.c')
-rw-r--r-- | src/command/cmd_funcs.c | 72 |
1 files changed, 32 insertions, 40 deletions
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index 3a8ae2de..e8c99901 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -3660,8 +3660,6 @@ cmd_join(ProfWin *window, const char *const command, gchar **args) gboolean cmd_invite(ProfWin *window, const char *const command, gchar **args) { - char *contact = args[0]; - char *reason = args[1]; jabber_conn_status_t conn_status = connection_get_status(); if (conn_status != JABBER_CONNECTED) { @@ -3669,47 +3667,41 @@ cmd_invite(ProfWin *window, const char *const command, gchar **args) return TRUE; } - if (window->type != WIN_MUC) { - cons_show("You must be in a chat room to send an invite."); - return TRUE; - } - - char *usr_jid = roster_barejid_from_name(contact); - if (usr_jid == NULL) { - usr_jid = contact; - } - - ProfMucWin *mucwin = (ProfMucWin*)window; - assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - message_send_invite(mucwin->roomjid, usr_jid, reason); - if (reason) { - cons_show("Room invite sent, contact: %s, room: %s, reason: \"%s\".", - contact, mucwin->roomjid, reason); - } else { - cons_show("Room invite sent, contact: %s, room: %s.", - contact, mucwin->roomjid); - } + if (g_strcmp0(args[0], "send") == 0) { + char *contact = args[1]; + char *reason = args[2]; - return TRUE; -} + if (window->type != WIN_MUC) { + cons_show("You must be in a chat room to send an invite."); + return TRUE; + } -gboolean -cmd_invites(ProfWin *window, const char *const command, gchar **args) -{ - GList *invites = muc_invites(); - cons_show_room_invites(invites); - g_list_free_full(invites, g_free); - return TRUE; -} + char *usr_jid = roster_barejid_from_name(contact); + if (usr_jid == NULL) { + usr_jid = contact; + } -gboolean -cmd_decline(ProfWin *window, const char *const command, gchar **args) -{ - if (!muc_invites_contain(args[0])) { - cons_show("No such invite exists."); - } else { - muc_invites_remove(args[0]); - cons_show("Declined invite to %s.", args[0]); + ProfMucWin *mucwin = (ProfMucWin*)window; + assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); + message_send_invite(mucwin->roomjid, usr_jid, reason); + if (reason) { + cons_show("Room invite sent, contact: %s, room: %s, reason: \"%s\".", + contact, mucwin->roomjid, reason); + } else { + cons_show("Room invite sent, contact: %s, room: %s.", + contact, mucwin->roomjid); + } + } else if (g_strcmp0(args[0], "list") == 0) { + GList *invites = muc_invites(); + cons_show_room_invites(invites); + g_list_free_full(invites, g_free); + } else if (g_strcmp0(args[0], "decline") == 0) { + if (!muc_invites_contain(args[1])) { + cons_show("No such invite exists."); + } else { + muc_invites_remove(args[1]); + cons_show("Declined invite to %s.", args[1]); + } } return TRUE; |