aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/user-guide/commands.xml8
-rw-r--r--root_commands.c31
2 files changed, 37 insertions, 2 deletions
diff --git a/doc/user-guide/commands.xml b/doc/user-guide/commands.xml
index a21153ef..a13956ec 100644
--- a/doc/user-guide/commands.xml
+++ b/doc/user-guide/commands.xml
@@ -1783,11 +1783,15 @@
<bitlbee-command name="group">
<short-description>Contact group management</short-description>
- <syntax>group list</syntax>
+ <syntax>group [ list | info &lt;group&gt; ]</syntax>
<description>
<para>
- Only the <emphasis>group list</emphasis> command is supported at the moment, which shows a list of all groups defined so far.
+ The <emphasis>group list</emphasis> command shows a list of all groups defined so far.
+ </para>
+
+ <para>
+ The <emphasis>group info</emphasis> command shows a list of all members of a the group &lt;group&gt;.
</para>
<para>
diff --git a/root_commands.c b/root_commands.c
index d4adfa81..6c10346e 100644
--- a/root_commands.c
+++ b/root_commands.c
@@ -1290,6 +1290,37 @@ static void cmd_group( irc_t *irc, char **cmd )
}
irc_rootmsg( irc, "End of group list" );
}
+ else if( g_strncasecmp(cmd[1], "info", len ) == 0 )
+ {
+ bee_group_t *bg = NULL;
+ int n = 0;
+
+ MIN_ARGS(2);
+
+ for( l = irc->b->groups; l; l = l->next )
+ {
+ bee_group_t *bg = l->data;
+ if( !strcmp( bg->name, cmd[2] ) )
+ {
+ bg = l->data;
+ break;
+ }
+ }
+ if( bg )
+ {
+ if( strchr(irc->umode, 'b') )
+ irc_rootmsg( irc, "Members of %s:", cmd[2] );
+ for( l = irc->b->users; l; l = l->next )
+ {
+ bee_user_t *bu = l->data;
+ if( bu->group == bg )
+ irc_rootmsg( irc, "%d. %s", n ++, bu->nick ? : bu->handle );
+ }
+ irc_rootmsg( irc, "End of member list" );
+ }
+ else
+ irc_rootmsg( irc, "Unknown group: %s. Please use \x02group list\x02 to get a list of available groups.", cmd[2] );
+ }
else
{
irc_rootmsg( irc, "Unknown command: %s %s. Please use \x02help commands\x02 to get a list of available commands.", "group", cmd[1] );