forked from enlightenment/efl
parent
f880806ff2
commit
6d10aea822
|
@ -35,7 +35,6 @@ static int _efreet_base_log_dom = -1;
|
|||
static const char *efreet_dir_get(const char *key, const char *fallback);
|
||||
static Eina_List *efreet_dirs_get(const char *key,
|
||||
const char *fallback);
|
||||
static const char *efreet_path_clean(const char *path);
|
||||
|
||||
/**
|
||||
* @internal
|
||||
|
@ -93,7 +92,7 @@ efreet_home_dir_get(void)
|
|||
if (!efreet_home_dir || efreet_home_dir[0] == '\0')
|
||||
efreet_home_dir = "/tmp";
|
||||
|
||||
efreet_home_dir = efreet_path_clean(efreet_home_dir);
|
||||
efreet_home_dir = eina_stringshare_add(efreet_home_dir);
|
||||
|
||||
return efreet_home_dir;
|
||||
}
|
||||
|
@ -204,10 +203,10 @@ efreet_dir_get(const char *key, const char *fallback)
|
|||
dir = malloc(sizeof(char) * len);
|
||||
snprintf(dir, len, "%s%s", user, fallback);
|
||||
|
||||
t = efreet_path_clean(dir);
|
||||
t = eina_stringshare_add(dir);
|
||||
FREE(dir);
|
||||
}
|
||||
else t = efreet_path_clean(dir);
|
||||
else t = eina_stringshare_add(dir);
|
||||
|
||||
return t;
|
||||
}
|
||||
|
@ -240,37 +239,14 @@ efreet_dirs_get(const char *key, const char *fallback)
|
|||
{
|
||||
*p = '\0';
|
||||
if (!eina_list_search_unsorted(dirs, EINA_COMPARE_CB(strcmp), s))
|
||||
dirs = eina_list_append(dirs, (void *)efreet_path_clean(s));
|
||||
dirs = eina_list_append(dirs, (void *)eina_stringshare_add(s));
|
||||
|
||||
s = ++p;
|
||||
p = strchr(s, EFREET_PATH_SEP);
|
||||
}
|
||||
if (!eina_list_search_unsorted(dirs, EINA_COMPARE_CB(strcmp), s))
|
||||
dirs = eina_list_append(dirs, (void *)efreet_path_clean(s));
|
||||
dirs = eina_list_append(dirs, (void *)eina_stringshare_add(s));
|
||||
FREE(tmp);
|
||||
|
||||
return dirs;
|
||||
}
|
||||
|
||||
static const char *
|
||||
efreet_path_clean(const char *path)
|
||||
{
|
||||
char *p, *pp;
|
||||
const char *ret;
|
||||
|
||||
if (!path) return eina_stringshare_add("");
|
||||
if (!*path) return eina_stringshare_add("");
|
||||
|
||||
p = strdup(path);
|
||||
if (!p) return eina_stringshare_add("");
|
||||
for (pp = p; *pp; pp++)
|
||||
{
|
||||
if (*pp == '/' && *(pp + 1) == '/')
|
||||
memmove(pp, pp + 1, strlen(pp + 1) + 1);
|
||||
if (*pp == '/' && *(pp + 1) == '\0')
|
||||
*pp = '\0';
|
||||
}
|
||||
ret = eina_stringshare_add(p);
|
||||
free(p);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -358,15 +358,18 @@ efreet_desktop_new(const char *file)
|
|||
{
|
||||
/* TODO: Need file monitor on file and events to notify change */
|
||||
Efreet_Desktop *desktop = NULL;
|
||||
char *rp = NULL;
|
||||
|
||||
rp = ecore_file_realpath(file);
|
||||
if (cache)
|
||||
{
|
||||
/* TODO: Check if the cached version is out of date */
|
||||
desktop = eet_data_read(cache, desktop_edd, file);
|
||||
desktop = eet_data_read(cache, desktop_edd, rp);
|
||||
if (desktop)
|
||||
{
|
||||
desktop->ref = 1;
|
||||
desktop->eet = 1;
|
||||
free(rp);
|
||||
return desktop;
|
||||
}
|
||||
}
|
||||
|
@ -375,22 +378,22 @@ efreet_desktop_new(const char *file)
|
|||
* efreet_desktop_cache_create can add it to the cache
|
||||
*/
|
||||
|
||||
if (!ecore_file_exists(file)) return NULL;
|
||||
if (!ecore_file_exists(rp)) goto error;
|
||||
|
||||
desktop = NEW(Efreet_Desktop, 1);
|
||||
if (!desktop) return NULL;
|
||||
if (!desktop) goto error;
|
||||
|
||||
desktop->orig_path = strdup(file);
|
||||
desktop->orig_path = rp;
|
||||
|
||||
if (!efreet_desktop_read(desktop))
|
||||
{
|
||||
efreet_desktop_free(desktop);
|
||||
return NULL;
|
||||
}
|
||||
if (!efreet_desktop_read(desktop)) goto error;
|
||||
|
||||
desktop->ref = 1;
|
||||
|
||||
return desktop;
|
||||
error:
|
||||
if (desktop) efreet_desktop_free(desktop);
|
||||
if (rp) free(rp);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue