示例#1
0
文件: filelist.c 项目: trapd00r/feh
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);
}
示例#2
0
文件: gib_hash.c 项目: cbane/giblib
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;
}