fixed some clang warnings
[k8lowj.git] / src / jam_xml.h
blob4d1e60d2db541d93540c785f0356fbe1bda4ffb4
1 /* logjam - a GTK client for LiveJournal.
2 * Copyright (C) 2000-2003 Evan Martin <evan@livejournal.com>
3 */
4 #ifndef __LOGJAM_XML_H__
5 #define __LOGJAM_XML_H__
7 #include <glib.h>
9 extern void jam_xmlNewDoc (xmlDocPtr *doc, xmlNodePtr *node, char *name);
11 extern char *jam_xmlGetString (xmlDocPtr doc, xmlNodePtr node);
12 extern guint32 jam_xmlGetUInt32 (xmlDocPtr doc, xmlNodePtr node);
13 extern gboolean jam_xmlGetInt (xmlDocPtr doc, xmlNodePtr node, int *value);
15 extern xmlNodePtr jam_xmlAddInt (xmlNodePtr node, char *name, int val);
17 extern void jam_xmlSetIntProp (xmlNodePtr node, const char *name, int value);
18 extern gboolean jam_xmlGetIntProp (xmlNodePtr node, const char *name, int *value);
21 /* from conf_xml.c
23 * basically, these XML_* functions run a series of ifs on the node name.
24 * be sure to end with XML_GET_END, which prints error information if a node
25 * wasn't handled.
27 #define XML_GET_IF(key, what) if (xmlStrcmp(node->name, BAD_CAST key) == 0) { what } else
28 #define XML_GET_FUNC(key, dest, func) XML_GET_IF(key, dest = func(doc, node);)
29 #define XML_GET_STR(key, dest) XML_GET_FUNC(key, dest, jam_xmlGetString)
30 #define XML_GET_UINT32(key, dest) XML_GET_FUNC(key, dest, jam_xmlGetUInt32)
31 #define XML_GET_INT(key, dest) XML_GET_IF(key, jam_xmlGetInt(doc, node, &dest);)
32 #define XML_GET_BOOL(key, dest) XML_GET_IF(key, dest = TRUE; )
33 #define XML_GET_LIST(key, dest, func) XML_GET_IF(key, dest = g_slist_append(dest, func(doc, node)); )
34 #define XML_GET_SUB(dest, func) if (xmlStrcmp(node->name, BAD_CAST "text") != 0 && func(dest, doc, node)) { ; } else
35 #define XML_GET_END(func) if (xmlStrcmp(node->name, BAD_CAST "text") != 0) {}
38 #endif