]>
jfr.im git - irc/quakenet/newserv.git/blob - chanserv/usercmds/listflags.c
1 /* Automatically generated by refactor.pl.
7 * CMDDESC: List users with the specified user flags.
8 * CMDFUNC: csu_dolistflags
9 * CMDPROTO: int csu_dolistflags(void *source, int cargc, char **cargv);
12 #include "../chanserv.h"
13 #include "../../lib/irc_string.h"
17 int csu_dolistflags(void *source
, int cargc
, char **cargv
) {
19 reguser
*rup
=getreguserfromnick(sender
);
21 flag_t matchflags
= 0;
30 chanservstdmessage(sender
, QM_NOTENOUGHPARAMS
, "listflags");
34 ch
=cargv
[0][0]=='+'?cargv
[0]+1:cargv
[0];
36 for (i
=0; ch
[i
]; i
++) {
37 for (j
= 0; ruflags
[j
].flagchar
; j
++) {
38 if (ruflags
[j
].flagchar
== ch
[i
]) {
39 matchflags
|=ruflags
[j
].flagbit
;
45 chanservstdmessage(sender
, QM_LISTFLAGSHEADER
);
46 for (i
=0;i
<REGUSERHASHSIZE
;i
++) {
47 for (dbrup
=regusernicktable
[i
]; dbrup
; dbrup
=dbrup
->nextbyname
) {
48 if ((dbrup
->flags
& matchflags
) == matchflags
) {
49 chanservsendmessage(sender
, "%-15s %-17s %-10s %-30s %s", dbrup
->username
, printflags(dbrup
->flags
, ruflags
),
50 UHasSuspension(dbrup
)?"yes":"no", dbrup
->email
?dbrup
->email
->content
:"none set",
51 dbrup
->lastuserhost
?dbrup
->lastuserhost
->content
:"none");
54 chanservstdmessage(sender
, QM_TOOMANYRESULTS
, 2000, "users");
60 chanservstdmessage(sender
, QM_RESULTCOUNT
, count
, "user", (count
==1)?"":"s");