static Eina_Hash *exec = NULL;
static int
+strcmplen(const void *data1, const void *data2)
+{
+ return strncmp(data1, data2, eina_stringshare_strlen(data1));
+}
+
+static int
cache_add(const char *path, const char *file_id, int priority __UNUSED__, int *changed)
{
Efreet_Desktop *desk;
Efreet_Cache_Hash hash;
Efreet_Cache_Version version;
Eina_List *dirs = NULL;
- Eina_List *scanned = NULL;
+ Eina_List *system = NULL;
Efreet_Cache_Array_String *user_dirs = NULL;
Eina_List *extra_dirs = NULL;
Eina_List *store_dirs = NULL;
char file_id[PATH_MAX] = { '\0' };
if (!cache_scan(path, file_id, priority++, 1, &changed)) goto error;
- scanned = eina_list_append(scanned, path);
+ system = eina_list_append(system, path);
}
if (user_dirs)
for (j = 0; j < user_dirs->array_count; j++)
{
- if (eina_list_search_unsorted_list(scanned, EINA_COMPARE_CB(strcmp), user_dirs->array[j]))
+ if (eina_list_search_unsorted_list(system, strcmplen, user_dirs->array[j]))
continue;
if (!ecore_file_is_dir(user_dirs->array[j])) continue;
if (!cache_scan(user_dirs->array[j], NULL, priority, 0, &changed)) goto error;
- scanned = eina_list_append(scanned, eina_stringshare_add(user_dirs->array[j]));
store_dirs = eina_list_append(store_dirs, user_dirs->array[j]);
}
EINA_LIST_FOREACH(extra_dirs, l, path)
{
- if (eina_list_search_unsorted_list(scanned, EINA_COMPARE_CB(strcmp), path))
+ if (eina_list_search_unsorted_list(system, strcmplen, path))
+ continue;
+ if (eina_list_search_unsorted_list(store_dirs, EINA_COMPARE_CB(strcmp), path))
continue;
if (!ecore_file_is_dir(path)) continue;
close(tmpfd);
}
- EINA_LIST_FREE(scanned, dir)
+ EINA_LIST_FREE(system, dir)
eina_stringshare_del(dir);
eina_list_free(extra_dirs);
eina_list_free(store_dirs);
ecore_error:
eet_shutdown();
eet_error:
- EINA_LIST_FREE(scanned, dir)
+ EINA_LIST_FREE(system, dir)
eina_stringshare_del(dir);
eina_list_free(extra_dirs);
eina_list_free(store_dirs);
static void *hash_array_string_add(void *hash, const char *key, void *data);
-static int strcmplen(const void *data1, const void *data2);
-
EAPI int EFREET_EVENT_ICON_CACHE_UPDATE = 0;
EAPI int EFREET_EVENT_DESKTOP_CACHE_UPDATE = 0;
EAPI int EFREET_EVENT_DESKTOP_CACHE_BUILD = 0;
}
efreet_cache_array_string_free(arr);
}
- if (!eina_list_search_unsorted_list(desktop_dirs_add, strcmplen, dir))
+ if (!eina_list_search_unsorted_list(desktop_dirs_add, EINA_COMPARE_CB(strcmp), dir))
desktop_dirs_add = eina_list_append(desktop_dirs_add, eina_stringshare_add(dir));
efreet_cache_desktop_update();
eina_hash_add(hash, key, data);
return hash;
}
-
-static int
-strcmplen(const void *data1, const void *data2)
-{
- return strncmp(data1, data2, strlen(data1));
-}
-