aboutsummaryrefslogtreecommitdiffstats
path: root/root_commands.c
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@vmiklos.hu>2013-02-09 12:31:43 +0100
committerMiklos Vajna <vmiklos@suse.cz>2013-02-09 12:31:43 +0100
commitc2cc24cd9d7a976aca383e508f2c6779d6cdb14a (patch)
tree47342e6c010ccaa53c683b6f96e1d5829ab24ea8 /root_commands.c
parentdb34b0671c81b8021639b07a704e2e05b38b9f40 (diff)
Implement 'group info' command to list members of a group (#741)
Diffstat (limited to 'root_commands.c')
-rw-r--r--root_commands.c31
1 files changed, 31 insertions, 0 deletions
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] );