gib_list *feh_file_info_preload(gib_list * list) { gib_list *l; feh_file *file = NULL; gib_list *remove_list = NULL; if (opt.verbose) fprintf(stdout, PACKAGE " - preloading...\n"); for (l = list; l; l = l->next) { file = FEH_FILE(l->data); D(5, ("file %p, file->next %p, file->name %s\n", l, l->next, file->name)); if (feh_file_info_load(file, NULL)) { D(3, ("Failed to load file %p\n", file)); remove_list = gib_list_add_front(remove_list, l); if (opt.verbose) feh_display_status('x'); } else if (opt.verbose) feh_display_status('.'); } if (opt.verbose) fprintf(stdout, "\n"); if (remove_list) { for (l = remove_list; l; l = l->next) filelist = list = gib_list_remove(list, (gib_list *) l->data); gib_list_free(remove_list); } return(list); }
void gib_hash_free(gib_hash *hash) { /* free hash keys as it's not taken care of by gib_list_free */ gib_list *i; for (i = GIB_LIST(hash->base); i; i = i->next) gib_efree(GIB_HASH_NODE(i)->key); gib_list_free(GIB_LIST(hash->base)); gib_efree(hash); return; }