if (!paths)
return NULL;
spl = g_strsplit(paths, ":", -1);
- for (it = spl; *it; ++it)
- list = slist_path_add(list, *it, (GSListFunc) g_slist_append);
+ for (it = spl; *it; ++it) {
+ if ((*it)[0]) /* skip empty strings */
+ list = slist_path_add(list, *it, (GSListFunc) g_slist_append);
+ }
g_free(spl);
return list;
}
for (it = p->autostart_dirs; it; it = g_slist_next(it))
g_free(it->data);
g_slist_free(p->autostart_dirs);
+ for (it = p->exec_dirs; it; it = g_slist_next(it))
+ g_free(it->data);
+ g_slist_free(p->exec_dirs);
g_free(p->config_home);
g_free(p->data_home);
g_free(p->cache_home);
+ g_free(p->gid);
g_slice_free(ObtPaths, p);
}
const gchar *const path)
{
struct stat st;
- BSEARCH_SETUP(guint);
+ BSEARCH_SETUP();
if (stat(path, &st) != 0)
return FALSE;
GSList *it;
for (it = p->exec_dirs; it; it = g_slist_next(it)) {
- gchar *f = g_strdup_printf(it->data, G_DIR_SEPARATOR_S, path);
+ gchar *f = g_build_filename(it->data, path, NULL);
gboolean e = try_exec(p, f);
g_free(f);
if (e) return TRUE;