blob: ee663ee7a9c36167993657769a98102f54287e7b [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001/* eval.c */
Bram Moolenaaref269542016-01-19 13:22:12 +01002void eval_init(void);
3void eval_clear(void);
4char_u *func_name(void *cookie);
5linenr_T *func_breakpoint(void *cookie);
6int *func_dbg_tick(void *cookie);
7int func_level(void *cookie);
8int current_func_returned(void);
9void set_internal_string_var(char_u *name, char_u *value);
10int var_redir_start(char_u *name, int append);
11void var_redir_str(char_u *value, int value_len);
12void var_redir_stop(void);
13int eval_charconvert(char_u *enc_from, char_u *enc_to, char_u *fname_from, char_u *fname_to);
14int eval_printexpr(char_u *fname, char_u *args);
15void eval_diff(char_u *origfile, char_u *newfile, char_u *outfile);
16void eval_patch(char_u *origfile, char_u *difffile, char_u *outfile);
17int eval_to_bool(char_u *arg, int *error, char_u **nextcmd, int skip);
18char_u *eval_to_string_skip(char_u *arg, char_u **nextcmd, int skip);
19int skip_expr(char_u **pp);
20char_u *eval_to_string(char_u *arg, char_u **nextcmd, int convert);
21char_u *eval_to_string_safe(char_u *arg, char_u **nextcmd, int use_sandbox);
Bram Moolenaar22fcfad2016-07-01 18:17:26 +020022varnumber_T eval_to_number(char_u *expr);
Bram Moolenaaref269542016-01-19 13:22:12 +010023list_T *eval_spell_expr(char_u *badword, char_u *expr);
24int get_spellword(list_T *list, char_u **pp);
25typval_T *eval_expr(char_u *arg, char_u **nextcmd);
26int call_vim_function(char_u *func, int argc, char_u **argv, int safe, int str_arg_only, typval_T *rettv);
Bram Moolenaar22fcfad2016-07-01 18:17:26 +020027varnumber_T call_func_retnr(char_u *func, int argc, char_u **argv, int safe);
Bram Moolenaaref269542016-01-19 13:22:12 +010028void *call_func_retstr(char_u *func, int argc, char_u **argv, int safe);
29void *call_func_retlist(char_u *func, int argc, char_u **argv, int safe);
30void *save_funccal(void);
31void restore_funccal(void *vfc);
32void prof_child_enter(proftime_T *tm);
33void prof_child_exit(proftime_T *tm);
34int eval_foldexpr(char_u *arg, int *cp);
35void ex_let(exarg_T *eap);
Bram Moolenaaref269542016-01-19 13:22:12 +010036void *eval_for_line(char_u *arg, int *errp, char_u **nextcmdp, int skip);
37int next_for_item(void *fi_void, char_u *arg);
38void free_for_info(void *fi_void);
39void set_context_for_expression(expand_T *xp, char_u *arg, cmdidx_T cmdidx);
40void ex_call(exarg_T *eap);
41void ex_unlet(exarg_T *eap);
42void ex_lockvar(exarg_T *eap);
43int do_unlet(char_u *name, int forceit);
44void del_menutrans_vars(void);
45char_u *get_user_var_name(expand_T *xp, int idx);
Bram Moolenaarcd524592016-07-17 14:57:05 +020046int eval1(char_u **arg, typval_T *rettv, int evaluate);
Bram Moolenaar107e1ee2016-04-08 17:07:19 +020047void partial_unref(partial_T *pt);
Bram Moolenaarcd524592016-07-17 14:57:05 +020048int tv_equal(typval_T *tv1, typval_T *tv2, int ic, int recursive);
Bram Moolenaar520e1e42016-01-23 19:46:28 +010049int get_copyID(void);
Bram Moolenaarebf7dfa2016-04-14 12:46:51 +020050int garbage_collect(int testing);
Bram Moolenaaref269542016-01-19 13:22:12 +010051int set_ref_in_ht(hashtab_T *ht, int copyID, list_stack_T **list_stack);
52int set_ref_in_list(list_T *l, int copyID, ht_stack_T **ht_stack);
53int set_ref_in_item(typval_T *tv, int copyID, ht_stack_T **ht_stack, list_stack_T **list_stack);
Bram Moolenaarcd524592016-07-17 14:57:05 +020054char_u *echo_string_core(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID, int echo_style, int restore_copyID, int dict_val);
Bram Moolenaarbc5d6dd2016-07-07 23:04:18 +020055char_u *tv2string(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID);
Bram Moolenaarcd524592016-07-17 14:57:05 +020056char_u *string_quote(char_u *str, int function);
Bram Moolenaar520e1e42016-01-23 19:46:28 +010057int string2float(char_u *text, float_T *value);
Bram Moolenaaref269542016-01-19 13:22:12 +010058char_u *get_function_name(expand_T *xp, int idx);
59char_u *get_expr_name(expand_T *xp, int idx);
Bram Moolenaar1735bc92016-03-14 23:05:14 +010060int call_func(char_u *funcname, int len, typval_T *rettv, int argcount_in, typval_T *argvars_in, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, partial_T *partial, dict_T *selfdict_in);
Bram Moolenaar8e2c9422016-03-12 13:43:33 +010061buf_T *buflist_find_by_name(char_u *name, int curtab_only);
Bram Moolenaar1735bc92016-03-14 23:05:14 +010062int func_call(char_u *name, typval_T *args, partial_T *partial, dict_T *selfdict, typval_T *rettv);
Bram Moolenaar79815f12016-07-09 17:07:29 +020063void execute_redir_str(char_u *value, int value_len);
Bram Moolenaaref269542016-01-19 13:22:12 +010064void mzscheme_call_vim(char_u *name, typval_T *args, typval_T *rettv);
65float_T vim_round(float_T f);
66long do_searchpair(char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit);
Bram Moolenaar975b5272016-03-15 23:10:59 +010067char_u *get_callback(typval_T *arg, partial_T **pp);
Bram Moolenaar1436d8d2016-07-11 22:41:15 +020068void free_callback(char_u *callback, partial_T *partial);
Bram Moolenaar22fcfad2016-07-01 18:17:26 +020069void set_vim_var_nr(int idx, varnumber_T val);
70varnumber_T get_vim_var_nr(int idx);
Bram Moolenaaref269542016-01-19 13:22:12 +010071char_u *get_vim_var_str(int idx);
72list_T *get_vim_var_list(int idx);
73void set_vim_var_char(int c);
74void set_vcount(long count, long count1, int set_prevcount);
75void set_vim_var_string(int idx, char_u *val, int len);
76void set_vim_var_list(int idx, list_T *val);
77void set_vim_var_dict(int idx, dict_T *val);
78void set_reg_var(int c);
79char_u *v_exception(char_u *oldval);
80char_u *v_throwpoint(char_u *oldval);
81char_u *set_cmdarg(exarg_T *eap, char_u *oldarg);
Bram Moolenaar19d2f152016-02-01 21:38:19 +010082typval_T *alloc_tv(void);
Bram Moolenaaref269542016-01-19 13:22:12 +010083void free_tv(typval_T *varp);
84void clear_tv(typval_T *varp);
Bram Moolenaar22fcfad2016-07-01 18:17:26 +020085varnumber_T get_tv_number(typval_T *varp);
86varnumber_T get_tv_number_chk(typval_T *varp, int *denote);
Bram Moolenaar8e2c9422016-03-12 13:43:33 +010087char_u *get_tv_string(typval_T *varp);
88char_u *get_tv_string_buf(typval_T *varp, char_u *buf);
Bram Moolenaaref269542016-01-19 13:22:12 +010089char_u *get_tv_string_chk(typval_T *varp);
Bram Moolenaar520e1e42016-01-23 19:46:28 +010090char_u *get_tv_string_buf_chk(typval_T *varp, char_u *buf);
Bram Moolenaaref269542016-01-19 13:22:12 +010091char_u *get_var_value(char_u *name);
92void new_script_vars(scid_T id);
93void init_var_dict(dict_T *dict, dictitem_T *dict_var, int scope);
94void unref_var_dict(dict_T *dict);
95void vars_clear(hashtab_T *ht);
Bram Moolenaarcd524592016-07-17 14:57:05 +020096int var_check_ro(int flags, char_u *name, int use_gettext);
97int var_check_func_name(char_u *name, int new_var);
98int valid_varname(char_u *varname);
99int tv_check_lock(int lock, char_u *name, int use_gettext);
Bram Moolenaaref269542016-01-19 13:22:12 +0100100void copy_tv(typval_T *from, typval_T *to);
Bram Moolenaarcd524592016-07-17 14:57:05 +0200101int item_copy(typval_T *from, typval_T *to, int deep, int copyID);
Bram Moolenaaref269542016-01-19 13:22:12 +0100102void ex_echo(exarg_T *eap);
103void ex_echohl(exarg_T *eap);
104void ex_execute(exarg_T *eap);
105void ex_function(exarg_T *eap);
106void free_all_functions(void);
107int translated_function_exists(char_u *name);
108char_u *get_expanded_name(char_u *name, int check);
109void func_dump_profile(FILE *fd);
110char_u *get_user_func_name(expand_T *xp, int idx);
111void ex_delfunction(exarg_T *eap);
112void func_unref(char_u *name);
113void func_ref(char_u *name);
114void ex_return(exarg_T *eap);
115int do_return(exarg_T *eap, int reanimate, int is_cmd, void *rettv);
116void discard_pending_return(void *rettv);
117char_u *get_return_cmd(void *rettv);
118char_u *get_func_line(int c, void *cookie, int indent);
119void func_line_start(void *cookie);
120void func_line_exec(void *cookie);
121void func_line_end(void *cookie);
122int func_has_ended(void *cookie);
123int func_has_abort(void *cookie);
124int read_viminfo_varlist(vir_T *virp, int writing);
125void write_viminfo_varlist(FILE *fp);
126int store_session_globals(FILE *fd);
127void last_set_msg(scid_T scriptID);
128void ex_oldfiles(exarg_T *eap);
129void reset_v_option_vars(void);
130int modify_fname(char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen);
131char_u *do_string_sub(char_u *str, char_u *pat, char_u *sub, char_u *flags);
Bram Moolenaar071d4272004-06-13 20:20:40 +0000132/* vim: set ft=c : */