comparison src/proto/userfunc.pro @ 30122:458162398682 v9.0.0397

patch 9.0.0397: :defer not tested with exceptions and ":qa!" Commit: https://github.com/vim/vim/commit/58779858fb5a82a3233af5d4237a3cece88c10d4 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Sep 6 18:31:14 2022 +0100 patch 9.0.0397: :defer not tested with exceptions and ":qa!" Problem: :defer not tested with exceptions and ":qa!". Solution: Test :defer works when exceptions are thrown and when ":qa!" is used. Invoke the deferred calls on exit.
author Bram Moolenaar <Bram@vim.org>
date Tue, 06 Sep 2022 19:45:04 +0200
parents a542dfb1c1a2
children 3b42bdfff7cb
comparison
equal deleted inserted replaced
30121:8bfd8ae3b460 30122:458162398682
57 void func_ptr_unref(ufunc_T *fp); 57 void func_ptr_unref(ufunc_T *fp);
58 void func_ref(char_u *name); 58 void func_ref(char_u *name);
59 void func_ptr_ref(ufunc_T *fp); 59 void func_ptr_ref(ufunc_T *fp);
60 void ex_return(exarg_T *eap); 60 void ex_return(exarg_T *eap);
61 int add_defer(char_u *name, int argcount_arg, typval_T *argvars); 61 int add_defer(char_u *name, int argcount_arg, typval_T *argvars);
62 void handle_defer(void); 62 void invoke_all_defer(void);
63 void ex_call(exarg_T *eap); 63 void ex_call(exarg_T *eap);
64 int do_return(exarg_T *eap, int reanimate, int is_cmd, void *rettv); 64 int do_return(exarg_T *eap, int reanimate, int is_cmd, void *rettv);
65 void discard_pending_return(void *rettv); 65 void discard_pending_return(void *rettv);
66 char_u *get_return_cmd(void *rettv); 66 char_u *get_return_cmd(void *rettv);
67 char_u *get_func_line(int c, void *cookie, int indent, getline_opt_T options); 67 char_u *get_func_line(int c, void *cookie, int indent, getline_opt_T options);