# HG changeset patch # User Mikael Berthe # Date 1194730096 -3600 # Node ID 43e777a5ff0640ea571b70951472a2f78bea80ed # Parent 096411233fce798b00bc76daab2fe1a74d2d98f8 The group name can be specified in the /group command diff -r 096411233fce -r 43e777a5ff06 mcabber/doc/help/de/hlp_group.txt --- a/mcabber/doc/help/de/hlp_group.txt Sat Nov 10 22:14:57 2007 +0100 +++ b/mcabber/doc/help/de/hlp_group.txt Sat Nov 10 22:28:16 2007 +0100 @@ -1,11 +1,11 @@ - /GROUP fold|unfold|toggle + /GROUP fold|unfold|toggle [groupname] Dieser Befehl verändert die Anzeige der gerade ausgewählten Gruppe -/group fold +/group fold [groupname] Verstecke die gerade ausgewählte Gruppe -/group unfold +/group unfold [groupname] Die Gruppen-Ansicht aufklappen -/group toggle +/group toggle [groupname] Verstecken/Aufklappen der ausgewählten Gruppe diff -r 096411233fce -r 43e777a5ff06 mcabber/doc/help/en/hlp_group.txt --- a/mcabber/doc/help/en/hlp_group.txt Sat Nov 10 22:14:57 2007 +0100 +++ b/mcabber/doc/help/en/hlp_group.txt Sat Nov 10 22:28:16 2007 +0100 @@ -1,11 +1,11 @@ - /GROUP fold|unfold|toggle + /GROUP fold|unfold|toggle [groupname] This command changes the current group display. -/group fold - Fold (shrink) the current group tree in the roster -/group unfold - Unfold (expand) the current group tree in the roster -/group toggle - Toggle the state (fold/unfold) of the current tree +/group fold [groupname] + Fold (shrink) the current/specified group tree in the roster +/group unfold [groupname] + Unfold (expand) the current/specified group tree in the roster +/group toggle [groupname] + Toggle the state (fold/unfold) of the current/specified tree diff -r 096411233fce -r 43e777a5ff06 mcabber/doc/help/fr/hlp_group.txt --- a/mcabber/doc/help/fr/hlp_group.txt Sat Nov 10 22:14:57 2007 +0100 +++ b/mcabber/doc/help/fr/hlp_group.txt Sat Nov 10 22:28:16 2007 +0100 @@ -1,11 +1,11 @@ - /GROUP fold|unfold|toggle + /GROUP fold|unfold|toggle [groupname] Cette commande permet de modifier l'affichage des groupes. -/group fold +/group fold [groupname] Plie (cache) l'arborescence du groupe sélectionné -/group unfold +/group unfold [groupname] Déplie (montre) l'arborescence du groupe sélectionné -/group toggle +/group toggle [groupname] Inverse l'état (plié/déplié) du groupe sélectionné diff -r 096411233fce -r 43e777a5ff06 mcabber/doc/help/it/hlp_group.txt --- a/mcabber/doc/help/it/hlp_group.txt Sat Nov 10 22:14:57 2007 +0100 +++ b/mcabber/doc/help/it/hlp_group.txt Sat Nov 10 22:28:16 2007 +0100 @@ -1,11 +1,11 @@ - /GROUP fold|unfold|toggle + /GROUP fold|unfold|toggle [groupname] Questo comando cambia la visualizzazione del gruppo corrente. -/group fold +/group fold [groupname] Chiude (collassa) l'albero del gruppo corrente nel roster -/group unfold +/group unfold [groupname] Apre (espande) l'albero del gruppo corrente nel roster -/group toggle +/group toggle [groupname] Cambia lo stato (collassato/espanso) dell'albero corrente diff -r 096411233fce -r 43e777a5ff06 mcabber/doc/help/nl/hlp_group.txt --- a/mcabber/doc/help/nl/hlp_group.txt Sat Nov 10 22:14:57 2007 +0100 +++ b/mcabber/doc/help/nl/hlp_group.txt Sat Nov 10 22:28:16 2007 +0100 @@ -1,11 +1,11 @@ - /GROUP fold|unfold|toggle + /GROUP fold|unfold|toggle [groupname] Dit commando verandert het aanzicht van de huidige groep. -/group fold +/group fold [groupname] Verbergen (inklappen) van de huidige group in het roster -/group unfold +/group unfold [groupname] Tonen (uitklappen) van de huidige group in het roster -/group toggle +/group toggle [groupname] Omschakelen van het aanzicht van de huidige groep (in-/uitklappen) diff -r 096411233fce -r 43e777a5ff06 mcabber/doc/help/pl/hlp_group.txt --- a/mcabber/doc/help/pl/hlp_group.txt Sat Nov 10 22:14:57 2007 +0100 +++ b/mcabber/doc/help/pl/hlp_group.txt Sat Nov 10 22:28:16 2007 +0100 @@ -1,11 +1,11 @@ - /GROUP fold|unfold|toggle + /GROUP fold|unfold|toggle [groupname] To polecenie pozwala zarządzać sposobem wyświetlania grupy. -/group fold +/group fold [groupname] Zwija obecne drzewo grupy w liście kontaktów -/group unfold +/group unfold [groupname] Rozwija obecne drzewo grupy w liście kontaktów -/group toggle +/group toggle [groupname] Przełącza między stanem (zwinięty/rozwinięty) w obecnym drzewie grupy diff -r 096411233fce -r 43e777a5ff06 mcabber/doc/help/ru/hlp_group.txt --- a/mcabber/doc/help/ru/hlp_group.txt Sat Nov 10 22:14:57 2007 +0100 +++ b/mcabber/doc/help/ru/hlp_group.txt Sat Nov 10 22:28:16 2007 +0100 @@ -1,11 +1,11 @@ - /GROUP fold|unfold|toggle + /GROUP fold|unfold|toggle [groupname] Эта команда управляет отображением списка пользователей определенной группы в списке контактов. -/group fold +/group fold [groupname] Сворачивает (закрывает) текущий развернутый список пользователей определенной группы в списке контактов -/group unfold +/group unfold [groupname] Разворачивает (раскрывает) текущий свернутый список пользователей определенной группы в списке контактов -/group toggle +/group toggle [groupname] Отображает текущее состояние (свернуто\развернуто) списка определенной группы в списке контактов diff -r 096411233fce -r 43e777a5ff06 mcabber/doc/help/uk/hlp_group.txt --- a/mcabber/doc/help/uk/hlp_group.txt Sat Nov 10 22:14:57 2007 +0100 +++ b/mcabber/doc/help/uk/hlp_group.txt Sat Nov 10 22:28:16 2007 +0100 @@ -1,11 +1,11 @@ - /GROUP fold|unfold|toggle + /GROUP fold|unfold|toggle [groupname] Змінює відображення поточної групи. -/group fold +/group fold [groupname] Згорнути дерево поточної групи у списку. -/group unfold +/group unfold [groupname] Розгорнути дерево поточної групи у списку. -/group toggle +/group toggle [groupname] Змінити стан відображення поточної групи. diff -r 096411233fce -r 43e777a5ff06 mcabber/src/commands.c --- a/mcabber/src/commands.c Sat Nov 10 22:14:57 2007 +0100 +++ b/mcabber/src/commands.c Sat Nov 10 22:28:16 2007 +0100 @@ -989,8 +989,10 @@ static void do_group(char *arg) { - gpointer group; + gpointer group = NULL; guint leave_buddywindow; + char **paramlst; + char *subcmd; if (!*arg) { scr_LogPrint(LPRINT_NORMAL, "Missing parameter."); @@ -1000,9 +1002,23 @@ if (!current_buddy) return; - group = buddy_getgroup(BUDDATA(current_buddy)); + paramlst = split_arg(arg, 2, 1); // subcmd, [arg] + subcmd = *paramlst; + arg = *(paramlst+1); + + if (!subcmd || !*subcmd) + goto do_group_return; // Should not happen anyway + + if (arg && *arg) { + GSList *roster_elt; + roster_elt = roster_find(arg, namesearch, ROSTER_TYPE_GROUP); + if (roster_elt) + group = buddy_getgroup(roster_elt->data); + } else { + group = buddy_getgroup(BUDDATA(current_buddy)); + } if (!group) - return; + 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 @@ -1011,24 +1027,28 @@ if (!(buddy_gettype(group) & ROSTER_TYPE_GROUP)) { scr_LogPrint(LPRINT_NORMAL, "You need to select a group."); - return; + goto do_group_return; } - if (!strcasecmp(arg, "expand") || !strcasecmp(arg, "unfold")) { + if (!strcasecmp(subcmd, "expand") || !strcasecmp(subcmd, "unfold")) { buddy_setflags(group, ROSTER_FLAG_HIDE, FALSE); - } else if (!strcasecmp(arg, "shrink") || !strcasecmp(arg, "fold")) { + } else if (!strcasecmp(subcmd, "shrink") || !strcasecmp(subcmd, "fold")) { buddy_setflags(group, ROSTER_FLAG_HIDE, TRUE); - } else if (!strcasecmp(arg, "toggle")) { + } else if (!strcasecmp(subcmd, "toggle")) { buddy_setflags(group, ROSTER_FLAG_HIDE, - !(buddy_getflags(group) & ROSTER_FLAG_HIDE)); + !(buddy_getflags(group) & ROSTER_FLAG_HIDE)); } else { scr_LogPrint(LPRINT_NORMAL, "Unrecognized parameter!"); - return; + goto do_group_return; } buddylist_build(); update_roster = TRUE; - if (leave_buddywindow) scr_ShowBuddyWindow(); + if (leave_buddywindow) + scr_ShowBuddyWindow(); + +do_group_return: + free_arg_lst(paramlst); } static int send_message_to(const char *fjid, const char *msg, const char *subj,