[FIX] Make Parsee build on GCC without warns

This commit is contained in:
LDA 2024-09-10 22:20:13 +02:00
commit 907ac13da9
20 changed files with 72 additions and 20 deletions

View file

@ -15,35 +15,47 @@ CommandCreateRouter(void)
void void
CommandAddCommand(CommandRouter *rter, char *c, CommandRoute rte) CommandAddCommand(CommandRouter *rter, char *c, CommandRoute rte)
{ {
CommandRoute *indirect;
if (!rter || !c || !rte) if (!rter || !c || !rte)
{ {
return; 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 void
RouteCommand(CommandRouter *rter, Command *cmd, void *d) RouteCommand(CommandRouter *rter, Command *cmd, void *d)
{ {
CommandRoute route; CommandRoute *route;
if (!rter || !cmd) if (!rter || !cmd)
{ {
return; return;
} }
route = HashMapGet(rter->routes, cmd->command); route = HashMapGet(rter->routes, cmd->command);
if (route) if (route && *route)
{ {
route(cmd, d); (*route)(cmd, d);
} }
} }
void void
CommandFreeRouter(CommandRouter *rter) CommandFreeRouter(CommandRouter *rter)
{ {
char *key;
CommandRoute *val;
if (!rter) if (!rter)
{ {
return; return;
} }
while (HashMapIterate(rter->routes, &key, (void **) &val))
{
Free(val);
}
HashMapFree(rter->routes); HashMapFree(rter->routes);
Free(rter); Free(rter);
} }

View file

@ -25,4 +25,6 @@ CommandHead(CmdHelp, cmd, argp)
); );
ReplyBasic("*Written with a shoelace and UHU glue by LDA <3 !*"); ReplyBasic("*Written with a shoelace and UHU glue by LDA <3 !*");
BotDestroy(); BotDestroy();
(void) cmd;
} }

View file

@ -32,4 +32,6 @@ CommandHead(CmdListBans, cmd, argp)
DbUnlock(data->db, listed); DbUnlock(data->db, listed);
BotDestroy(); BotDestroy();
(void) cmd;
} }

View file

@ -40,4 +40,6 @@ CommandHead(CmdStats, cmd, argp)
ReplyBasic("*Written with a shoelace and UHU glue by LDA <3 !*"); ReplyBasic("*Written with a shoelace and UHU glue by LDA <3 !*");
BotDestroy(); BotDestroy();
(void) cmd;
} }

View file

@ -276,5 +276,7 @@ end:
ParseeDestroyOIDTable(); ParseeDestroyOIDTable();
ParseeDestroyHeadTable(); ParseeDestroyHeadTable();
ParseeDestroyJIDTable(); ParseeDestroyJIDTable();
(void) env;
return 0; return 0;
} }

View file

@ -30,7 +30,7 @@ ParseeConfigLoad(char *conf)
{ {
return; return;
} }
stream = StreamOpen("parsee.json", "r"); stream = StreamOpen(conf ? conf : "parsee.json", "r");
if (!stream) if (!stream)
{ {
return; return;

View file

@ -356,8 +356,6 @@ ParseePushDMRoom(ParseeData *d, char *mxid, char *jid, char *r)
void void
ParseeDeleteDM(ParseeData *d, char *mxid, char *jid) ParseeDeleteDM(ParseeData *d, char *mxid, char *jid)
{ {
DbRef *ref;
HashMap *j;
char *dmid; char *dmid;
if (!d || !mxid || !jid) if (!d || !mxid || !jid)
{ {

View file

@ -131,7 +131,7 @@ RouteHead(RouteRoot, arr, argp)
P("<pre id='ascii'><code>"); P("<pre id='ascii'><code>");
for (i = 0; i < PARSEE_ASCII_LINES; i++) 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); XMLEncode(args->stream, e);
XMLFreeElement(e); XMLFreeElement(e);
P("<br/>"); P("<br/>");
@ -249,5 +249,6 @@ RouteHead(RouteRoot, arr, argp)
P("</html>"); P("</html>");
#undef P #undef P
(void) arr;
return NULL; return NULL;
} }

View file

@ -42,6 +42,7 @@ RouteHead(RouteTxns, arr, argp)
response = HashMapCreate(); response = HashMapCreate();
end: end:
(void) arr;
JsonFree(request); JsonFree(request);
return response; return response;
} }

View file

@ -117,7 +117,7 @@ StrFullRect(char **split)
char char
StrGet(StringRect *rect, int line, int col) StrGet(StringRect *rect, int line, int col)
{ {
int actual_line, actual_col; size_t actual_line, actual_col;
char *linep; char *linep;
if (!rect || !rect->source_lines) if (!rect || !rect->source_lines)
{ {
@ -150,7 +150,7 @@ StrGet(StringRect *rect, int line, int col)
size_t size_t
StrViewChars(StringRect rect, int line) StrViewChars(StringRect rect, int line)
{ {
int actual_line; size_t actual_line;
char *linep; char *linep;
if (!rect.source_lines) if (!rect.source_lines)
{ {
@ -174,7 +174,7 @@ StrViewChars(StringRect rect, int line)
StringRect StringRect
StrGetl(StringRect *rect, int line, bool extend) StrGetl(StringRect *rect, int line, bool extend)
{ {
int actual_line; size_t actual_line;
StringRect ret; StringRect ret;
if (!rect->source_lines) if (!rect->source_lines)
{ {
@ -204,7 +204,7 @@ StrGetl(StringRect *rect, int line, bool extend)
StringRect StringRect
StrShift(StringRect rect, int n) StrShift(StringRect rect, int n)
{ {
int new = rect.start_char + n; size_t new = rect.start_char + n;
if (new > rect.end_char) if (new > rect.end_char)
{ {
new = rect.end_char; new = rect.end_char;

View file

@ -10,10 +10,10 @@
Stream * Stream *
StrStreamReaderN(char *buffer, int n) StrStreamReaderN(char *buffer, int n)
{ {
if (!buffer) if (!buffer || n < 0)
{ {
return NULL; return NULL;
} }
return StreamFile(fmemopen(buffer, n ? n : strlen(buffer), "rb")); return StreamFile(fmemopen(buffer, n ? (size_t) n : strlen(buffer), "rb"));
} }

View file

@ -11,6 +11,9 @@ static ssize_t
ReadStreamWriter(void *coop, void *to, size_t n) ReadStreamWriter(void *coop, void *to, size_t n)
{ {
/* Reading from a stream writer is silly. */ /* Reading from a stream writer is silly. */
(void) coop;
(void) to;
(void) n;
return 0; return 0;
} }
static ssize_t static ssize_t
@ -33,6 +36,9 @@ static off_t
SeekStreamWriter(void *coop, off_t mag, int sgn) SeekStreamWriter(void *coop, off_t mag, int sgn)
{ {
/* TODO: Seeking would be useful, though not supported yet. */ /* TODO: Seeking would be useful, though not supported yet. */
(void) coop;
(void) mag;
(void) sgn;
return 0; return 0;
} }
@ -40,10 +46,11 @@ static int
CloseStreamWriter(void *coop) CloseStreamWriter(void *coop)
{ {
/* Nothing to free as of now. */ /* Nothing to free as of now. */
(void) coop;
return 0; return 0;
} }
const static IoFunctions Functions = { static const IoFunctions Functions = {
.read = ReadStreamWriter, .read = ReadStreamWriter,
.seek = SeekStreamWriter, .seek = SeekStreamWriter,
.write = WriteStreamWriter, .write = WriteStreamWriter,

View file

@ -582,6 +582,8 @@ XMLCreateEnd(XMLexer *lexer, char *end)
event->col = 0; event->col = 0;
event->offset = 0; event->offset = 0;
(void) lexer;
return event; return event;
} }
static XMLEvent * static XMLEvent *

View file

@ -58,4 +58,6 @@ AdminsCallback(XMPPCommandManager *m, char *from, XMLElement *form, XMLElement *
DbUnlock(data->db, ref); DbUnlock(data->db, ref);
} }
XMLAddChild(out, x); XMLAddChild(out, x);
(void) form;
} }

View file

@ -29,4 +29,6 @@ CleanCallback(XMPPCommandManager *m, char *from, XMLElement *form, XMLElement *o
ParseeCleanup(data); ParseeCleanup(data);
/* TODO: Cleanup old sessions? */ /* TODO: Cleanup old sessions? */
SetNote("info", "Parsee data was sucessfully cleant up."); SetNote("info", "Parsee data was sucessfully cleant up.");
(void) form;
} }

View file

@ -87,4 +87,6 @@ NoflyCallback(XMPPCommandManager *m, char *from, XMLElement *form, XMLElement *o
} }
DbUnlock(data->db, ref); DbUnlock(data->db, ref);
} }
(void) form;
} }

View file

@ -75,4 +75,6 @@ StatusCallback(XMPPCommandManager *m, char *from, XMLElement *form, XMLElement *
EndItem(); EndItem();
} }
XMLAddChild(out, x); XMLAddChild(out, x);
(void) form;
} }

View file

@ -68,20 +68,23 @@ PEPManagerCookie(PEPManager *manager)
void void
PEPManagerAddEvent(PEPManager *manager, char *node, PEPEvent event) PEPManagerAddEvent(PEPManager *manager, char *node, PEPEvent event)
{ {
PEPEvent *indirect;
if (!manager || !node || !event) if (!manager || !node || !event)
{ {
return; return;
} }
indirect = Malloc(sizeof(event));
*indirect = event;
pthread_mutex_lock(&manager->lock); pthread_mutex_lock(&manager->lock);
HashMapSet(manager->node_table, node, event); HashMapSet(manager->node_table, node, indirect);
pthread_mutex_unlock(&manager->lock); pthread_mutex_unlock(&manager->lock);
} }
static bool static bool
PEPManagerHandleEvent(PEPManager *manager, XMLElement *stanza) PEPManagerHandleEvent(PEPManager *manager, XMLElement *stanza)
{ {
PEPEvent call = NULL; PEPEvent *call = NULL;
XMLElement *event, *ps, *ev; XMLElement *event, *ps, *ev;
size_t i; size_t i;
if (!manager || !stanza) if (!manager || !stanza)
@ -101,7 +104,7 @@ PEPManagerHandleEvent(PEPManager *manager, XMLElement *stanza)
XMLElement *items = ArrayGet(event->children, i); XMLElement *items = ArrayGet(event->children, i);
char *node = HashMapGet(items->attrs, "node"); char *node = HashMapGet(items->attrs, "node");
if ((call = HashMapGet(manager->node_table, node))) if ((call = HashMapGet(manager->node_table, node)) && *call)
{ {
size_t j; size_t j;
/* Use the callback over all items */ /* Use the callback over all items */
@ -109,13 +112,13 @@ PEPManagerHandleEvent(PEPManager *manager, XMLElement *stanza)
{ {
for (j = 0; j < ArraySize(items->children); j++) for (j = 0; j < ArraySize(items->children); j++)
{ {
call(manager, stanza, ArrayGet(items->children, j)); (*call)(manager, stanza, ArrayGet(items->children, j));
} }
return true; return true;
} }
/* ... or over "items" specifically. */ /* ... or over "items" specifically. */
call(manager, stanza, items); (*call)(manager, stanza, items);
return true; return true;
} }
} }
@ -142,12 +145,18 @@ PEPManagerHandle(PEPManager *manager, XMLElement *stanza)
void void
DestroyPEPManager(PEPManager *manager) DestroyPEPManager(PEPManager *manager)
{ {
char *key;
PEPEvent *val;
if (!manager) if (!manager)
{ {
return; return;
} }
pthread_mutex_destroy(&manager->lock); pthread_mutex_destroy(&manager->lock);
while (HashMapIterate(manager->node_table, &key, (void **) &val))
{
Free(val);
}
HashMapFree(manager->node_table); HashMapFree(manager->node_table);
Free(manager); Free(manager);
} }

View file

@ -118,4 +118,5 @@ PEPVCardEvent(PEPManager *m, XMLElement *stanza, XMLElement *item)
StreamFlush(jabber->stream); StreamFlush(jabber->stream);
pthread_mutex_unlock(&jabber->write_lock); pthread_mutex_unlock(&jabber->write_lock);
XMLFreeElement(reply); XMLFreeElement(reply);
(void) item;
} }

View file

@ -113,6 +113,8 @@ IQDiscoGet(ParseeData *args, XMPPComponent *jabber, XMLElement *stanza)
pthread_mutex_unlock(&jabber->write_lock); pthread_mutex_unlock(&jabber->write_lock);
XMLFreeElement(iq_reply); XMLFreeElement(iq_reply);
(void) args;
} }
void void
@ -440,6 +442,9 @@ void
IQError(ParseeData *args, XMLElement *stanza, XMPPThread *thr) IQError(ParseeData *args, XMLElement *stanza, XMPPThread *thr)
{ {
/* TODO */ /* TODO */
(void) args;
(void) stanza;
(void) thr;
} }
void void
IQSet(ParseeData *args, XMLElement *stanza, XMPPThread *thr) IQSet(ParseeData *args, XMLElement *stanza, XMPPThread *thr)