char_u *res;
int i;
char_u *sname;
- int ret;
+ int ret = -1;
int didone = FALSE;
int exiterr = 0;
char **newArgV = argv + 1;
if (clientserver_method == CLIENTSERVER_METHOD_SOCKET)
if (socket_server_send(server_name, keys, &r, &client, expr,
timeout * 1000, TRUE) < 0)
- goto stuff;
+ goto fail;
#endif
#ifdef FEAT_X11
if (clientserver_method == CLIENTSERVER_METHOD_X11)
if (serverSendToVim(X_DISPLAY, server_name, keys, &r, &w, expr, timeout,
0, TRUE) < 0)
- goto stuff;
+ goto fail;
#endif
# endif
#if !defined(MSWIN)
if (FALSE)
{
-stuff:
+fail:
#else
{
#endif
idvar = tv_get_string_chk(&argvars[2]);
if (idvar != NULL && *idvar != NUL)
{
+ str[0] = NUL;
#ifdef MSWIN
sprintf((char *)str, PRINTF_HEX_LONG_U, (long_u)w);
#else
vim_free(path);
return OK;
fail:
+ close(fd);
vim_free(path);
socket_server_uninit();
return FAIL;
socket_fd = socket(AF_UNIX, SOCK_STREAM, 0);
if (socket_fd == -1)
- goto fail;
+ {
+ vim_free(socket_path);
+ return -1;
+ }
addr.sun_family = AF_UNIX;
vim_snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", socket_path);
if (!silent)
semsg(_(e_socket_server_failed_connecting), socket_path,
strerror(errno));
- goto fail;
+ close(socket_fd);
+ vim_free(socket_path);
+ return -1;
}
if (path != NULL)
vim_free(socket_path);
return socket_fd;
-fail:
- close(socket_fd);
- vim_free(socket_path);
- return -1;
}
cmd->cmd_type == SS_CMD_TYPE_KEYSTROKES)
{
// Either an expression or keystrokes.
- if (socket_server_valid() && enc != NULL)
+ if (socket_server_valid() && enc != NULL && str != NULL)
{
str = serverConvert(enc, str, &to_free);
enew
let buf = RunVimInTerminal('--servername XVIMTEST', {'rows': 8})
call TermWait(buf)
+
+ " For some reason when the socket server is being used, the terminal Vim never
+ " receives the `:w! XVimRemoteTest.txt` command from term_sendkeys.
+ if has('socketserver') && !has('X11')
+ if match(serverlist(), "XVIMTEST") == -1
+ call StopVimInTerminal(buf)
+ throw s:skip
+ endif
+
+ let s:remote = 1
+ return
+ endif
+
let cmd = GetVimCommandCleanTerm() .. '--serverlist'
call term_sendkeys(buf, ":r! " .. cmd .. "\<CR>")
call TermWait(buf)
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1661,
/**/
1660,
/**/