xmlDocPtr *doc, xmlNodePtr *root)
{
struct stat s;
+
if (stat(path, &s) < 0)
return FALSE;
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;
}
{
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;
xdg_config_dir_paths = slist_path_add(xdg_config_dir_paths,
g_strdup(xdg_config_home_path),
(GSListFunc) g_slist_prepend);
-
+
path = g_getenv("XDG_DATA_DIRS");
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,
(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),