summaryrefslogtreecommitdiffstats
path: root/src/evalfunc.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-04-05 20:21:03 +0200
committerBram Moolenaar <Bram@vim.org>2020-04-05 20:21:03 +0200
commitf87a0400fd81862c33d6ad2291a56e178db7dddd (patch)
tree2a1ef72193db1883d8aa81c158d99148b5412fb6 /src/evalfunc.c
parentb8ed3aa9e708ec0af4e9ee8921ad198f0e949c0d (diff)
patch 8.2.0516: client-server code is spread outv8.2.0516
Problem: Client-server code is spread out. Solution: Move client-server code to a new file. (Yegappan Lakshmanan, closes #5885)
Diffstat (limited to 'src/evalfunc.c')
-rw-r--r--src/evalfunc.c324
1 files changed, 0 insertions, 324 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c
index f43ac082c1..5a5daaa5af 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -168,12 +168,6 @@ static void f_rand(typval_T *argvars, typval_T *rettv);
static void f_range(typval_T *argvars, typval_T *rettv);
static void f_reg_executing(typval_T *argvars, typval_T *rettv);
static void f_reg_recording(typval_T *argvars, typval_T *rettv);
-static void f_remote_expr(typval_T *argvars, typval_T *rettv);
-static void f_remote_foreground(typval_T *argvars, typval_T *rettv);
-static void f_remote_peek(typval_T *argvars, typval_T *rettv);
-static void f_remote_read(typval_T *argvars, typval_T *rettv);
-static void f_remote_send(typval_T *argvars, typval_T *rettv);
-static void f_remote_startserver(typval_T *argvars, typval_T *rettv);
static void f_rename(typval_T *argvars, typval_T *rettv);
static void f_repeat(typval_T *argvars, typval_T *rettv);
#ifdef FEAT_FLOAT
@@ -193,8 +187,6 @@ static void f_searchdecl(typval_T *argvars, typval_T *rettv);
static void f_searchpair(typval_T *argvars, typval_T *rettv);
static void f_searchpairpos(typval_T *argvars, typval_T *rettv);
static void f_searchpos(typval_T *argvars, typval_T *rettv);
-static void f_server2client(typval_T *argvars, typval_T *rettv);
-static void f_serverlist(typval_T *argvars, typval_T *rettv);
static void f_setcharsearch(typval_T *argvars, typval_T *rettv);
static void f_setenv(typval_T *argvars, typval_T *rettv);
static void f_setfperm(typval_T *argvars, typval_T *rettv);
@@ -6335,275 +6327,6 @@ f_reg_recording(typval_T *argvars UNUSED, typval_T *rettv)
return_register(reg_recording, rettv);
}
-#if defined(FEAT_CLIENTSERVER) && defined(FEAT_X11)
- static void
-make_connection(void)
-{
- if (X_DISPLAY == NULL
-# ifdef FEAT_GUI
- && !gui.in_use
-# endif
- )
- {
- x_force_connect = TRUE;
- setup_term_clip();
- x_force_connect = FALSE;
- }
-}
-
- static int
-check_connection(void)
-{
- make_connection();
- if (X_DISPLAY == NULL)
- {
- emsg(_("E240: No connection to the X server"));
- return FAIL;
- }
- return OK;
-}
-#endif
-
-#ifdef FEAT_CLIENTSERVER
- static void
-remote_common(typval_T *argvars, typval_T *rettv, int expr)
-{
- char_u *server_name;
- char_u *keys;
- char_u *r = NULL;
- char_u buf[NUMBUFLEN];
- int timeout = 0;
-# ifdef MSWIN
- HWND w;
-# else
- Window w;
-# endif
-
- if (check_restricted() || check_secure())
- return;
-
-# ifdef FEAT_X11
- if (check_connection() == FAIL)
- return;
-# endif
- if (argvars[2].v_type != VAR_UNKNOWN
- && argvars[3].v_type != VAR_UNKNOWN)
- timeout = tv_get_number(&argvars[3]);
-
- server_name = tv_get_string_chk(&argvars[0]);
- if (server_name == NULL)
- return; // type error; errmsg already given
- keys = tv_get_string_buf(&argvars[1], buf);
-# ifdef MSWIN
- if (serverSendToVim(server_name, keys, &r, &w, expr, timeout, TRUE) < 0)
-# else
- if (serverSendToVim(X_DISPLAY, server_name, keys, &r, &w, expr, timeout,
- 0, TRUE) < 0)
-# endif
- {
- if (r != NULL)
- {
- emsg((char *)r); // sending worked but evaluation failed
- vim_free(r);
- }
- else
- semsg(_("E241: Unable to send to %s"), server_name);
- return;
- }
-
- rettv->vval.v_string = r;
-
- if (argvars[2].v_type != VAR_UNKNOWN)
- {
- dictitem_T v;
- char_u str[30];
- char_u *idvar;
-
- idvar = tv_get_string_chk(&argvars[2]);
- if (idvar != NULL && *idvar != NUL)
- {
- sprintf((char *)str, PRINTF_HEX_LONG_U, (long_u)w);
- v.di_tv.v_type = VAR_STRING;
- v.di_tv.vval.v_string = vim_strsave(str);
- set_var(idvar, &v.di_tv, FALSE);
- vim_free(v.di_tv.vval.v_string);
- }
- }
-}
-#endif
-
-/*
- * "remote_expr()" function
- */
- static void
-f_remote_expr(typval_T *argvars UNUSED, typval_T *rettv)
-{
- rettv->v_type = VAR_STRING;
- rettv->vval.v_string = NULL;
-#ifdef FEAT_CLIENTSERVER
- remote_common(argvars, rettv, TRUE);
-#endif
-}
-
-/*
- * "remote_foreground()" function
- */
- static void
-f_remote_foreground(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
-{
-#ifdef FEAT_CLIENTSERVER
-# ifdef MSWIN
- // On Win32 it's done in this application.
- {
- char_u *server_name = tv_get_string_chk(&argvars[0]);
-
- if (server_name != NULL)
- serverForeground(server_name);
- }
-# else
- // Send a foreground() expression to the server.
- argvars[1].v_type = VAR_STRING;
- argvars[1].vval.v_string = vim_strsave((char_u *)"foreground()");
- argvars[2].v_type = VAR_UNKNOWN;
- rettv->v_type = VAR_STRING;
- rettv->vval.v_string = NULL;
- remote_common(argvars, rettv, TRUE);
- vim_free(argvars[1].vval.v_string);
-# endif
-#endif
-}
-
- static void
-f_remote_peek(typval_T *argvars UNUSED, typval_T *rettv)
-{
-#ifdef FEAT_CLIENTSERVER
- dictitem_T v;
- char_u *s = NULL;
-# ifdef MSWIN
- long_u n = 0;
-# endif
- char_u *serverid;
-
- if (check_restricted() || check_secure())
- {
- rettv->vval.v_number = -1;
- return;
- }
- serverid = tv_get_string_chk(&argvars[0]);
- if (serverid == NULL)
- {
- rettv->vval.v_number = -1;
- return; // type error; errmsg already given
- }
-# ifdef MSWIN
- sscanf((const char *)serverid, SCANF_HEX_LONG_U, &n);
- if (n == 0)
- rettv->vval.v_number = -1;
- else
- {
- s = serverGetReply((HWND)n, FALSE, FALSE, FALSE, 0);
- rettv->vval.v_number = (s != NULL);
- }
-# else
- if (check_connection() == FAIL)
- return;
-
- rettv->vval.v_number = serverPeekReply(X_DISPLAY,
- serverStrToWin(serverid), &s);
-# endif
-
- if (argvars[1].v_type != VAR_UNKNOWN && rettv->vval.v_number > 0)
- {
- char_u *retvar;
-
- v.di_tv.v_type = VAR_STRING;
- v.di_tv.vval.v_string = vim_strsave(s);
- retvar = tv_get_string_chk(&argvars[1]);
- if (retvar != NULL)
- set_var(retvar, &v.di_tv, FALSE);
- vim_free(v.di_tv.vval.v_string);
- }
-#else
- rettv->vval.v_number = -1;
-#endif
-}
-
- static void
-f_remote_read(typval_T *argvars UNUSED, typval_T *rettv)
-{
- char_u *r = NULL;
-
-#ifdef FEAT_CLIENTSERVER
- char_u *serverid = tv_get_string_chk(&argvars[0]);
-
- if (serverid != NULL && !check_restricted() && !check_secure())
- {
- int timeout = 0;
-# ifdef MSWIN
- // The server's HWND is encoded in the 'id' parameter
- long_u n = 0;
-# endif
-
- if (argvars[1].v_type != VAR_UNKNOWN)
- timeout = tv_get_number(&argvars[1]);
-
-# ifdef MSWIN
- sscanf((char *)serverid, SCANF_HEX_LONG_U, &n);
- if (n != 0)
- r = serverGetReply((HWND)n, FALSE, TRUE, TRUE, timeout);
- if (r == NULL)
-# else
- if (check_connection() == FAIL
- || serverReadReply(X_DISPLAY, serverStrToWin(serverid),
- &r, FALSE, timeout) < 0)
-# endif
- emsg(_("E277: Unable to read a server reply"));
- }
-#endif
- rettv->v_type = VAR_STRING;
- rettv->vval.v_string = r;
-}
-
-/*
- * "remote_send()" function
- */
- static void
-f_remote_send(typval_T *argvars UNUSED, typval_T *rettv)
-{
- rettv->v_type = VAR_STRING;
- rettv->vval.v_string = NULL;
-#ifdef FEAT_CLIENTSERVER
- remote_common(argvars, rettv, FALSE);
-#endif
-}
-
-/*
- * "remote_startserver()" function
- */
- static void
-f_remote_startserver(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
-{
-#ifdef FEAT_CLIENTSERVER
- char_u *server = tv_get_string_chk(&argvars[0]);
-
- if (server == NULL)
- return; // type error; errmsg already given
- if (serverName != NULL)
- emsg(_("E941: already started a server"));
- else
- {
-# ifdef FEAT_X11
- if (check_connection() == OK)
- serverRegisterName(X_DISPLAY, server);
-# else
- serverSetName(server);
-# endif
- }
-#else
- emsg(_("E942: +clientserver feature not available"));
-#endif
-}
-
/*
* "rename({from}, {to})" function
*/
@@ -7374,53 +7097,6 @@ f_searchpos(typval_T *argvars, typval_T *rettv)
}
static void
-f_server2client(typval_T *argvars UNUSED, typval_T *rettv)
-{
-#ifdef FEAT_CLIENTSERVER
- char_u buf[NUMBUFLEN];
- char_u *server = tv_get_string_chk(&argvars[0]);
- char_u *reply = tv_get_string_buf_chk(&argvars[1], buf);
-
- rettv->vval.v_number = -1;
- if (server == NULL || reply == NULL)
- return;
- if (check_restricted() || check_secure())
- return;
-# ifdef FEAT_X11
- if (check_connection() == FAIL)
- return;
-# endif
-
- if (serverSendReply(server, reply) < 0)
- {
- emsg(_("E258: Unable to send to client"));
- return;
- }
- rettv->vval.v_number = 0;
-#else
- rettv->vval.v_number = -1;
-#endif
-}
-
- static void
-f_serverlist(typval_T *argvars UNUSED, typval_T *rettv)
-{
- char_u *r = NULL;
-
-#ifdef FEAT_CLIENTSERVER
-# ifdef MSWIN
- r = serverGetVimNames();
-# else
- make_connection();
- if (X_DISPLAY != NULL)
- r = serverGetVimNames(X_DISPLAY);
-# endif
-#endif
- rettv->v_type = VAR_STRING;
- rettv->vval.v_string = r;
-}
-
- static void
f_setcharsearch(typval_T *argvars, typval_T *rettv UNUSED)
{
dict_T *d;