1/* list.c */ 2void list_add_watch(list_T *l, listwatch_T *lw); 3void list_rem_watch(list_T *l, listwatch_T *lwrem); 4void list_fix_watch(list_T *l, listitem_T *item); 5list_T *list_alloc(void); 6list_T *list_alloc_id(alloc_id_T id); 7int rettv_list_alloc(typval_T *rettv); 8int rettv_list_alloc_id(typval_T *rettv, alloc_id_T id); 9void rettv_list_set(typval_T *rettv, list_T *l); 10void list_unref(list_T *l); 11int list_free_nonref(int copyID); 12void list_free_items(int copyID); 13void list_free(list_T *l); 14listitem_T *listitem_alloc(void); 15void listitem_free(listitem_T *item); 16void listitem_remove(list_T *l, listitem_T *item); 17long list_len(list_T *l); 18int list_equal(list_T *l1, list_T *l2, int ic, int recursive); 19listitem_T *list_find(list_T *l, long n); 20long list_find_nr(list_T *l, long idx, int *errorp); 21char_u *list_find_str(list_T *l, long idx); 22long list_idx_of_item(list_T *l, listitem_T *item); 23void list_append(list_T *l, listitem_T *item); 24int list_append_tv(list_T *l, typval_T *tv); 25int list_append_dict(list_T *list, dict_T *dict); 26int list_append_list(list_T *list1, list_T *list2); 27int list_append_string(list_T *l, char_u *str, int len); 28int list_append_number(list_T *l, varnumber_T n); 29int list_insert_tv(list_T *l, typval_T *tv, listitem_T *item); 30void list_insert(list_T *l, listitem_T *ni, listitem_T *item); 31int list_extend(list_T *l1, list_T *l2, listitem_T *bef); 32int list_concat(list_T *l1, list_T *l2, typval_T *tv); 33list_T *list_copy(list_T *orig, int deep, int copyID); 34void vimlist_remove(list_T *l, listitem_T *item, listitem_T *item2); 35char_u *list2string(typval_T *tv, int copyID, int restore_copyID); 36int list_join(garray_T *gap, list_T *l, char_u *sep, int echo_style, int restore_copyID, int copyID); 37int get_list_tv(char_u **arg, typval_T *rettv, int evaluate); 38int write_list(FILE *fd, list_T *list, int binary); 39void init_static_list(staticList10_T *sl); 40/* vim: set ft=c : */ 41