unsigned int CAP_REMOVE;
static char part_buf[REASONLEN + 1];
-static int m_remove(struct Client *, struct Client *, int, const char **);
+static int m_remove(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
static void remove_quote_part(hook_data_privmsg_channel *);
struct Message remove_msgtab = {
- "REMOVE", 0, 0, 0, MFLG_SLOW,
+ "REMOVE", 0, 0, 0, 0,
{mg_unreg, {m_remove, 3}, {m_remove, 3}, {m_remove, 3}, mg_ignore, {m_remove, 3}}
};
DECLARE_MODULE_AV1(remove, modinit, moddeinit, remove_clist, NULL, remove_hfnlist, "$Revision: 3317 $");
static int
-m_remove(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
+m_remove(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
{
struct membership *msptr;
struct Client *who;
return 0;
}
- if(get_channel_access(source_p, msptr, MODE_ADD) < CHFL_CHANOP)
+ if(get_channel_access(source_p, chptr, msptr, MODE_ADD, NULL) < CHFL_CHANOP)
{
if(MyConnect(source_p))
{
static void
remove_quote_part(hook_data_privmsg_channel *data)
{
- size_t ret;
if (data->approved || EmptyString(data->text) || data->msgtype != MESSAGE_TYPE_PART)
return;
- rb_strlcpy(part_buf, "\"", sizeof(part_buf));
- ret = rb_strlcat(part_buf, data->text, sizeof(part_buf));
- if (ret >= sizeof(part_buf) - 1)
- part_buf[REASONLEN - 1] = '"';
- else
- rb_strlcat(part_buf, "\"", sizeof(part_buf));
+ rb_strlcpy(part_buf, "\"", sizeof(part_buf) - 1);
+ rb_strlcat(part_buf, data->text, sizeof(part_buf) - 1);
+ rb_strlcat(part_buf, "\"", sizeof(part_buf));
data->text = part_buf;
}