changeset 2016:e9b6e168a45e

Improve checks for /group command parameters For example, "/group foo" should return an error message.
author Mikael Berthe <mikael@lilotux.net>
date Wed, 18 Jul 2012 00:24:13 +0200
parents db8ec238cd2c
children 87049d55e34f
files mcabber/mcabber/commands.c
diffstat 1 files changed, 15 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/mcabber/commands.c	Wed Jul 04 21:15:43 2012 +0200
+++ b/mcabber/mcabber/commands.c	Wed Jul 18 00:24:13 2012 +0200
@@ -1223,7 +1223,18 @@
   arg = *(paramlst+1);
 
   if (!subcmd || !*subcmd)
-    goto do_group_return;   // Should not happen anyway
+    goto do_group_return;   // Should not happen
+
+  if (!strcasecmp(subcmd, "expand") || !strcasecmp(subcmd, "unfold"))
+    group_state = group_unfold;
+  else if (!strcasecmp(subcmd, "shrink") || !strcasecmp(subcmd, "fold"))
+    group_state = group_fold;
+  else if (!strcasecmp(subcmd, "toggle"))
+    group_state = group_toggle;
+  else {
+    scr_LogPrint(LPRINT_NORMAL, "Unrecognized parameter!");
+    goto do_group_return;
+  }
 
   if (arg && *arg) {
     GSList *roster_elt;
@@ -1235,8 +1246,10 @@
   } else {
     group = buddy_getgroup(BUDDATA(current_buddy));
   }
-  if (!group)
+  if (!group) {
+    scr_LogPrint(LPRINT_NORMAL, "Group not found.");
     goto do_group_return;
+  }
 
   // We'll have to redraw the chat window if we're not currently on the group
   // entry itself, because it means we'll have to leave the current buddy
@@ -1244,23 +1257,11 @@
   leave_buddywindow = (group != BUDDATA(current_buddy) &&
                        group == buddy_getgroup(BUDDATA(current_buddy)));
 
-
   if (!(buddy_gettype(group) & ROSTER_TYPE_GROUP)) {
     scr_LogPrint(LPRINT_NORMAL, "You need to select a group.");
     goto do_group_return;
   }
 
-  if (!strcasecmp(subcmd, "expand") || !strcasecmp(subcmd, "unfold"))
-    group_state = group_unfold;
-  else if (!strcasecmp(subcmd, "shrink") || !strcasecmp(subcmd, "fold"))
-    group_state = group_fold;
-  else if (!strcasecmp(subcmd, "toggle"))
-    group_state = group_toggle;
-  else {
-    scr_LogPrint(LPRINT_NORMAL, "Unrecognized parameter!");
-    goto do_group_return;
-  }
-
   if (group_state != group_unfold && leave_buddywindow)
     scr_roster_prev_group();