Skip to content

Commit 17b6951

Browse files
h-eastbrammool
authored andcommitted
patch 9.0.1504: no error when calling remote_startserver("")
Problem: No error when calling remote_startserver() with an empty string. Solution: Give an error for an empty string. (Hirohito Higashi, closes #12327)
1 parent 2dcfe9a commit 17b6951

File tree

4 files changed

+17
-15
lines changed

4 files changed

+17
-15
lines changed

runtime/doc/builtin.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7312,8 +7312,9 @@ remote_send({server}, {string} [, {idvar}])
73127312
<
73137313
*remote_startserver()* *E941* *E942*
73147314
remote_startserver({name})
7315-
Become the server {name}. This fails if already running as a
7316-
server, when |v:servername| is not empty.
7315+
Become the server {name}. {name} must be a non-empty string.
7316+
This fails if already running as a server, when |v:servername|
7317+
is not empty.
73177318

73187319
Can also be used as a |method|: >
73197320
ServerName()->remote_startserver()

src/clientserver.c

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -968,25 +968,23 @@ f_remote_send(typval_T *argvars UNUSED, typval_T *rettv)
968968
f_remote_startserver(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
969969
{
970970
#ifdef FEAT_CLIENTSERVER
971-
char_u *server;
972-
973-
if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL)
971+
if (check_for_nonempty_string_arg(argvars, 0) == FAIL)
974972
return;
975973

976-
server = tv_get_string_chk(&argvars[0]);
977-
if (server == NULL)
978-
return; // type error; errmsg already given
979974
if (serverName != NULL)
980-
emsg(_(e_already_started_server));
981-
else
982975
{
976+
emsg(_(e_already_started_server));
977+
return;
978+
}
979+
980+
char_u *server = tv_get_string_chk(&argvars[0]);
983981
# ifdef FEAT_X11
984-
if (check_connection() == OK)
985-
serverRegisterName(X_DISPLAY, server);
982+
if (check_connection() == OK)
983+
serverRegisterName(X_DISPLAY, server);
986984
# else
987-
serverSetName(server);
985+
serverSetName(server);
988986
# endif
989-
}
987+
990988
#else
991989
emsg(_(e_clientserver_feature_not_available));
992990
#endif

src/testdir/test_clientserver.vim

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,8 @@ func Test_client_server()
182182
endif
183183
endtry
184184

185-
call assert_fails('call remote_startserver([])', 'E730:')
185+
call assert_fails('call remote_startserver("")', 'E1175:')
186+
call assert_fails('call remote_startserver([])', 'E1174:')
186187
call assert_fails("let x = remote_peek([])", 'E730:')
187188
call assert_fails("let x = remote_read('vim10')",
188189
\ has('unix') ? ['E573:.*vim10'] : 'E277:')

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,8 @@ static char *(features[]) =
695695

696696
static int included_patches[] =
697697
{ /* Add new patch number below this line */
698+
/**/
699+
1504,
698700
/**/
699701
1503,
700702
/**/

0 commit comments

Comments
 (0)