X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=parser%2Fparse.c;h=547203608021249d263ed61cbefa53b7ef0faeaa;hb=6005c3c86135ce9a7e95abacf275f94c440094c7;hp=85ffc15168e2b2b2b57d558b325ce2205b0ae230;hpb=41f0ff035bef7fb14e4ede5aa36c71e8948731b9;p=chaz%2Fopenbox diff --git a/parser/parse.c b/parser/parse.c index 85ffc151..54720360 100644 --- a/parser/parse.c +++ b/parser/parse.c @@ -165,6 +165,7 @@ gboolean parse_load(const gchar *path, const gchar *rootname, xmlDocPtr *doc, xmlNodePtr *root) { struct stat s; + if (stat(path, &s) < 0) return FALSE; @@ -242,7 +243,7 @@ gchar *parse_string(xmlDocPtr doc, xmlNodePtr node) gint parse_int(xmlDocPtr doc, xmlNodePtr node) { xmlChar *c = xmlNodeListGetString(doc, node->children, TRUE); - gint i = atoi((gchar*)c); + gint i = c ? atoi((gchar*)c) : 0; xmlFree(c); return i; } @@ -251,11 +252,11 @@ gboolean parse_bool(xmlDocPtr doc, xmlNodePtr node) { xmlChar *c = xmlNodeListGetString(doc, node->children, TRUE); gboolean b = FALSE; - if (!xmlStrcasecmp(c, (const xmlChar*) "true")) + if (c && !xmlStrcasecmp(c, (const xmlChar*) "true")) b = TRUE; - else if (!xmlStrcasecmp(c, (const xmlChar*) "yes")) + else if (c && !xmlStrcasecmp(c, (const xmlChar*) "yes")) b = TRUE; - else if (!xmlStrcasecmp(c, (const xmlChar*) "on")) + else if (c && !xmlStrcasecmp(c, (const xmlChar*) "on")) b = TRUE; xmlFree(c); return b;