blob: c3c3227f59c2b99c9e197980068ab714e2a53628 [file] [log] [blame]
Bram Moolenaarda861d62016-07-17 15:46:27 +02001/* list.c */
2void list_add_watch(list_T *l, listwatch_T *lw);
3void list_rem_watch(list_T *l, listwatch_T *lwrem);
Bram Moolenaarda861d62016-07-17 15:46:27 +02004list_T *list_alloc(void);
Bram Moolenaarf49cc602018-11-11 15:21:05 +01005list_T *list_alloc_id(alloc_id_T id);
Bram Moolenaar8a7d6542020-01-26 15:56:19 +01006list_T *list_alloc_with_items(int count);
7void list_set_item(list_T *l, int idx, typval_T *tv);
Bram Moolenaarda861d62016-07-17 15:46:27 +02008int rettv_list_alloc(typval_T *rettv);
Bram Moolenaar162b7142018-12-21 15:17:36 +01009int rettv_list_alloc_id(typval_T *rettv, alloc_id_T id);
Bram Moolenaar45cf6e92017-04-30 20:25:19 +020010void rettv_list_set(typval_T *rettv, list_T *l);
Bram Moolenaarda861d62016-07-17 15:46:27 +020011void list_unref(list_T *l);
12int list_free_nonref(int copyID);
13void list_free_items(int copyID);
14void list_free(list_T *l);
15listitem_T *listitem_alloc(void);
Bram Moolenaar8a7d6542020-01-26 15:56:19 +010016void listitem_free(list_T *l, listitem_T *item);
Bram Moolenaarda861d62016-07-17 15:46:27 +020017void listitem_remove(list_T *l, listitem_T *item);
18long list_len(list_T *l);
19int list_equal(list_T *l1, list_T *l2, int ic, int recursive);
20listitem_T *list_find(list_T *l, long n);
21long list_find_nr(list_T *l, long idx, int *errorp);
22char_u *list_find_str(list_T *l, long idx);
Bram Moolenaar5b5ae292021-02-20 17:04:02 +010023listitem_T *list_find_index(list_T *l, long *idx);
Bram Moolenaarda861d62016-07-17 15:46:27 +020024long list_idx_of_item(list_T *l, listitem_T *item);
25void list_append(list_T *l, listitem_T *item);
26int list_append_tv(list_T *l, typval_T *tv);
27int list_append_dict(list_T *list, dict_T *dict);
Bram Moolenaar4f505882018-02-10 21:06:32 +010028int list_append_list(list_T *list1, list_T *list2);
Bram Moolenaarda861d62016-07-17 15:46:27 +020029int list_append_string(list_T *l, char_u *str, int len);
30int list_append_number(list_T *l, varnumber_T n);
31int list_insert_tv(list_T *l, typval_T *tv, listitem_T *item);
32void list_insert(list_T *l, listitem_T *ni, listitem_T *item);
Bram Moolenaar077a1e62020-06-08 20:50:43 +020033void f_flatten(typval_T *argvars, typval_T *rettv);
Bram Moolenaar3b690062021-02-01 20:14:51 +010034void f_flattennew(typval_T *argvars, typval_T *rettv);
Bram Moolenaarda861d62016-07-17 15:46:27 +020035int list_extend(list_T *l1, list_T *l2, listitem_T *bef);
36int list_concat(list_T *l1, list_T *l2, typval_T *tv);
Bram Moolenaar9af78762020-06-16 11:34:42 +020037list_T *list_slice(list_T *ol, long n1, long n2);
Bram Moolenaar6601b622021-01-13 21:47:15 +010038int list_slice_or_index(list_T *list, int range, varnumber_T n1_arg, varnumber_T n2_arg, int exclusive, typval_T *rettv, int verbose);
Bram Moolenaarda861d62016-07-17 15:46:27 +020039list_T *list_copy(list_T *orig, int deep, int copyID);
40void vimlist_remove(list_T *l, listitem_T *item, listitem_T *item2);
41char_u *list2string(typval_T *tv, int copyID, int restore_copyID);
42int list_join(garray_T *gap, list_T *l, char_u *sep, int echo_style, int restore_copyID, int copyID);
Bram Moolenaar9f9fe372019-07-27 23:12:12 +020043void f_join(typval_T *argvars, typval_T *rettv);
Bram Moolenaar9a78e6d2020-07-01 18:29:55 +020044int eval_list(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int do_error);
Bram Moolenaar73dad1e2016-07-17 22:13:49 +020045int write_list(FILE *fd, list_T *list, int binary);
Bram Moolenaardf48fb42016-07-22 21:50:18 +020046void init_static_list(staticList10_T *sl);
Bram Moolenaar9f9fe372019-07-27 23:12:12 +020047void f_list2str(typval_T *argvars, typval_T *rettv);
Bram Moolenaar9f9fe372019-07-27 23:12:12 +020048void f_sort(typval_T *argvars, typval_T *rettv);
49void f_uniq(typval_T *argvars, typval_T *rettv);
Bram Moolenaar1e1d3002019-09-04 14:41:14 +020050void f_filter(typval_T *argvars, typval_T *rettv);
51void f_map(typval_T *argvars, typval_T *rettv);
Bram Moolenaarea696852020-11-09 18:31:39 +010052void f_mapnew(typval_T *argvars, typval_T *rettv);
Bram Moolenaar08c308a2019-09-04 17:48:15 +020053void f_add(typval_T *argvars, typval_T *rettv);
54void f_count(typval_T *argvars, typval_T *rettv);
55void f_extend(typval_T *argvars, typval_T *rettv);
Bram Moolenaarb0e6b512021-01-12 20:23:40 +010056void f_extendnew(typval_T *argvars, typval_T *rettv);
Bram Moolenaar08c308a2019-09-04 17:48:15 +020057void f_insert(typval_T *argvars, typval_T *rettv);
58void f_remove(typval_T *argvars, typval_T *rettv);
59void f_reverse(typval_T *argvars, typval_T *rettv);
Bram Moolenaar85629982020-06-01 18:39:20 +020060void f_reduce(typval_T *argvars, typval_T *rettv);
Bram Moolenaarda861d62016-07-17 15:46:27 +020061/* vim: set ft=c : */