]> Dogcows Code - chaz/openbox/blobdiff - parser/parse.c
back xml themes out of trunk
[chaz/openbox] / parser / parse.c
index 167456509e63a44e983ba1660dfb0f4669700ef4..547203608021249d263ed61cbefa53b7ef0faeaa 100644 (file)
@@ -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;
@@ -416,6 +417,9 @@ void parse_paths_startup()
     if (path && path[0] != '\0') /* not unset or empty */
         xdg_data_dir_paths = split_paths(path);
     else {
+        xdg_data_dir_paths = slist_path_add(xdg_data_dir_paths,
+                                            g_strdup(DATADIR),
+                                            (GSListFunc) g_slist_append);
         xdg_data_dir_paths = slist_path_add(xdg_data_dir_paths,
                                             g_build_filename
                                             (G_DIR_SEPARATOR_S,
@@ -426,9 +430,6 @@ void parse_paths_startup()
                                             (G_DIR_SEPARATOR_S,
                                              "usr", "share", NULL),
                                             (GSListFunc) g_slist_append);
-        xdg_data_dir_paths = slist_path_add(xdg_data_dir_paths,
-                                            g_strdup(DATADIR),
-                                            (GSListFunc) g_slist_append);
     }
     xdg_data_dir_paths = slist_path_add(xdg_data_dir_paths,
                                         g_strdup(xdg_data_home_path),
This page took 0.020954 seconds and 4 git commands to generate.