view src/proto/clientserver.pro @ 33949:84b93d95a952 v9.0.2169

patch 9.0.2169: Vim9: builtin funcs may accept a non-value Commit: https://github.com/vim/vim/commit/d8bf87c9fbd92fd6b837446e886d47e557adadbc Author: Ernie Rael <errael@raelity.com> Date: Sat Dec 16 14:03:33 2023 +0100 patch 9.0.2169: Vim9: builtin funcs may accept a non-value Problem: Vim9: builtin funcs may accept a non-value Solution: Restrict builtin functions that accept `type` This PR finishes off detection and prevention of using a type as a value. It takes care of builtin functions. However there are some builtin functions, that need to be able to handle types as well as non-args: instanceof(), type(), typename(), string(). A "bit", FE_X, is added to funcentry_T; when set, the builtin function can handle a type (class or type-alias) in addition to a value. Noteworthy change: Discovered that in compile_call() the builtin add() is compiled inline instead of calling the builtin. Had to add a check there. closes: #13688 Signed-off-by: Ernie Rael <errael@raelity.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sat, 16 Dec 2023 14:15:03 +0100
parents 5e41b2e63c73
children
line wrap: on
line source

/* clientserver.c */
void server_to_input_buf(char_u *str);
char_u *eval_client_expr_to_string(char_u *expr);
int sendToLocalVim(char_u *cmd, int asExpr, char_u **result);
char_u *serverConvert(char_u *client_enc, char_u *data, char_u **tofree);
void exec_on_server(mparm_T *parmp);
void prepare_server(mparm_T *parmp);
void f_remote_expr(typval_T *argvars, typval_T *rettv);
void f_remote_foreground(typval_T *argvars, typval_T *rettv);
void f_remote_peek(typval_T *argvars, typval_T *rettv);
void f_remote_read(typval_T *argvars, typval_T *rettv);
void f_remote_send(typval_T *argvars, typval_T *rettv);
void f_remote_startserver(typval_T *argvars, typval_T *rettv);
void f_server2client(typval_T *argvars, typval_T *rettv);
void f_serverlist(typval_T *argvars, typval_T *rettv);
/* vim: set ft=c : */