annotate src/proto/userfunc.pro @ 29958:549994614a5a v9.0.0317

patch 9.0.0317: when updating the whole screen a popup may not be redrawn Commit: https://github.com/vim/vim/commit/b13d3405fffae1115acc1433479b616f30e292e5 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Aug 29 13:44:28 2022 +0100 patch 9.0.0317: when updating the whole screen a popup may not be redrawn Problem: When updating the whole screen a popup may not be redrawn. Solution: Mark the screen and windows for redraw also when not clearing. Also mark popup windows for redraw.
author Bram Moolenaar <Bram@vim.org>
date Mon, 29 Aug 2022 14:45:04 +0200
parents a74398c432a4
children 6cf788ab844c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9562
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 /* userfunc.c */
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2 void func_init(void);
17381
8f44c630c366 patch 8.1.1689: profiling code is spread out
Bram Moolenaar <Bram@vim.org>
parents: 17370
diff changeset
3 hashtab_T *func_tbl_get(void);
28263
c446812efd60 patch 8.2.4657: errors for functions are sometimes hard to read
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
4 char_u *make_ufunc_name_readable(char_u *name, char_u *buf, size_t bufsize);
20279
49b50843e725 patch 8.2.0695: Vim9: cannot define a function inside a function
Bram Moolenaar <Bram@vim.org>
parents: 20189
diff changeset
5 char_u *get_lambda_name(void);
21040
d9e0db9b2b99 patch 8.2.1071: Vim9: no line break allowed inside a lambda
Bram Moolenaar <Bram@vim.org>
parents: 21006
diff changeset
6 char_u *register_cfunc(cfunc_T cb, cfunc_free_T cb_free, void *state);
22816
8a5369f5f2b4 patch 8.2.1956: Vim9: cannot specify argument types for lambda
Bram Moolenaar <Bram@vim.org>
parents: 22596
diff changeset
7 int get_lambda_tv(char_u **arg, typval_T *rettv, int types_optional, evalarg_T *evalarg);
27233
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27114
diff changeset
8 char_u *deref_func_name(char_u *name, int *lenp, partial_T **partialp, type_T **type, int no_autoload, int new_function, int *found_var);
18576
e9675870c480 patch 8.1.2282: crash when passing many arguments through a partial
Bram Moolenaar <Bram@vim.org>
parents: 18104
diff changeset
9 void emsg_funcname(char *ermsg, char_u *name);
21118
b0baa80cb53f patch 8.2.1110: Vim9: line continuation does not work in function arguments
Bram Moolenaar <Bram@vim.org>
parents: 21040
diff changeset
10 int get_func_tv(char_u *name, int len, typval_T *rettv, char_u **arg, evalarg_T *evalarg, funcexe_T *funcexe);
19330
9c8b803fe598 patch 8.2.0223: some instructions not yet tested
Bram Moolenaar <Bram@vim.org>
parents: 19181
diff changeset
11 char_u *fname_trans_sid(char_u *name, char_u *fname_buf, char_u **tofree, int *error);
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 27807
diff changeset
12 void func_name_with_sid(char_u *name, int sid, char_u *buffer);
27348
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
13 ufunc_T *find_func_even_dead(char_u *name, int flags);
27114
98a01021e465 patch 8.2.4086: "cctx" argument of find_func_even_dead() is unused
Bram Moolenaar <Bram@vim.org>
parents: 27022
diff changeset
14 ufunc_T *find_func(char_u *name, int is_global);
22236
3d0632b260fd patch 8.2.1667: local function name cannot shadow a global function name
Bram Moolenaar <Bram@vim.org>
parents: 21883
diff changeset
15 int func_is_global(ufunc_T *ufunc);
27464
a14c4d3e3260 patch 8.2.4260: Vim9: can still use a global function without g:
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
16 int func_requires_g_prefix(ufunc_T *ufunc);
22326
fb69b43d73f3 patch 8.2.1712: Vim9: leaking memory when calling a lambda
Bram Moolenaar <Bram@vim.org>
parents: 22236
diff changeset
17 int func_name_refcount(char_u *name);
26445
568f93dcdc62 patch 8.2.3753: Vim9: function unreferenced while called is never deleted
Bram Moolenaar <Bram@vim.org>
parents: 26388
diff changeset
18 void func_clear_free(ufunc_T *fp, int force);
23285
112fa621b127 patch 8.2.2188: Vim9: crash when calling global function from :def function
Bram Moolenaar <Bram@vim.org>
parents: 23252
diff changeset
19 int copy_func(char_u *lambda, char_u *global, ectx_T *ectx);
22908
54219df706b5 patch 8.2.2001: Vim9: :def function does not apply 'maxfuncdepth'
Bram Moolenaar <Bram@vim.org>
parents: 22816
diff changeset
20 int funcdepth_increment(void);
54219df706b5 patch 8.2.2001: Vim9: :def function does not apply 'maxfuncdepth'
Bram Moolenaar <Bram@vim.org>
parents: 22816
diff changeset
21 void funcdepth_decrement(void);
54219df706b5 patch 8.2.2001: Vim9: :def function does not apply 'maxfuncdepth'
Bram Moolenaar <Bram@vim.org>
parents: 22816
diff changeset
22 int funcdepth_get(void);
54219df706b5 patch 8.2.2001: Vim9: :def function does not apply 'maxfuncdepth'
Bram Moolenaar <Bram@vim.org>
parents: 22816
diff changeset
23 void funcdepth_restore(int depth);
23252
35583da6397e patch 8.2.2172: Vim9: number of arguments is not always checked
Bram Moolenaar <Bram@vim.org>
parents: 23249
diff changeset
24 int check_user_func_argcount(ufunc_T *fp, int argcount);
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents: 18576
diff changeset
25 int call_user_func_check(ufunc_T *fp, int argcount, typval_T *argvars, typval_T *rettv, funcexe_T *funcexe, dict_T *selfdict);
15195
16b2f2db6f28 patch 8.1.0607: proto files are not in sync with the source code
Bram Moolenaar <Bram@vim.org>
parents: 14927
diff changeset
26 void save_funccal(funccal_entry_T *entry);
16b2f2db6f28 patch 8.1.0607: proto files are not in sync with the source code
Bram Moolenaar <Bram@vim.org>
parents: 14927
diff changeset
27 void restore_funccal(void);
17381
8f44c630c366 patch 8.1.1689: profiling code is spread out
Bram Moolenaar <Bram@vim.org>
parents: 17370
diff changeset
28 funccall_T *get_current_funccal(void);
27669
5c4ab8d4472c patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
29 int at_script_level(void);
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
30 void delete_script_functions(int sid);
9562
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 void free_all_functions(void);
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents: 18576
diff changeset
32 int builtin_function(char_u *name, int len);
9562
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33 int func_call(char_u *name, typval_T *args, partial_T *partial, dict_T *selfdict, typval_T *rettv);
18104
e59ff7b5d7a7 patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents: 17606
diff changeset
34 int get_callback_depth(void);
17606
ff097edaae89 patch 8.1.1800: function call functions have too many arguments
Bram Moolenaar <Bram@vim.org>
parents: 17381
diff changeset
35 int call_callback(callback_T *callback, int len, typval_T *rettv, int argcount, typval_T *argvars);
26388
8aba638e91eb patch 8.2.3725: cannot use a lambda for 'completefunc' and 'omnifunc'
Bram Moolenaar <Bram@vim.org>
parents: 26348
diff changeset
36 varnumber_T call_callback_retnr(callback_T *callback, int argcount, typval_T *argvars);
26506
4a1d2abc2016 patch 8.2.3783: confusing error for using a variable as a function
Bram Moolenaar <Bram@vim.org>
parents: 26445
diff changeset
37 void user_func_error(int error, char_u *name, funcexe_T *funcexe);
17606
ff097edaae89 patch 8.1.1800: function call functions have too many arguments
Bram Moolenaar <Bram@vim.org>
parents: 17381
diff changeset
38 int call_func(char_u *funcname, int len, typval_T *rettv, int argcount_in, typval_T *argvars_in, funcexe_T *funcexe);
21401
aa7675a4a0cd patch 8.2.1251: Vim9: warning for pointer usage, test failure undetected
Bram Moolenaar <Bram@vim.org>
parents: 21118
diff changeset
39 char_u *printable_func_name(ufunc_T *fp);
23527
27ca5534a408 patch 8.2.2306: Vim9: when using function reference type is not checked
Bram Moolenaar <Bram@vim.org>
parents: 23511
diff changeset
40 char_u *trans_function_name(char_u **pp, int *is_global, int skip, int flags, funcdict_T *fdp, partial_T **partial, type_T **type);
26721
9c9b8d95b05f patch 8.2.3889: duplicate code for translating script-local function name
Bram Moolenaar <Bram@vim.org>
parents: 26506
diff changeset
41 char_u *get_scriptlocal_funcname(char_u *funcname);
27807
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
42 char_u *alloc_printable_func_name(char_u *fname);
26348
bf1a7ce3f14a patch 8.2.3705: cannot pass a lambda name to function() or funcref()
Bram Moolenaar <Bram@vim.org>
parents: 23527
diff changeset
43 char_u *save_function_name(char_u **name, int *is_global, int skip, int flags, funcdict_T *fudi);
22973
4c97c0747017 patch 8.2.2033: Vim9: :def without argument gives compilation error
Bram Moolenaar <Bram@vim.org>
parents: 22908
diff changeset
44 void list_functions(regmatch_T *regmatch);
27022
eebbcc83fb75 patch 8.2.4040: keeping track of allocated lines is too complicated
Bram Moolenaar <Bram@vim.org>
parents: 26747
diff changeset
45 ufunc_T *define_function(exarg_T *eap, char_u *name_arg, garray_T *lines_to_free);
9562
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
46 void ex_function(exarg_T *eap);
28934
a712ea475390 patch 8.2.4989: cannot specify a function name for :defcompile
Bram Moolenaar <Bram@vim.org>
parents: 28263
diff changeset
47 ufunc_T *find_func_by_name(char_u *name, compiletype_T *compile_type);
20528
489cb75c76b6 patch 8.2.0818: Vim9: using a discovery phase doesn't work well
Bram Moolenaar <Bram@vim.org>
parents: 20339
diff changeset
48 void ex_defcompile(exarg_T *eap);
9562
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
49 int eval_fname_script(char_u *p);
20189
63cc54100ae4 patch 8.2.0650: Vim9: script function can be deleted
Bram Moolenaar <Bram@vim.org>
parents: 20079
diff changeset
50 int translated_function_exists(char_u *name, int is_global);
19181
94eda51ba9ba patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents: 18576
diff changeset
51 int has_varargs(ufunc_T *ufunc);
9717
6226de5f8137 commit https://github.com/vim/vim/commit/b54c3ff3174dbb5dfbfcabdf95200b047beaa644
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
52 int function_exists(char_u *name, int no_deref);
9562
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
53 char_u *get_expanded_name(char_u *name, int check);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
54 char_u *get_user_func_name(expand_T *xp, int idx);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
55 void ex_delfunction(exarg_T *eap);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
56 void func_unref(char_u *name);
9723
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9717
diff changeset
57 void func_ptr_unref(ufunc_T *fp);
9562
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
58 void func_ref(char_u *name);
9723
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9717
diff changeset
59 void func_ptr_ref(ufunc_T *fp);
9562
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
60 void ex_return(exarg_T *eap);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
61 void ex_call(exarg_T *eap);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
62 int do_return(exarg_T *eap, int reanimate, int is_cmd, void *rettv);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
63 void discard_pending_return(void *rettv);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
64 char_u *get_return_cmd(void *rettv);
21883
a427f5f26419 patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents: 21564
diff changeset
65 char_u *get_func_line(int c, void *cookie, int indent, getline_opt_T options);
9562
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
66 int func_has_ended(void *cookie);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
67 int func_has_abort(void *cookie);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
68 dict_T *make_partial(dict_T *selfdict_in, typval_T *rettv);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
69 char_u *func_name(void *cookie);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
70 linenr_T *func_breakpoint(void *cookie);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
71 int *func_dbg_tick(void *cookie);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
72 int func_level(void *cookie);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
73 int current_func_returned(void);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
74 int free_unref_funccal(int copyID, int testing);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
75 hashtab_T *get_funccal_local_ht(void);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
76 dictitem_T *get_funccal_local_var(void);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
77 hashtab_T *get_funccal_args_ht(void);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
78 dictitem_T *get_funccal_args_var(void);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
79 void list_func_vars(int *first);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
80 dict_T *get_current_funccal_dict(hashtab_T *ht);
9731
f85d94eee05b commit https://github.com/vim/vim/commit/ba96e9af388804364425185b47eed14988302865
Christian Brabandt <cb@256bit.org>
parents: 9723
diff changeset
81 hashitem_T *find_hi_in_scoped_ht(char_u *name, hashtab_T **pht);
f85d94eee05b commit https://github.com/vim/vim/commit/ba96e9af388804364425185b47eed14988302865
Christian Brabandt <cb@256bit.org>
parents: 9723
diff changeset
82 dictitem_T *find_var_in_scoped_ht(char_u *name, int no_autoload);
9562
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
83 int set_ref_in_previous_funccal(int copyID);
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
84 int set_ref_in_call_stack(int copyID);
9735
8037eb704e93 commit https://github.com/vim/vim/commit/bc7ce675b2d1c9fb58c067eff3edd59abc30aba4
Christian Brabandt <cb@256bit.org>
parents: 9731
diff changeset
85 int set_ref_in_functions(int copyID);
9562
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
86 int set_ref_in_func_args(int copyID);
9723
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9717
diff changeset
87 int set_ref_in_func(char_u *name, ufunc_T *fp_in, int copyID);
9562
86af4a48c00a commit https://github.com/vim/vim/commit/a9b579f3d7463720a316e11e77a7a9fbb9267986
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
88 /* vim: set ft=c : */