]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.0.1504: no error when calling remote_startserver("") v9.0.1504
authorh-east <h.east.727@gmail.com>
Mon, 1 May 2023 21:36:56 +0000 (22:36 +0100)
committerBram Moolenaar <Bram@vim.org>
Mon, 1 May 2023 21:36:56 +0000 (22:36 +0100)
Problem:    No error when calling remote_startserver() with an empty string.
Solution:   Give an error for an empty string. (Hirohito Higashi,
            closes #12327)

runtime/doc/builtin.txt
src/clientserver.c
src/testdir/test_clientserver.vim
src/version.c

index 91d468ee1622766b1f18b3a431458e88055c8771..dd680069f77164f4972fa5ddd4e50b609cf286d5 100644 (file)
@@ -7312,8 +7312,9 @@ remote_send({server}, {string} [, {idvar}])
 <
                                        *remote_startserver()* *E941* *E942*
 remote_startserver({name})
-               Become the server {name}.  This fails if already running as a
-               server, when |v:servername| is not empty.
+               Become the server {name}.  {name} must be a non-empty string.
+               This fails if already running as a server, when |v:servername|
+               is not empty.
 
                Can also be used as a |method|: >
                        ServerName()->remote_startserver()
index dfbb8a8b039a1cd33e0af9741a53522816d22e18..400a4ad3eb32c5394aaed56c52b17ed22ef3d1ee 100644 (file)
@@ -968,25 +968,23 @@ f_remote_send(typval_T *argvars UNUSED, typval_T *rettv)
 f_remote_startserver(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
 {
 #ifdef FEAT_CLIENTSERVER
-    char_u     *server;
-
-    if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL)
+    if (check_for_nonempty_string_arg(argvars, 0) == FAIL)
        return;
 
-    server = tv_get_string_chk(&argvars[0]);
-    if (server == NULL)
-       return;         // type error; errmsg already given
     if (serverName != NULL)
-       emsg(_(e_already_started_server));
-    else
     {
+       emsg(_(e_already_started_server));
+       return;
+    }
+
+    char_u *server = tv_get_string_chk(&argvars[0]);
 # ifdef FEAT_X11
-       if (check_connection() == OK)
-           serverRegisterName(X_DISPLAY, server);
+    if (check_connection() == OK)
+       serverRegisterName(X_DISPLAY, server);
 # else
-       serverSetName(server);
+    serverSetName(server);
 # endif
-    }
+
 #else
     emsg(_(e_clientserver_feature_not_available));
 #endif
index 64c9ab8e811d9f9790d9c2ed79c052f9186b2893..53947f410bae209a37ff4b8e9dd295bae1e25685 100644 (file)
@@ -182,7 +182,8 @@ func Test_client_server()
     endif
   endtry
 
-  call assert_fails('call remote_startserver([])', 'E730:')
+  call assert_fails('call remote_startserver("")', 'E1175:')
+  call assert_fails('call remote_startserver([])', 'E1174:')
   call assert_fails("let x = remote_peek([])", 'E730:')
   call assert_fails("let x = remote_read('vim10')",
         \ has('unix') ? ['E573:.*vim10'] : 'E277:')
index 338399c7756f1f417289c8110d94930acb84b17c..2a99c3b3ce137a374e7802e72f3ed15537cc7b73 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1504,
 /**/
     1503,
 /**/