Mercurial > ~mikael > mcabber > hg
diff mcabber/src/commands.c @ 166:aa5b635520ef
[/trunk] Changeset 178 by mikael
* Allow /group command to act on groups' buddies
* Add buddy_getgroup()
author | mikael |
---|---|
date | Wed, 04 May 2005 17:11:59 +0000 |
parents | faf534be8ff0 |
children | 4ce9ff808baa |
line wrap: on
line diff
--- a/mcabber/src/commands.c Wed May 04 09:07:49 2005 +0000 +++ b/mcabber/src/commands.c Wed May 04 17:11:59 2005 +0000 @@ -286,24 +286,26 @@ void do_group(char *arg) { gpointer group; + guint leave_windowbuddy; if (!arg || (*arg == 0)) { scr_LogPrint("Missing parameter"); return; } - if (!current_buddy) - return; + if (!current_buddy) return; - group = BUDDATA(current_buddy); + group = buddy_getgroup(BUDDATA(current_buddy)); + leave_windowbuddy = (group != BUDDATA(current_buddy)); + if (!(buddy_gettype(group) & ROSTER_TYPE_GROUP)) { - scr_LogPrint("For now you need to select a group " - "before using /group"); + scr_LogPrint("You need to select a group"); return; } - if (!strcasecmp(arg, "expand")) { + + if (!strcasecmp(arg, "expand") || !strcasecmp(arg, "unfold")) { buddy_setflags(group, ROSTER_FLAG_HIDE, FALSE); - } else if (!strcasecmp(arg, "shrink")) { + } else if (!strcasecmp(arg, "shrink") || !strcasecmp(arg, "fold")) { buddy_setflags(group, ROSTER_FLAG_HIDE, TRUE); } else if (!strcasecmp(arg, "toggle")) { buddy_setflags(group, ROSTER_FLAG_HIDE, @@ -315,6 +317,7 @@ buddylist_build(); update_roster = TRUE; + if (leave_windowbuddy) scr_ShowBuddyWindow(); } void do_say(char *arg)