static Eina_List * _font_list_get(const Evas *e) { Eina_List *flist = evas_font_available_list(e); Eina_List *itr, *nitr; const char *font, *prev_font = NULL; flist = eina_list_sort(flist, eina_list_count(flist), (Eina_Compare_Cb) strcasecmp); EINA_LIST_FOREACH_SAFE(flist, itr, nitr, font) { Elm_Font_Properties *efp; efp = elm_font_properties_get(font); /* Remove dups */ if (prev_font && !strcmp(efp->name, prev_font)) { flist = eina_list_remove_list(flist, itr); } else { eina_stringshare_replace(&font, efp->name); prev_font = font; eina_list_data_set(itr, font); } elm_font_properties_free(efp); }
int main(int argc, char **argv) { (void)argc; (void)argv; Eina_List *list = NULL, *r_list; Eina_List *l; Eina_Iterator *itr; void *list_data; eina_init(); list = eina_list_append(list, "caprica"); list = eina_list_append(list, "sagitarius"); list = eina_list_append(list, "aerilon"); list = eina_list_append(list, "gemenon"); list = eina_list_promote_list(list, eina_list_nth_list(list, 2)); list = eina_list_demote_list(list, eina_list_nth_list(list, 2)); list = eina_list_remove(list, "sagitarius"); l = eina_list_data_find_list(list, "aerilon"); eina_list_data_set(l, "aquarius"); printf("size: %d\n", eina_list_count(list)); r_list = eina_list_reverse_clone(list); itr = eina_list_iterator_new(r_list); EINA_ITERATOR_FOREACH(itr, list_data) printf("%s\n", (char*)list_data); eina_iterator_free(itr); eina_list_free(list); eina_list_free(r_list); eina_shutdown(); return 0; }