Stick with efreet formatting
efreet has it's own formatting, something like "set ts=4 sw=4 sts=4 expandtab cino=(0W1st0". Please keep it like this, or do the job to convert the whole lib to efl style. SVN revision: 55036
This commit is contained in:
parent
66e52e2829
commit
0c8c2d3c9f
|
@ -44,14 +44,14 @@ term_handler(int sig __UNUSED__, siginfo_t * info __UNUSED__, void *data __UNUSE
|
|||
static void
|
||||
catch_sigterm(void)
|
||||
{
|
||||
struct sigaction act;
|
||||
struct sigaction act;
|
||||
|
||||
act.sa_sigaction = term_handler;
|
||||
act.sa_flags = SA_RESTART | SA_SIGINFO;
|
||||
sigemptyset(&act.sa_mask);
|
||||
act.sa_sigaction = term_handler;
|
||||
act.sa_flags = SA_RESTART | SA_SIGINFO;
|
||||
sigemptyset(&act.sa_mask);
|
||||
|
||||
if (sigaction(SIGTERM, &act, NULL) < 0)
|
||||
perror("sigaction"); /* It's bad if we can't deal with SIGTERM, but not dramatic */
|
||||
if (sigaction(SIGTERM, &act, NULL) < 0)
|
||||
perror("sigaction"); /* It's bad if we can't deal with SIGTERM, but not dramatic */
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -68,8 +68,8 @@ cache_add(const char *path, const char *file_id, int priority __UNUSED__, int *c
|
|||
|
||||
if (verbose)
|
||||
{
|
||||
printf("FOUND: %s\n", path);
|
||||
if (file_id) printf(" (id): %s\n", file_id);
|
||||
printf("FOUND: %s\n", path);
|
||||
if (file_id) printf(" (id): %s\n", file_id);
|
||||
}
|
||||
ext = strrchr(path, '.');
|
||||
if (!ext || (strcmp(ext, ".desktop") && strcmp(ext, ".directory"))) return 1;
|
||||
|
|
|
@ -26,12 +26,12 @@ static int verbose = 0;
|
|||
static Eina_Bool
|
||||
_cache_extention_lookup(const char *ext)
|
||||
{
|
||||
unsigned int i;
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; exts[i]; ++i)
|
||||
if (!strcmp(exts[i], ext))
|
||||
return EINA_TRUE;
|
||||
return EINA_FALSE;
|
||||
for (i = 0; exts[i]; ++i)
|
||||
if (!strcmp(exts[i], ext))
|
||||
return EINA_TRUE;
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
|
@ -47,47 +47,47 @@ cache_fallback_scan_dir(Eina_Hash *icons, Eina_Hash *dirs, const char *dir, Eina
|
|||
if (!it) return 1;
|
||||
|
||||
EINA_ITERATOR_FOREACH(it, entry)
|
||||
{
|
||||
Efreet_Cache_Fallback_Icon *icon;
|
||||
char *name;
|
||||
char *ext;
|
||||
unsigned int i;
|
||||
{
|
||||
Efreet_Cache_Fallback_Icon *icon;
|
||||
char *name;
|
||||
char *ext;
|
||||
unsigned int i;
|
||||
|
||||
if (entry->type == EINA_FILE_DIR)
|
||||
continue;
|
||||
if (entry->type == EINA_FILE_DIR)
|
||||
continue;
|
||||
|
||||
ext = strrchr(entry->path + entry->name_start, '.');
|
||||
if (!ext || !_cache_extention_lookup(ext))
|
||||
continue;
|
||||
ext = strrchr(entry->path + entry->name_start, '.');
|
||||
if (!ext || !_cache_extention_lookup(ext))
|
||||
continue;
|
||||
|
||||
/* icon with known extension */
|
||||
name = entry->path + entry->name_start;
|
||||
*ext = '\0';
|
||||
/* icon with known extension */
|
||||
name = entry->path + entry->name_start;
|
||||
*ext = '\0';
|
||||
|
||||
icon = eina_hash_find(icons, name);
|
||||
if (!icon)
|
||||
{
|
||||
icon = NEW(Efreet_Cache_Fallback_Icon, 1);
|
||||
icon->free = 1;
|
||||
icon->theme = NULL;
|
||||
eina_hash_add(icons, name, icon);
|
||||
}
|
||||
icon = eina_hash_find(icons, name);
|
||||
if (!icon)
|
||||
{
|
||||
icon = NEW(Efreet_Cache_Fallback_Icon, 1);
|
||||
icon->free = 1;
|
||||
icon->theme = NULL;
|
||||
eina_hash_add(icons, name, icon);
|
||||
}
|
||||
|
||||
*ext = '.';
|
||||
*ext = '.';
|
||||
|
||||
for (i = 0; i < icon->icons_count; ++i)
|
||||
if (!strcmp(icon->icons[i], entry->path))
|
||||
break;
|
||||
for (i = 0; i < icon->icons_count; ++i)
|
||||
if (!strcmp(icon->icons[i], entry->path))
|
||||
break;
|
||||
|
||||
if (i != icon->icons_count)
|
||||
continue ;
|
||||
if (i != icon->icons_count)
|
||||
continue ;
|
||||
|
||||
/* we don't really track path deat here, so we will leak... */
|
||||
icon->icons = realloc(icon->icons, sizeof (char *) * (icon->icons_count + 1));
|
||||
icon->icons[icon->icons_count++] = eina_stringshare_add(entry->path);
|
||||
/* we don't really track path deat here, so we will leak... */
|
||||
icon->icons = realloc(icon->icons, sizeof (char *) * (icon->icons_count + 1));
|
||||
icon->icons[icon->icons_count++] = eina_stringshare_add(entry->path);
|
||||
|
||||
*changed = EINA_TRUE;
|
||||
}
|
||||
*changed = EINA_TRUE;
|
||||
}
|
||||
|
||||
eina_iterator_free(it);
|
||||
|
||||
|
@ -145,82 +145,82 @@ cache_scan_path_dir(Efreet_Icon_Theme *theme,
|
|||
if (!it) return 1;
|
||||
|
||||
EINA_ITERATOR_FOREACH(it, entry)
|
||||
{
|
||||
Efreet_Cache_Icon *icon;
|
||||
char *name;
|
||||
char *ext;
|
||||
unsigned int i;
|
||||
{
|
||||
Efreet_Cache_Icon *icon;
|
||||
char *name;
|
||||
char *ext;
|
||||
unsigned int i;
|
||||
|
||||
if (entry->type == EINA_FILE_DIR)
|
||||
continue;
|
||||
if (entry->type == EINA_FILE_DIR)
|
||||
continue;
|
||||
|
||||
ext = strrchr(entry->path + entry->name_start, '.');
|
||||
if (!ext || !_cache_extention_lookup(ext))
|
||||
continue;
|
||||
ext = strrchr(entry->path + entry->name_start, '.');
|
||||
if (!ext || !_cache_extention_lookup(ext))
|
||||
continue;
|
||||
|
||||
/* icon with known extension */
|
||||
name = entry->path + entry->name_start;
|
||||
*ext = '\0';
|
||||
/* icon with known extension */
|
||||
name = entry->path + entry->name_start;
|
||||
*ext = '\0';
|
||||
|
||||
icon = eina_hash_find(icons, name);
|
||||
if (!icon)
|
||||
{
|
||||
icon = NEW(Efreet_Cache_Icon, 1);
|
||||
icon->free = 1;
|
||||
icon->theme = eina_stringshare_add(theme->name.internal);
|
||||
eina_hash_add(icons, name, icon);
|
||||
}
|
||||
else if (icon->theme && strcmp(icon->theme, theme->name.internal))
|
||||
{
|
||||
/* We got this icon from a parent theme */
|
||||
continue;
|
||||
}
|
||||
icon = eina_hash_find(icons, name);
|
||||
if (!icon)
|
||||
{
|
||||
icon = NEW(Efreet_Cache_Icon, 1);
|
||||
icon->free = 1;
|
||||
icon->theme = eina_stringshare_add(theme->name.internal);
|
||||
eina_hash_add(icons, name, icon);
|
||||
}
|
||||
else if (icon->theme && strcmp(icon->theme, theme->name.internal))
|
||||
{
|
||||
/* We got this icon from a parent theme */
|
||||
continue;
|
||||
}
|
||||
|
||||
/* find if we have the same icon in another type */
|
||||
for (i = 0; i < icon->icons_count; ++i)
|
||||
{
|
||||
if ((icon->icons[i]->type == dir->type) &&
|
||||
(icon->icons[i]->normal == dir->size.normal) &&
|
||||
(icon->icons[i]->max == dir->size.max) &&
|
||||
(icon->icons[i]->min == dir->size.min))
|
||||
/* find if we have the same icon in another type */
|
||||
for (i = 0; i < icon->icons_count; ++i)
|
||||
{
|
||||
if ((icon->icons[i]->type == dir->type) &&
|
||||
(icon->icons[i]->normal == dir->size.normal) &&
|
||||
(icon->icons[i]->max == dir->size.max) &&
|
||||
(icon->icons[i]->min == dir->size.min))
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
*ext = '.';
|
||||
*ext = '.';
|
||||
|
||||
if (i != icon->icons_count)
|
||||
{
|
||||
unsigned int j;
|
||||
if (i != icon->icons_count)
|
||||
{
|
||||
unsigned int j;
|
||||
|
||||
/* check if the path already exist */
|
||||
for (j = 0; j < icon->icons[i]->paths_count; ++j)
|
||||
/* check if the path already exist */
|
||||
for (j = 0; j < icon->icons[i]->paths_count; ++j)
|
||||
if (!strcmp(icon->icons[i]->paths[j], entry->path))
|
||||
break ;
|
||||
break ;
|
||||
|
||||
if (j != icon->icons[i]->paths_count)
|
||||
if (j != icon->icons[i]->paths_count)
|
||||
continue ;
|
||||
}
|
||||
/* no icon match so add a new one */
|
||||
else
|
||||
{
|
||||
icon->icons = realloc(icon->icons,
|
||||
sizeof (Efreet_Cache_Icon_Element*) * (++icon->icons_count));
|
||||
icon->icons[i] = NEW(Efreet_Cache_Icon_Element, 1);
|
||||
icon->icons[i]->type = dir->type;
|
||||
icon->icons[i]->normal = dir->size.normal;
|
||||
icon->icons[i]->min = dir->size.min;
|
||||
icon->icons[i]->max = dir->size.max;
|
||||
icon->icons[i]->paths = NULL;
|
||||
icon->icons[i]->paths_count = 0;
|
||||
}
|
||||
}
|
||||
/* no icon match so add a new one */
|
||||
else
|
||||
{
|
||||
icon->icons = realloc(icon->icons,
|
||||
sizeof (Efreet_Cache_Icon_Element*) * (++icon->icons_count));
|
||||
icon->icons[i] = NEW(Efreet_Cache_Icon_Element, 1);
|
||||
icon->icons[i]->type = dir->type;
|
||||
icon->icons[i]->normal = dir->size.normal;
|
||||
icon->icons[i]->min = dir->size.min;
|
||||
icon->icons[i]->max = dir->size.max;
|
||||
icon->icons[i]->paths = NULL;
|
||||
icon->icons[i]->paths_count = 0;
|
||||
}
|
||||
|
||||
/* and finally store the path */
|
||||
icon->icons[i]->paths = realloc(icon->icons[i]->paths,
|
||||
sizeof (char*) * (icon->icons[i]->paths_count + 1));
|
||||
icon->icons[i]->paths[icon->icons[i]->paths_count++] = eina_stringshare_add(entry->path);
|
||||
/* and finally store the path */
|
||||
icon->icons[i]->paths = realloc(icon->icons[i]->paths,
|
||||
sizeof (char*) * (icon->icons[i]->paths_count + 1));
|
||||
icon->icons[i]->paths[icon->icons[i]->paths_count++] = eina_stringshare_add(entry->path);
|
||||
|
||||
*changed = EINA_TRUE;
|
||||
}
|
||||
*changed = EINA_TRUE;
|
||||
}
|
||||
|
||||
eina_iterator_free(it);
|
||||
|
||||
|
@ -234,7 +234,7 @@ cache_scan_path(Efreet_Icon_Theme *theme, Eina_Hash *icons, const char *path, Ei
|
|||
Efreet_Icon_Theme_Directory *dir;
|
||||
|
||||
EINA_LIST_FOREACH(theme->directories, l, dir)
|
||||
if (!cache_scan_path_dir(theme, path, dir, icons, changed)) return 0;
|
||||
if (!cache_scan_path_dir(theme, path, dir, icons, changed)) return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -252,26 +252,26 @@ cache_scan(Efreet_Icon_Theme *theme, Eina_Hash *themes, Eina_Hash *icons, Eina_B
|
|||
|
||||
/* scan theme */
|
||||
EINA_LIST_FOREACH(theme->paths, l, path)
|
||||
if (!cache_scan_path(theme, icons, path, changed)) return 0;
|
||||
if (!cache_scan_path(theme, icons, path, changed)) return 0;
|
||||
|
||||
/* scan inherits */
|
||||
if (theme->inherits)
|
||||
{
|
||||
EINA_LIST_FOREACH(theme->inherits, l, name)
|
||||
{
|
||||
Efreet_Icon_Theme *inherit;
|
||||
{
|
||||
EINA_LIST_FOREACH(theme->inherits, l, name)
|
||||
{
|
||||
Efreet_Icon_Theme *inherit;
|
||||
|
||||
inherit = efreet_icon_theme_find(name);
|
||||
if (!inherit) fprintf(stderr, "Theme `%s` not found for `%s`.\n",
|
||||
name, theme->name.internal);
|
||||
if (!cache_scan(inherit, themes, icons, changed)) return 0;
|
||||
}
|
||||
}
|
||||
inherit = efreet_icon_theme_find(name);
|
||||
if (!inherit) fprintf(stderr, "Theme `%s` not found for `%s`.\n",
|
||||
name, theme->name.internal);
|
||||
if (!cache_scan(inherit, themes, icons, changed)) return 0;
|
||||
}
|
||||
}
|
||||
else if (strcmp(theme->name.internal, "hicolor"))
|
||||
{
|
||||
theme = efreet_icon_theme_find("hicolor");
|
||||
if (!cache_scan(theme, themes, icons, changed)) return 0;
|
||||
}
|
||||
{
|
||||
theme = efreet_icon_theme_find("hicolor");
|
||||
if (!cache_scan(theme, themes, icons, changed)) return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -279,25 +279,25 @@ cache_scan(Efreet_Icon_Theme *theme, Eina_Hash *themes, Eina_Hash *icons, Eina_B
|
|||
static int
|
||||
cache_lock_file(void)
|
||||
{
|
||||
char file[PATH_MAX];
|
||||
struct flock fl;
|
||||
int lockfd;
|
||||
char file[PATH_MAX];
|
||||
struct flock fl;
|
||||
int lockfd;
|
||||
|
||||
snprintf(file, sizeof(file), "%s/.efreet/icon_data.lock", efreet_home_dir_get());
|
||||
lockfd = open(file, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);
|
||||
if (lockfd < 0) return -1;
|
||||
snprintf(file, sizeof(file), "%s/.efreet/icon_data.lock", efreet_home_dir_get());
|
||||
lockfd = open(file, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);
|
||||
if (lockfd < 0) return -1;
|
||||
|
||||
memset(&fl, 0, sizeof(struct flock));
|
||||
fl.l_type = F_WRLCK;
|
||||
fl.l_whence = SEEK_SET;
|
||||
if (fcntl(lockfd, F_SETLK, &fl) < 0)
|
||||
{
|
||||
memset(&fl, 0, sizeof(struct flock));
|
||||
fl.l_type = F_WRLCK;
|
||||
fl.l_whence = SEEK_SET;
|
||||
if (fcntl(lockfd, F_SETLK, &fl) < 0)
|
||||
{
|
||||
if (verbose) printf("LOCKED! You may want to delete %s if this persists\n", file);
|
||||
close(lockfd);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
return lockfd;
|
||||
return lockfd;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -309,14 +309,14 @@ term_handler(int sig __UNUSED__, siginfo_t * info __UNUSED__, void *data __UNUSE
|
|||
static void
|
||||
catch_sigterm(void)
|
||||
{
|
||||
struct sigaction act;
|
||||
struct sigaction act;
|
||||
|
||||
act.sa_sigaction = term_handler;
|
||||
act.sa_flags = SA_RESTART | SA_SIGINFO;
|
||||
sigemptyset(&act.sa_mask);
|
||||
act.sa_sigaction = term_handler;
|
||||
act.sa_flags = SA_RESTART | SA_SIGINFO;
|
||||
sigemptyset(&act.sa_mask);
|
||||
|
||||
if (sigaction(SIGTERM, &act, NULL) < 0)
|
||||
perror("sigaction"); /* It's bad if we can't deal with SIGTERM, but not dramatic */
|
||||
if (sigaction(SIGTERM, &act, NULL) < 0)
|
||||
perror("sigaction"); /* It's bad if we can't deal with SIGTERM, but not dramatic */
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -329,35 +329,35 @@ main(int argc, char **argv)
|
|||
* - pass extra dirs to binary, and read them
|
||||
* - make sure programs with different extra dirs all work together
|
||||
*/
|
||||
Efreet_Cache_Theme *cache;
|
||||
Efreet_Icon_Theme *theme;
|
||||
Eet_Data_Descriptor *edd;
|
||||
Eet_File *ef;
|
||||
Eina_List *l = NULL;
|
||||
char file[PATH_MAX];
|
||||
char *dir = NULL;
|
||||
Eina_Bool changed = EINA_FALSE;
|
||||
int lockfd = -1;
|
||||
int i;
|
||||
Efreet_Cache_Theme *cache;
|
||||
Efreet_Icon_Theme *theme;
|
||||
Eet_Data_Descriptor *edd;
|
||||
Eet_File *ef;
|
||||
Eina_List *l = NULL;
|
||||
char file[PATH_MAX];
|
||||
char *dir = NULL;
|
||||
Eina_Bool changed = EINA_FALSE;
|
||||
int lockfd = -1;
|
||||
int i;
|
||||
|
||||
for (i = 1; i < argc; i++)
|
||||
{
|
||||
for (i = 1; i < argc; i++)
|
||||
{
|
||||
if (!strcmp(argv[i], "-v")) verbose = 1;
|
||||
else if ((!strcmp(argv[i], "-h")) ||
|
||||
(!strcmp(argv[i], "-help")) ||
|
||||
(!strcmp(argv[i], "--h")) ||
|
||||
(!strcmp(argv[i], "--help")))
|
||||
{
|
||||
printf("Options:\n");
|
||||
printf(" -v Verbose mode\n");
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
{
|
||||
printf("Options:\n");
|
||||
printf(" -v Verbose mode\n");
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* init external subsystems */
|
||||
if (!eina_init()) return -1;
|
||||
if (!eet_init()) return -1;
|
||||
if (!ecore_init()) return -1;
|
||||
/* init external subsystems */
|
||||
if (!eina_init()) return -1;
|
||||
if (!eet_init()) return -1;
|
||||
if (!ecore_init()) return -1;
|
||||
|
||||
efreet_cache_update = 0;
|
||||
|
||||
|
@ -381,13 +381,13 @@ main(int argc, char **argv)
|
|||
if (!efreet_init()) goto on_error;
|
||||
|
||||
if (argc > 1)
|
||||
{
|
||||
for (i = 1; i < argc; i++)
|
||||
{
|
||||
theme = efreet_icon_theme_find(argv[i]);
|
||||
if (theme) l = eina_list_append(l, theme);
|
||||
}
|
||||
}
|
||||
{
|
||||
for (i = 1; i < argc; i++)
|
||||
{
|
||||
theme = efreet_icon_theme_find(argv[i]);
|
||||
if (theme) l = eina_list_append(l, theme);
|
||||
}
|
||||
}
|
||||
|
||||
if (!l) l = efreet_icon_theme_list_get();
|
||||
|
||||
|
@ -397,52 +397,52 @@ main(int argc, char **argv)
|
|||
edd = efreet_icon_theme_edd();
|
||||
|
||||
EINA_LIST_FREE(l, theme)
|
||||
{
|
||||
Eina_Hash *themes;
|
||||
{
|
||||
Eina_Hash *themes;
|
||||
|
||||
themes = eina_hash_string_superfast_new(NULL);
|
||||
themes = eina_hash_string_superfast_new(NULL);
|
||||
|
||||
/* read icons from the eet file */
|
||||
cache = eet_data_read(ef, edd, theme->name.internal);
|
||||
/* read icons from the eet file */
|
||||
cache = eet_data_read(ef, edd, theme->name.internal);
|
||||
|
||||
/* Wype out in case of version change */
|
||||
if (cache
|
||||
&& cache->version.major != EFREET_CACHE_MAJOR
|
||||
&& cache->version.minor != EFREET_CACHE_MINOR)
|
||||
{
|
||||
eina_hash_free(cache->icons);
|
||||
free(cache);
|
||||
cache = NULL;
|
||||
}
|
||||
/* Wype out in case of version change */
|
||||
if (cache
|
||||
&& cache->version.major != EFREET_CACHE_MAJOR
|
||||
&& cache->version.minor != EFREET_CACHE_MINOR)
|
||||
{
|
||||
eina_hash_free(cache->icons);
|
||||
free(cache);
|
||||
cache = NULL;
|
||||
}
|
||||
|
||||
/* No existing cache before, so create it */
|
||||
if (!cache)
|
||||
{
|
||||
cache = malloc(sizeof (Efreet_Cache_Theme));
|
||||
if (!cache) goto on_error_efreet;
|
||||
/* No existing cache before, so create it */
|
||||
if (!cache)
|
||||
{
|
||||
cache = malloc(sizeof (Efreet_Cache_Theme));
|
||||
if (!cache) goto on_error_efreet;
|
||||
|
||||
cache->version.major = EFREET_CACHE_MAJOR;
|
||||
cache->version.minor = EFREET_CACHE_MINOR;
|
||||
cache->version.major = EFREET_CACHE_MAJOR;
|
||||
cache->version.minor = EFREET_CACHE_MINOR;
|
||||
|
||||
cache->icons = eina_hash_string_superfast_new((Eina_Free_Cb) efreet_cache_icon_free);
|
||||
cache->icons = eina_hash_string_superfast_new((Eina_Free_Cb) efreet_cache_icon_free);
|
||||
|
||||
changed = EINA_TRUE;
|
||||
}
|
||||
changed = EINA_TRUE;
|
||||
}
|
||||
|
||||
if (cache_scan(theme, themes, cache->icons, &changed))
|
||||
{
|
||||
fprintf(stderr, "generated: '%s' %i (%i)\n",
|
||||
theme->name.internal,
|
||||
changed,
|
||||
eina_hash_population(cache->icons));
|
||||
if (changed)
|
||||
if (cache_scan(theme, themes, cache->icons, &changed))
|
||||
{
|
||||
fprintf(stderr, "generated: '%s' %i (%i)\n",
|
||||
theme->name.internal,
|
||||
changed,
|
||||
eina_hash_population(cache->icons));
|
||||
if (changed)
|
||||
eet_data_write(ef, edd, theme->name.internal, cache, 1);
|
||||
changed = EINA_FALSE;
|
||||
}
|
||||
changed = EINA_FALSE;
|
||||
}
|
||||
|
||||
eina_hash_free(themes);
|
||||
eina_hash_free(cache->icons);
|
||||
free(cache);
|
||||
eina_hash_free(themes);
|
||||
eina_hash_free(cache->icons);
|
||||
free(cache);
|
||||
}
|
||||
|
||||
edd = efreet_icon_fallback_edd();
|
||||
|
@ -450,33 +450,33 @@ main(int argc, char **argv)
|
|||
/* read fallback icons from the eet file */
|
||||
cache = eet_data_read(ef, edd, "efreet/fallback");
|
||||
if (cache && cache->version.major != EFREET_CACHE_MAJOR)
|
||||
{
|
||||
eina_hash_free(cache->icons);
|
||||
free(cache);
|
||||
cache = NULL;
|
||||
}
|
||||
{
|
||||
eina_hash_free(cache->icons);
|
||||
free(cache);
|
||||
cache = NULL;
|
||||
}
|
||||
|
||||
/* No existing fallback, create it */
|
||||
if (!cache)
|
||||
{
|
||||
cache = malloc(sizeof (Efreet_Cache_Theme));
|
||||
if (!cache) goto on_error_efreet;
|
||||
{
|
||||
cache = malloc(sizeof (Efreet_Cache_Theme));
|
||||
if (!cache) goto on_error_efreet;
|
||||
|
||||
cache->version.major = EFREET_CACHE_MAJOR;
|
||||
cache->version.minor = EFREET_CACHE_MINOR;
|
||||
cache->version.major = EFREET_CACHE_MAJOR;
|
||||
cache->version.minor = EFREET_CACHE_MINOR;
|
||||
|
||||
cache->icons = eina_hash_string_superfast_new((Eina_Free_Cb) efreet_cache_icon_fallback_free);
|
||||
cache->icons = eina_hash_string_superfast_new((Eina_Free_Cb) efreet_cache_icon_fallback_free);
|
||||
|
||||
changed = EINA_TRUE;
|
||||
}
|
||||
changed = EINA_TRUE;
|
||||
}
|
||||
|
||||
/* Save fallback in the right part */
|
||||
if (cache_fallback_scan(cache->icons, &changed))
|
||||
{
|
||||
fprintf(stderr, "generated: fallback %i (%i)\n", changed, eina_hash_population(cache->icons));
|
||||
if (changed)
|
||||
eet_data_write(ef, edd, "efreet/fallback", cache, 1);
|
||||
}
|
||||
{
|
||||
fprintf(stderr, "generated: fallback %i (%i)\n", changed, eina_hash_population(cache->icons));
|
||||
if (changed)
|
||||
eet_data_write(ef, edd, "efreet/fallback", cache, 1);
|
||||
}
|
||||
|
||||
eina_hash_free(cache->icons);
|
||||
free(cache);
|
||||
|
@ -484,10 +484,10 @@ main(int argc, char **argv)
|
|||
/* save data */
|
||||
eet_close(ef);
|
||||
|
||||
on_error_efreet:
|
||||
on_error_efreet:
|
||||
efreet_shutdown();
|
||||
|
||||
on_error:
|
||||
on_error:
|
||||
close(lockfd);
|
||||
|
||||
ecore_shutdown();
|
||||
|
|
|
@ -26,77 +26,77 @@ int verbose = 0;
|
|||
static void
|
||||
dump(Efreet_Icon_Theme *theme, Eet_File *ef)
|
||||
{
|
||||
Efreet_Cache_Theme *cache;
|
||||
Eina_Iterator *it;
|
||||
const char *key;
|
||||
unsigned int count;
|
||||
double start, avg;
|
||||
Efreet_Cache_Theme *cache;
|
||||
Eina_Iterator *it;
|
||||
const char *key;
|
||||
unsigned int count;
|
||||
double start, avg;
|
||||
|
||||
start = ecore_time_get();
|
||||
start = ecore_time_get();
|
||||
|
||||
printf("open: %s\n", theme->name.internal);
|
||||
printf("open: %s\n", theme->name.internal);
|
||||
|
||||
cache = eet_data_read(ef, edd, theme->name.internal);
|
||||
cache = eet_data_read(ef, edd, theme->name.internal);
|
||||
|
||||
printf("read: %s %f\n", theme->name.internal, ecore_time_get() - start);
|
||||
printf("read: %s %f\n", theme->name.internal, ecore_time_get() - start);
|
||||
|
||||
if (!cache || !cache->icons) return ;
|
||||
if (!cache || !cache->icons) return ;
|
||||
|
||||
it = eina_hash_iterator_key_new(cache->icons);
|
||||
it = eina_hash_iterator_key_new(cache->icons);
|
||||
|
||||
EINA_ITERATOR_FOREACH(it, key)
|
||||
{
|
||||
EINA_ITERATOR_FOREACH(it, key)
|
||||
{
|
||||
Efreet_Cache_Icon *icon;
|
||||
unsigned int i;
|
||||
|
||||
icon = eina_hash_find(cache->icons, key);
|
||||
|
||||
for (i = 0; i < icon->icons_count; ++i)
|
||||
count += icon->icons[i]->paths_count;
|
||||
}
|
||||
count += icon->icons[i]->paths_count;
|
||||
}
|
||||
|
||||
eina_iterator_free(it);
|
||||
eina_iterator_free(it);
|
||||
|
||||
eina_hash_free(cache->icons);
|
||||
free(cache);
|
||||
eina_hash_free(cache->icons);
|
||||
free(cache);
|
||||
|
||||
start = ecore_time_get() - start;
|
||||
avg = start / count;
|
||||
printf("read: %s - %i paths (time: %f) (avg %f)\n", theme->name.internal, count, start, avg);
|
||||
start = ecore_time_get() - start;
|
||||
avg = start / count;
|
||||
printf("read: %s - %i paths (time: %f) (avg %f)\n", theme->name.internal, count, start, avg);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
Eet_File *ef;
|
||||
Eina_List *l = NULL;
|
||||
Efreet_Icon_Theme *theme;
|
||||
int i;
|
||||
Eet_File *ef;
|
||||
Eina_List *l = NULL;
|
||||
Efreet_Icon_Theme *theme;
|
||||
int i;
|
||||
|
||||
efreet_cache_update = 0;
|
||||
efreet_cache_update = 0;
|
||||
|
||||
if (!efreet_init()) return -1;
|
||||
if (!efreet_init()) return -1;
|
||||
|
||||
edd = efreet_icon_theme_edd();
|
||||
if (!edd) return -1;
|
||||
edd = efreet_icon_theme_edd();
|
||||
if (!edd) return -1;
|
||||
|
||||
if (argc > 1)
|
||||
for (i = 1; i < argc; i++)
|
||||
{
|
||||
theme = efreet_icon_theme_find(argv[i]);
|
||||
if (theme) l = eina_list_append(l, theme);
|
||||
}
|
||||
if (argc > 1)
|
||||
for (i = 1; i < argc; i++)
|
||||
{
|
||||
theme = efreet_icon_theme_find(argv[i]);
|
||||
if (theme) l = eina_list_append(l, theme);
|
||||
}
|
||||
|
||||
if (!l) l = efreet_icon_theme_list_get();
|
||||
if (!l) l = efreet_icon_theme_list_get();
|
||||
|
||||
ef = eet_open(efreet_icon_cache_file(), EET_FILE_MODE_READ);
|
||||
if (!ef) return -1;
|
||||
ef = eet_open(efreet_icon_cache_file(), EET_FILE_MODE_READ);
|
||||
if (!ef) return -1;
|
||||
|
||||
EINA_LIST_FREE(l, theme)
|
||||
dump(theme, ef);
|
||||
EINA_LIST_FREE(l, theme)
|
||||
dump(theme, ef);
|
||||
|
||||
eet_close(ef);
|
||||
eet_close(ef);
|
||||
|
||||
efreet_shutdown();
|
||||
return 0;
|
||||
efreet_shutdown();
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue