[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
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);
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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)
{

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -29,4 +29,6 @@ CleanCallback(XMPPCommandManager *m, char *from, XMLElement *form, XMLElement *o
ParseeCleanup(data);
/* TODO: Cleanup old sessions? */
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);
}
(void) form;
}

View file

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

View file

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

View file

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

View file

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