src/irc_log.c
changeset 88 233916a00429
parent 83 c8e2dac08207
child 100 cfb7776bd6f0
equal deleted inserted replaced
87:f0db6ebf18b9 88:233916a00429
   253 
   253 
   254     irc_log_event(chan_ctx->ctx, chan_ctx, line->source, line->command, target, msg);
   254     irc_log_event(chan_ctx->ctx, chan_ctx, line->source, line->command, target, msg);
   255 }
   255 }
   256 
   256 
   257 /**
   257 /**
       
   258  * Log a CTCP ACTION message on a channel
       
   259  *
       
   260  * :nm "CTCP ACTION" <channel> <action>
       
   261  */
       
   262 static void irc_log_on_chan_CTCP_ACTION (const struct irc_line *line, void *arg)
       
   263 {
       
   264     struct irc_log_chan *chan_ctx = arg;
       
   265 
       
   266     const char *action = line->args[1];
       
   267 
       
   268     irc_log_event(chan_ctx->ctx, chan_ctx, line->source, "ACTION", NULL, action);
       
   269 }
       
   270 
       
   271 /**
   258  * Our low-level channel-specific message handlers for logged channels.
   272  * Our low-level channel-specific message handlers for logged channels.
   259  *
   273  *
   260  * Note that these get a `struct irc_log_chan*` as an argument.
   274  * Note that these get a `struct irc_log_chan*` as an argument.
   261  */
   275  */
   262 static struct irc_cmd_handler _chan_cmd_handlers[] = {
   276 static struct irc_cmd_handler _chan_cmd_handlers[] = {
   263     {   "NICK",     &irc_log_on_chan_NICK           },
   277     {   "NICK",         &irc_log_on_chan_NICK           },
   264     {   "QUIT",     &irc_log_on_chan_QUIT           },
   278     {   "QUIT",         &irc_log_on_chan_QUIT           },
   265     {   "JOIN",     &irc_log_on_chan_generic        },
   279     {   "JOIN",         &irc_log_on_chan_generic        },
   266     {   "PART",     &irc_log_on_chan_generic        },
   280     {   "PART",         &irc_log_on_chan_generic        },
   267     {   "MODE",     &irc_log_on_chan_MODE           },
   281     {   "MODE",         &irc_log_on_chan_MODE           },
   268     {   "TOPIC",    &irc_log_on_chan_generic        },
   282     {   "TOPIC",        &irc_log_on_chan_generic        },
   269     {   "KICK",     &irc_log_on_chan_KICK           },
   283     {   "KICK",         &irc_log_on_chan_KICK           },
   270     {   "PRIVMSG",  &irc_log_on_chan_generic        },
   284     {   "PRIVMSG",      &irc_log_on_chan_generic        },
   271     {   "NOTICE",   &irc_log_on_chan_generic        },
   285     {   "NOTICE",       &irc_log_on_chan_generic        },
   272     {   NULL,       NULL                            }
   286     {   "CTCP ACTION",  &irc_log_on_chan_CTCP_ACTION    },
       
   287     {   NULL,           NULL                            }
   273 };
   288 };
   274 
   289 
   275 /**
   290 /**
   276  * Our high-level channel-specific callbacks for logged channels.
   291  * Our high-level channel-specific callbacks for logged channels.
   277  *
   292  *