diff --git a/src/Command/Router.c b/src/Command/Router.c index d188640..0a09d28 100644 --- a/src/Command/Router.c +++ b/src/Command/Router.c @@ -15,35 +15,47 @@ CommandCreateRouter(void) void CommandAddCommand(CommandRouter *rter, char *c, CommandRoute rte) { + CommandRoute *indirect; if (!rter || !c || !rte) { return; } - HashMapSet(rter->routes, c, rte); + + /* Little dirty trick to force C99 into submission, and since + * some architectures may separate data/code. Still don't like it... */ + indirect = Malloc(sizeof(rte)); + *indirect = rte; + HashMapSet(rter->routes, c, (void *) indirect); } void RouteCommand(CommandRouter *rter, Command *cmd, void *d) { - CommandRoute route; + CommandRoute *route; if (!rter || !cmd) { return; } route = HashMapGet(rter->routes, cmd->command); - if (route) + if (route && *route) { - route(cmd, d); + (*route)(cmd, d); } } void CommandFreeRouter(CommandRouter *rter) { + char *key; + CommandRoute *val; if (!rter) { return; } + while (HashMapIterate(rter->routes, &key, (void **) &val)) + { + Free(val); + } HashMapFree(rter->routes); Free(rter); } diff --git a/src/Commands/Help.c b/src/Commands/Help.c index f60980c..0e25009 100644 --- a/src/Commands/Help.c +++ b/src/Commands/Help.c @@ -25,4 +25,6 @@ CommandHead(CmdHelp, cmd, argp) ); ReplyBasic("*Written with a shoelace and UHU glue by LDA <3 !*"); BotDestroy(); + + (void) cmd; } diff --git a/src/Commands/ListBans.c b/src/Commands/ListBans.c index 109c5d4..50d9d31 100644 --- a/src/Commands/ListBans.c +++ b/src/Commands/ListBans.c @@ -32,4 +32,6 @@ CommandHead(CmdListBans, cmd, argp) DbUnlock(data->db, listed); BotDestroy(); + + (void) cmd; } diff --git a/src/Commands/Stats.c b/src/Commands/Stats.c index 219204a..0df0b44 100644 --- a/src/Commands/Stats.c +++ b/src/Commands/Stats.c @@ -40,4 +40,6 @@ CommandHead(CmdStats, cmd, argp) ReplyBasic("*Written with a shoelace and UHU glue by LDA <3 !*"); BotDestroy(); + + (void) cmd; } diff --git a/src/Main.c b/src/Main.c index 652512c..aa47822 100644 --- a/src/Main.c +++ b/src/Main.c @@ -276,5 +276,7 @@ end: ParseeDestroyOIDTable(); ParseeDestroyHeadTable(); ParseeDestroyJIDTable(); + + (void) env; return 0; } diff --git a/src/Parsee/Config.c b/src/Parsee/Config.c index 72eff53..0e1ee04 100644 --- a/src/Parsee/Config.c +++ b/src/Parsee/Config.c @@ -30,7 +30,7 @@ ParseeConfigLoad(char *conf) { return; } - stream = StreamOpen("parsee.json", "r"); + stream = StreamOpen(conf ? conf : "parsee.json", "r"); if (!stream) { return; diff --git a/src/Parsee/User.c b/src/Parsee/User.c index c751731..90c7ca5 100644 --- a/src/Parsee/User.c +++ b/src/Parsee/User.c @@ -356,8 +356,6 @@ ParseePushDMRoom(ParseeData *d, char *mxid, char *jid, char *r) void ParseeDeleteDM(ParseeData *d, char *mxid, char *jid) { - DbRef *ref; - HashMap *j; char *dmid; if (!d || !mxid || !jid) { diff --git a/src/Routes/Root.c b/src/Routes/Root.c index d96e5f6..410652a 100644 --- a/src/Routes/Root.c +++ b/src/Routes/Root.c @@ -131,7 +131,7 @@ RouteHead(RouteRoot, arr, argp) P("
");
for (i = 0; i < PARSEE_ASCII_LINES; i++)
{
- XMLElement *e = XMLCreateText(parsee_ascii[i]);
+ XMLElement *e = XMLCreateText((char *) parsee_ascii[i]);
XMLEncode(args->stream, e);
XMLFreeElement(e);
P("
");
@@ -249,5 +249,6 @@ RouteHead(RouteRoot, arr, argp)
P("