From 20cc063b687d1db1f978c0a45607863b3a33f096 Mon Sep 17 00:00:00 2001 From: Doug Kearns Date: Tue, 5 Jul 2011 19:33:46 +1000 Subject: [PATCH] Add bang support to :delgroup to delete all groups. --- common/locale/en-US/repeat.xml | 5 ++++- common/modules/contexts.jsm | 15 ++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/common/locale/en-US/repeat.xml b/common/locale/en-US/repeat.xml index 41db7e4b..cc44e4d6 100644 --- a/common/locale/en-US/repeat.xml +++ b/common/locale/en-US/repeat.xml @@ -189,10 +189,13 @@ + :delgr :delgroup :delgroup group + :delgroup!

- Delete the specified group. + Delete the specified group. With ! delete all + user groups.

diff --git a/common/modules/contexts.jsm b/common/modules/contexts.jsm index febafca4..d4df4a8f 100644 --- a/common/modules/contexts.jsm +++ b/common/modules/contexts.jsm @@ -570,12 +570,21 @@ var Contexts = Module("contexts", { commands.add(["delg[roup]"], "Delete a group", function (args) { - util.assert(contexts.getGroup(args[0]), _("group.noSuch", args[0])); - contexts.removeGroup(args[0]); + util.assert(args.bang ^ !!args[0], _("error.argumentOrBang")); + + if (args.bang) + contexts.groupList = contexts.groupList.filter(function (g) g.builtin); + else { + util.assert(contexts.getGroup(args[0]), _("group.noSuch", args[0])); + contexts.removeGroup(args[0]); + } }, { - argCount: "1", + argCount: "?", + bang: true, completer: function (context, args) { + if (args.bang) + return; modules.completion.group(context); context.filters.push(function ({ item }) !item.builtin); }