X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmodcmd.c;h=7ae19af97739b126432fa2bf6415c2e7531526a6;hb=591505ef854aecb6b35c00fca9d58d54fe513eb8;hp=e41a1eaa1682aedf2a7e2185469c0be6bdd128bc;hpb=113ef8305f6ba5f3c7df66294a7eb15dcb02e026;p=srvx.git diff --git a/src/modcmd.c b/src/modcmd.c index e41a1ea..7ae19af 100644 --- a/src/modcmd.c +++ b/src/modcmd.c @@ -73,8 +73,8 @@ static const struct message_entry msgtab[] = { { "MCMSG_HELPFILE_UNBOUND", "Since that was the last command from module %s on the service, the helpfile for %s was removed." }, { "MCMSG_NO_HELPFILE", "Module %s does not have a help file." }, { "MCMSG_HELPFILE_ERROR", "Syntax error reading %s; help contents not changed." }, - { "MCMSG_HELPFILE_READ", "Read %s help database in "FMT_TIME_T".%03lu seconds." }, - { "MCMSG_COMMAND_TIME", "Command $b%s$b finished in "FMT_TIME_T".%06lu seconds." }, + { "MCMSG_HELPFILE_READ", "Read %s help database in %lu.%03lu seconds." }, + { "MCMSG_COMMAND_TIME", "Command $b%s$b finished in %lu.%06lu seconds." }, { "MCMSG_NEED_OPSERV_LEVEL", "You must have $O access of at least $b%u$b." }, { "MCMSG_NEED_CHANSERV_LEVEL", "You must have $C access of at least $b%u$b in the channel." }, { "MCMSG_NEED_ACCOUNT_FLAGS", "You must have account flags $b%s$b." }, @@ -173,8 +173,8 @@ flags_qsort(const void *a, const void *b) { return irccasecmp(fa->name, fb->name); } -DEFINE_LIST(svccmd_list, struct svccmd*); -DEFINE_LIST(module_list, struct module*); +DEFINE_LIST(svccmd_list, struct svccmd*) +DEFINE_LIST(module_list, struct module*) static void free_service_command(void *data) { @@ -862,9 +862,9 @@ modcmd_privmsg(struct userNode *user, struct userNode *bot, const char *text, in irc_notice_user(bot,user, "\x01PING\x01"); } } else if (!irccasecmp(text, "TIME")) { - struct tm tm; - localtime_r(&now, &tm); - strftime(response, sizeof(response), "\x01TIME %a %b %d %H:%M:%S %Y\x01", &tm); + time_t feh; + feh = now; + strftime(response, sizeof(response), "\x01TIME %a %b %d %H:%M:%S %Y\x01", localtime(&feh)); irc_notice_user(bot, user, response); } else if (!irccasecmp(text, "USERINFO")) { snprintf(response, sizeof(response), "\x01USERINFO %s\x01", bot->info); @@ -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 * @@ -1215,7 +1217,7 @@ static MODCMD_FUNC(cmd_readhelp) { stop.tv_sec -= 1; stop.tv_usec += 1000000; } - reply("MCMSG_HELPFILE_READ", module->name, stop.tv_sec, stop.tv_usec/1000); + reply("MCMSG_HELPFILE_READ", module->name, (unsigned long)stop.tv_sec, (unsigned long)stop.tv_usec/1000); return 1; } @@ -1240,7 +1242,7 @@ static MODCMD_FUNC(cmd_timecmd) { stop.tv_sec -= 1; stop.tv_usec += 1000000; } - reply("MCMSG_COMMAND_TIME", cmd_text, stop.tv_sec, stop.tv_usec); + reply("MCMSG_COMMAND_TIME", cmd_text, (unsigned long)stop.tv_sec, (unsigned long)stop.tv_usec); return 1; } @@ -1832,17 +1834,14 @@ static MODCMD_FUNC(cmd_dump_messages) { reply("MSG_INTERNAL_FAILURE"); return 0; } - if ((res = setjmp(ctx->jbuf)) != 0) { - ctx->complex.used = 0; /* to avoid false assert()s in close */ - saxdb_close_context(ctx); - fclose(pf); + if ((res = setjmp(*saxdb_jmp_buf(ctx))) != 0) { + saxdb_close_context(ctx, 1); reply("MCMSG_MESSAGE_DUMP_FAILED", strerror(res)); return 0; } else { for (it = dict_first(lang_C->messages); it; it = iter_next(it)) saxdb_write_string(ctx, iter_key(it), iter_data(it)); - saxdb_close_context(ctx); - fclose(pf); + saxdb_close_context(ctx, 1); reply("MCMSG_MESSAGES_DUMPED", fname); return 1; }