annotate src/proto/list.pro @ 25591:ea69398b40d1 v8.2.3332

patch 8.2.3332: Vim9: cannot assign to range in list Commit: https://github.com/vim/vim/commit/4f0884d6e24d1d45ec83fd86b372b403177d3298 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Aug 11 21:49:23 2021 +0200 patch 8.2.3332: Vim9: cannot assign to range in list Problem: Vim9: cannot assign to range in list. Solution: Implement overwriting a list range.
author Bram Moolenaar <Bram@vim.org>
date Wed, 11 Aug 2021 22:00:06 +0200
parents 0082503ff2ff
children 2126feddeda6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9560
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 /* list.c */
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2 void list_add_watch(list_T *l, listwatch_T *lw);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 void list_rem_watch(list_T *l, listwatch_T *lwrem);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4 list_T *list_alloc(void);
15016
c338c91086b9 patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents: 13246
diff changeset
5 list_T *list_alloc_id(alloc_id_T id);
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents: 17970
diff changeset
6 list_T *list_alloc_with_items(int count);
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents: 17970
diff changeset
7 void list_set_item(list_T *l, int idx, typval_T *tv);
9560
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 int rettv_list_alloc(typval_T *rettv);
15209
3a99b2e6d136 patch 8.1.0614: placing signs can be complicated
Bram Moolenaar <Bram@vim.org>
parents: 15016
diff changeset
9 int rettv_list_alloc_id(typval_T *rettv, alloc_id_T id);
11418
162bcd0debd7 patch 8.0.0593: duplication of code for adding a list or dict return value
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
10 void rettv_list_set(typval_T *rettv, list_T *l);
9560
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 void list_unref(list_T *l);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 int list_free_nonref(int copyID);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 void list_free_items(int copyID);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 void list_free(list_T *l);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 listitem_T *listitem_alloc(void);
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents: 17970
diff changeset
16 void listitem_free(list_T *l, listitem_T *item);
9560
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 void listitem_remove(list_T *l, listitem_T *item);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 long list_len(list_T *l);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 int list_equal(list_T *l1, list_T *l2, int ic, int recursive);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 listitem_T *list_find(list_T *l, long n);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 long list_find_nr(list_T *l, long idx, int *errorp);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 char_u *list_find_str(list_T *l, long idx);
23982
9fcd71d0db89 patch 8.2.2533: Vim9: cannot use a range with :unlet
Bram Moolenaar <Bram@vim.org>
parents: 23816
diff changeset
23 listitem_T *list_find_index(list_T *l, long *idx);
9560
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 long list_idx_of_item(list_T *l, listitem_T *item);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 void list_append(list_T *l, listitem_T *item);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 int list_append_tv(list_T *l, typval_T *tv);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 int list_append_dict(list_T *list, dict_T *dict);
13246
dd3b2ecf91f6 patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents: 11418
diff changeset
28 int list_append_list(list_T *list1, list_T *list2);
9560
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 int list_append_string(list_T *l, char_u *str, int len);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 int list_append_number(list_T *l, varnumber_T n);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 int list_insert_tv(list_T *l, typval_T *tv, listitem_T *item);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 void list_insert(list_T *l, listitem_T *ni, listitem_T *item);
25591
ea69398b40d1 patch 8.2.3332: Vim9: cannot assign to range in list
Bram Moolenaar <Bram@vim.org>
parents: 25567
diff changeset
33 listitem_T *check_range_index_one(list_T *l, long *n1, int quiet);
ea69398b40d1 patch 8.2.3332: Vim9: cannot assign to range in list
Bram Moolenaar <Bram@vim.org>
parents: 25567
diff changeset
34 int check_range_index_two(list_T *l, long *n1, listitem_T *li1, long *n2, int quiet);
ea69398b40d1 patch 8.2.3332: Vim9: cannot assign to range in list
Bram Moolenaar <Bram@vim.org>
parents: 25567
diff changeset
35 int list_assign_range(list_T *dest, list_T *src, long idx1_arg, long idx2, int empty_idx2, char_u *op, char_u *varname);
20766
821925509d8c patch 8.2.0935: flattening a list with existing code is slow
Bram Moolenaar <Bram@vim.org>
parents: 20649
diff changeset
36 void f_flatten(typval_T *argvars, typval_T *rettv);
23816
525c9e218c69 patch 8.2.2449: Vim9: flatten() always changes the list type
Bram Moolenaar <Bram@vim.org>
parents: 23604
diff changeset
37 void f_flattennew(typval_T *argvars, typval_T *rettv);
9560
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
38 int list_extend(list_T *l1, list_T *l2, listitem_T *bef);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
39 int list_concat(list_T *l1, list_T *l2, typval_T *tv);
20871
65d9189d4dca patch 8.2.0987: Vim9: cannot assign to [var; var]
Bram Moolenaar <Bram@vim.org>
parents: 20766
diff changeset
40 list_T *list_slice(list_T *ol, long n1, long n2);
23604
1816ea68c022 patch 8.2.2344: using inclusive index for slice is not always desired
Bram Moolenaar <Bram@vim.org>
parents: 23588
diff changeset
41 int list_slice_or_index(list_T *list, int range, varnumber_T n1_arg, varnumber_T n2_arg, int exclusive, typval_T *rettv, int verbose);
9560
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
42 list_T *list_copy(list_T *orig, int deep, int copyID);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
43 void vimlist_remove(list_T *l, listitem_T *item, listitem_T *item2);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
44 char_u *list2string(typval_T *tv, int copyID, int restore_copyID);
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
45 int list_join(garray_T *gap, list_T *l, char_u *sep, int echo_style, int restore_copyID, int copyID);
17530
ef23ec1eee54 patch 8.1.1763: evalfunc.c is still too big
Bram Moolenaar <Bram@vim.org>
parents: 15209
diff changeset
46 void f_join(typval_T *argvars, typval_T *rettv);
21120
4d844a65183d patch 8.2.1111: inconsistent naming of get_list_tv() and eval_dict()
Bram Moolenaar <Bram@vim.org>
parents: 21028
diff changeset
47 int eval_list(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int do_error);
9571
5eaa708ab50d commit https://github.com/vim/vim/commit/73dad1e64cb42842d8259cb1a255a6fa59822f76
Christian Brabandt <cb@256bit.org>
parents: 9560
diff changeset
48 int write_list(FILE *fd, list_T *list, int binary);
9626
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9571
diff changeset
49 void init_static_list(staticList10_T *sl);
17530
ef23ec1eee54 patch 8.1.1763: evalfunc.c is still too big
Bram Moolenaar <Bram@vim.org>
parents: 15209
diff changeset
50 void f_list2str(typval_T *argvars, typval_T *rettv);
ef23ec1eee54 patch 8.1.1763: evalfunc.c is still too big
Bram Moolenaar <Bram@vim.org>
parents: 15209
diff changeset
51 void f_sort(typval_T *argvars, typval_T *rettv);
ef23ec1eee54 patch 8.1.1763: evalfunc.c is still too big
Bram Moolenaar <Bram@vim.org>
parents: 15209
diff changeset
52 void f_uniq(typval_T *argvars, typval_T *rettv);
17964
6d4d3bce365d patch 8.1.1978: the eval.c file is too big
Bram Moolenaar <Bram@vim.org>
parents: 17789
diff changeset
53 void f_filter(typval_T *argvars, typval_T *rettv);
6d4d3bce365d patch 8.1.1978: the eval.c file is too big
Bram Moolenaar <Bram@vim.org>
parents: 17789
diff changeset
54 void f_map(typval_T *argvars, typval_T *rettv);
22844
36fc73078bce patch 8.2.1969: Vim9: map() may change the list or dict item type
Bram Moolenaar <Bram@vim.org>
parents: 21828
diff changeset
55 void f_mapnew(typval_T *argvars, typval_T *rettv);
17970
684a15da9929 patch 8.1.1981: the evalfunc.c file is too big
Bram Moolenaar <Bram@vim.org>
parents: 17964
diff changeset
56 void f_add(typval_T *argvars, typval_T *rettv);
684a15da9929 patch 8.1.1981: the evalfunc.c file is too big
Bram Moolenaar <Bram@vim.org>
parents: 17964
diff changeset
57 void f_count(typval_T *argvars, typval_T *rettv);
684a15da9929 patch 8.1.1981: the evalfunc.c file is too big
Bram Moolenaar <Bram@vim.org>
parents: 17964
diff changeset
58 void f_extend(typval_T *argvars, typval_T *rettv);
23588
510088f8c66f patch 8.2.2336: Vim9: not possible to extend dictionary with different type
Bram Moolenaar <Bram@vim.org>
parents: 22844
diff changeset
59 void f_extendnew(typval_T *argvars, typval_T *rettv);
17970
684a15da9929 patch 8.1.1981: the evalfunc.c file is too big
Bram Moolenaar <Bram@vim.org>
parents: 17964
diff changeset
60 void f_insert(typval_T *argvars, typval_T *rettv);
684a15da9929 patch 8.1.1981: the evalfunc.c file is too big
Bram Moolenaar <Bram@vim.org>
parents: 17964
diff changeset
61 void f_remove(typval_T *argvars, typval_T *rettv);
684a15da9929 patch 8.1.1981: the evalfunc.c file is too big
Bram Moolenaar <Bram@vim.org>
parents: 17964
diff changeset
62 void f_reverse(typval_T *argvars, typval_T *rettv);
20649
1fa0ace0ba65 patch 8.2.0878: no reduce() function
Bram Moolenaar <Bram@vim.org>
parents: 19916
diff changeset
63 void f_reduce(typval_T *argvars, typval_T *rettv);
9560
1e68dfd7931b commit https://github.com/vim/vim/commit/da861d631d7e22654faee2789286c685ad548911
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
64 /* vim: set ft=c : */