} modechanges;
/* These functions are in localuserchannel.c */
+int localburstontochannel(channel *cp, nick *np, time_t timestamp, flag_t modes, unsigned int limit, char *key);
int localjoinchannel(nick *np, channel *cp);
-int localpartchannel(nick *np, channel *cp);
+int localpartchannel(nick *np, channel *cp, char *reason);
int localcreatechannel(nick *np, char *channame);
int localgetops(nick *np, channel *cp);
int localgetvoice(nick *np, channel *cp);
void localsettopic(nick *np, channel *cp, char *topic);
void localkickuser(nick *np, channel *cp, nick *target, const char *message);
void localusermodechange(nick *np, channel *cp, char *modes);
-void sendmessagetochannel(nick *source, channel *cp, char *format, ... );
-void localinvite(nick *source, channel *cp, nick *target);
+void sendmessagetochannel(nick *source, channel *cp, char *format, ... ) __attribute__ ((format (printf, 3, 4)));
+void sendopnoticetochannel(nick *source, channel *cp, char *format, ... ) __attribute__ ((format (printf, 3, 4)));
+void localinvite(nick *source, chanindex *cip, nick *target);
void localsetmodeinit (modechanges *changes, channel *cp, nick *np);
void localdosetmode_nick (modechanges *changes, nick *target, short modes);
void localdosetmode_ban (modechanges *changes, const char *ban, short dir);
-void localdosetmode_key (modechanges *changes, const char *key, short dir);
+void localdosetmode_key (modechanges *changes, char *key, short dir);
void localdosetmode_limit (modechanges *changes, unsigned int limit, short dir);
void localdosetmode_simple (modechanges *changes, flag_t addmodes, flag_t delmodes);
void localsetmodeflush (modechanges *changes, int force);