From 8dc0ed773a18db4559d883d1a65c742c8ad45b29 Mon Sep 17 00:00:00 2001 From: ThiefMaster Date: Fri, 7 Mar 2008 02:53:47 +0100 Subject: [PATCH] Pass is_notice status to chanmsg funcs. --- src/chanserv.c | 2 +- src/modcmd.c | 6 ++++-- src/proto-common.c | 7 ++++--- src/proto.h | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/chanserv.c b/src/chanserv.c index aa86929..d2f2693 100644 --- a/src/chanserv.c +++ b/src/chanserv.c @@ -798,7 +798,7 @@ scan_user_presence(struct userData *uData, struct userNode *user) } static void -chanserv_ctcp_check(struct userNode *user, struct chanNode *channel, const char *text, UNUSED_ARG(struct userNode *bot)) +chanserv_ctcp_check(struct userNode *user, struct chanNode *channel, const char *text, UNUSED_ARG(struct userNode *bot), UNUSED_ARG(unsigned int is_notice)) { unsigned int eflags, argc; char *argv[4]; diff --git a/src/modcmd.c b/src/modcmd.c index 65f8d29..9fd76a4 100644 --- a/src/modcmd.c +++ b/src/modcmd.c @@ -888,10 +888,12 @@ modcmd_privmsg(struct userNode *user, struct userNode *bot, const char *text, in } void -modcmd_chanmsg(struct userNode *user, struct chanNode *chan, const char *text, struct userNode *bot) { +modcmd_chanmsg(struct userNode *user, struct chanNode *chan, const char *text, struct userNode *bot, unsigned int is_notice) { struct service *service; - if (!(service = dict_find(services, bot->nick, NULL))) return; + if (!(service = dict_find(services, bot->nick, NULL))) + return; svccmd_invoke(user, service, chan, text, 0); + (void)is_notice; } struct service * diff --git a/src/proto-common.c b/src/proto-common.c index 618643c..f6a852f 100644 --- a/src/proto-common.c +++ b/src/proto-common.c @@ -442,8 +442,9 @@ privmsg_chan_helper(struct chanNode *cn, void *data) /* Never send a NOTICE to a channel to one of the services */ cf = &chanmsg_funcs[(unsigned char)pd->text[0]]; - if (!pd->is_notice && cf->func && GetUserMode(cn, cf->service) && !IsDeaf(cf->service)) - cf->func(pd->user, cn, pd->text+1, cf->service); + if (cf->func && !pd->is_notice + && GetUserMode(cn, cf->service) && !IsDeaf(cf->service)) + cf->func(pd->user, cn, pd->text+1, cf->service, pd->is_notice); /* This catches *all* text sent to the channel that the services server sees */ for (x = 0; x < ALLCHANMSG_FUNCS_MAX; x++) { @@ -451,7 +452,7 @@ privmsg_chan_helper(struct chanNode *cn, void *data) if (!cf->func) break; /* end of list */ else - cf->func(pd->user, cn, pd->text, cf->service); + cf->func(pd->user, cn, pd->text, cf->service, pd->is_notice); } } diff --git a/src/proto.h b/src/proto.h index 04ccb78..cfee7c5 100644 --- a/src/proto.h +++ b/src/proto.h @@ -90,7 +90,7 @@ void init_parse(void); int parse_line(char *line, int recursive); /* Callback notifications for protocol support. */ -typedef void (*chanmsg_func_t) (struct userNode *user, struct chanNode *chan, const char *text, struct userNode *bot); +typedef void (*chanmsg_func_t) (struct userNode *user, struct chanNode *chan, const char *text, struct userNode *bot, unsigned int is_notice); void reg_chanmsg_func(unsigned char prefix, struct userNode *service, chanmsg_func_t handler); void reg_allchanmsg_func(struct userNode *service, chanmsg_func_t handler); struct userNode *get_chanmsg_bot(unsigned char prefix); -- 2.20.1