# HG changeset patch # User Mikael Berthe # Date 1342563853 -7200 # Node ID e9b6e168a45e12200f486929e5786ffd64ac143e # Parent db8ec238cd2cf83560ba42a8a21927819dafa0ee Improve checks for /group command parameters For example, "/group foo" should return an error message. diff -r db8ec238cd2c -r e9b6e168a45e mcabber/mcabber/commands.c --- 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();