void registercontrolhelpcmd(const char *name, int level, int maxparams, CommandHandler handler, char *help);
void registercontrolhelpfunccmd(const char *name, int level, int maxparams, CommandHandler handler, CommandHelp helpcmd);
int deregistercontrolcmd(const char *name, CommandHandler handler);
-void controlmessage(nick *target, char *message, ... );
-void controlchanmsg(channel *cp, char *message, ...);
-void controlnotice(nick *target, char *message, ...);
+void controlmessage(nick *target, char *message, ... ) __attribute__ ((format (printf, 2, 3)));
+void controlchanmsg(channel *cp, char *message, ...) __attribute__ ((format (printf, 2, 3)));
+void controlnotice(nick *target, char *message, ...) __attribute__ ((format (printf, 2, 3)));
int controlshowcommands(void *sender, int cargc, char **cargv);
int controlrmmod(void *sender, int cargc, char **cargv);
void controlspecialrmmod(void *arg);
void controlspecialreloadmod(void *arg);
void controlhelp(nick *np, Command *cmd);
-void controlnswall(int noticelevel, char *format, ...);
+void controlnswall(int noticelevel, char *format, ...) __attribute__ ((format (printf, 2, 3)));
+char *controlid(nick *);
/* NEVER USE THE FOLLOWING IN COMMANDS, you'll end up missing bits off and users'll end up being able to gline people */
#define __NO_ANYONE 0x000
#define NL_OPERING 0x0800 /* when someone opers */
#define NL_NOTICES 0x1000 /* turn off to receive privmsgs instead of notices */
#define NL_ALL_COMMANDS 0x2000 /* every single command sent */
+#define NL_GLINES_AUTO 0x4000 /* automated gline messages */
#endif