From d7ec339e3ea668668cbe5fb817bf9914d0265116 Mon Sep 17 00:00:00 2001 From: James Booth Date: Sat, 20 Jun 2015 00:38:28 +0100 Subject: [PATCH] Added /roster empty command --- src/command/command.c | 2 ++ src/command/commands.c | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/command/command.c b/src/command/command.c index af04f23a..43bca08b 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -204,6 +204,7 @@ static struct cmd_t command_defs[] = "size : Percentage of the screen taken up by the roster (1-99).", "add jid [nick] : Add a new item to the roster.", "remove jid : Removes an item from the roster.", + "empty : Remove all items from roster." "nick jid nick : Change a contacts nickname.", "clearnick jid : Removes the current nickname.", "", @@ -1396,6 +1397,7 @@ cmd_init(void) autocomplete_add(roster_ac, "nick"); autocomplete_add(roster_ac, "clearnick"); autocomplete_add(roster_ac, "remove"); + autocomplete_add(roster_ac, "empty"); autocomplete_add(roster_ac, "show"); autocomplete_add(roster_ac, "hide"); autocomplete_add(roster_ac, "by"); diff --git a/src/command/commands.c b/src/command/commands.c index b7b9c73a..73dc4d47 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -1640,6 +1640,23 @@ cmd_roster(ProfWin *window, gchar **args, struct cmd_help_t help) } return TRUE; + } else if (strcmp(args[0], "empty") == 0) { + if (conn_status != JABBER_CONNECTED) { + cons_show("You are not currently connected."); + return TRUE; + } + + GSList *all = roster_get_contacts(); + GSList *curr = all; + while (curr) { + PContact contact = curr->data; + roster_send_remove(p_contact_barejid(contact)); + curr = g_slist_next(curr); + } + + g_slist_free(all); + return TRUE; + // change nickname } else if (strcmp(args[0], "nick") == 0) { if (conn_status != JABBER_CONNECTED) {