mirror of
https://forge.fsky.io/lda/Parsee.git
synced 2026-03-13 12:15:12 +00:00
[FIX] Make Parsee build on GCC without warns
This commit is contained in:
parent
1d188069db
commit
907ac13da9
20 changed files with 72 additions and 20 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,4 +25,6 @@ CommandHead(CmdHelp, cmd, argp)
|
|||
);
|
||||
ReplyBasic("*Written with a shoelace and UHU glue by LDA <3 !*");
|
||||
BotDestroy();
|
||||
|
||||
(void) cmd;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,4 +32,6 @@ CommandHead(CmdListBans, cmd, argp)
|
|||
|
||||
DbUnlock(data->db, listed);
|
||||
BotDestroy();
|
||||
|
||||
(void) cmd;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,4 +40,6 @@ CommandHead(CmdStats, cmd, argp)
|
|||
ReplyBasic("*Written with a shoelace and UHU glue by LDA <3 !*");
|
||||
|
||||
BotDestroy();
|
||||
|
||||
(void) cmd;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -276,5 +276,7 @@ end:
|
|||
ParseeDestroyOIDTable();
|
||||
ParseeDestroyHeadTable();
|
||||
ParseeDestroyJIDTable();
|
||||
|
||||
(void) env;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ ParseeConfigLoad(char *conf)
|
|||
{
|
||||
return;
|
||||
}
|
||||
stream = StreamOpen("parsee.json", "r");
|
||||
stream = StreamOpen(conf ? conf : "parsee.json", "r");
|
||||
if (!stream)
|
||||
{
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ RouteHead(RouteTxns, arr, argp)
|
|||
|
||||
response = HashMapCreate();
|
||||
end:
|
||||
(void) arr;
|
||||
JsonFree(request);
|
||||
return response;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -582,6 +582,8 @@ XMLCreateEnd(XMLexer *lexer, char *end)
|
|||
event->col = 0;
|
||||
event->offset = 0;
|
||||
|
||||
(void) lexer;
|
||||
|
||||
return event;
|
||||
}
|
||||
static XMLEvent *
|
||||
|
|
|
|||
|
|
@ -58,4 +58,6 @@ AdminsCallback(XMPPCommandManager *m, char *from, XMLElement *form, XMLElement *
|
|||
DbUnlock(data->db, ref);
|
||||
}
|
||||
XMLAddChild(out, x);
|
||||
|
||||
(void) form;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -87,4 +87,6 @@ NoflyCallback(XMPPCommandManager *m, char *from, XMLElement *form, XMLElement *o
|
|||
}
|
||||
DbUnlock(data->db, ref);
|
||||
}
|
||||
|
||||
(void) form;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,4 +75,6 @@ StatusCallback(XMPPCommandManager *m, char *from, XMLElement *form, XMLElement *
|
|||
EndItem();
|
||||
}
|
||||
XMLAddChild(out, x);
|
||||
|
||||
(void) form;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -118,4 +118,5 @@ PEPVCardEvent(PEPManager *m, XMLElement *stanza, XMLElement *item)
|
|||
StreamFlush(jabber->stream);
|
||||
pthread_mutex_unlock(&jabber->write_lock);
|
||||
XMLFreeElement(reply);
|
||||
(void) item;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue