Mercurial > hg
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();