GSList *it;
gchar *path;
gboolean r = FALSE;
+ gchar *eng;
/* backward compatibility.. */
path = g_build_filename(g_get_home_dir(), ".themes", name,
"openbox-3", "themerc.xml", NULL);
- if ((r = parse_load(path, "openbox_theme", doc, root)))
- *retpath = g_path_get_dirname(path);
+ if (parse_load(path, "openbox_theme", doc, root) &&
+ parse_attr_string("engine", *root, &eng))
+ {
+ if (!strcmp(eng, "box")) {
+ *retpath = g_path_get_dirname(path);
+ r = TRUE;
+ }
+ g_free(eng);
+ }
g_free(path);
if (!r) {
for (it = xdg_data_dir_paths; !r && it; it = g_slist_next(it)) {
path = g_build_filename(it->data, "themes", name, "openbox-3",
"themerc.xml", NULL);
- if ((r = parse_load(path, "openbox_theme", doc, root)))
- *retpath = g_path_get_dirname(path);
+ if (parse_load(path, "openbox_theme", doc, root) &&
+ parse_attr_string("engine", *root, &eng))
+ {
+ if (!strcmp(eng, "box")) {
+ *retpath = g_path_get_dirname(path);
+ r = TRUE;
+ }
+ g_free(eng);
+ }
g_free(path);
}
}
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),