]> git.eshelyaron.com Git - emacs.git/commitdiff
emacsclient: fix child exit when exec fails
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 23 Nov 2018 08:33:37 +0000 (00:33 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 23 Nov 2018 08:33:50 +0000 (00:33 -0800)
* lib-src/emacsclient.c (start_daemon_and_retry_set_socket):
If the execvp of Emacs fails exit instead of having the child
run on and do the work of the parent.  Coalesce duplicate code.

lib-src/emacsclient.c

index b5ed2e0435a4382bd7ebd5bd0dc8f887a6052e20..9830eaecc6dde08b744564854f55f3436c7d1197 100644 (file)
@@ -1484,13 +1484,6 @@ start_daemon_and_retry_set_socket (void)
       /* Try connecting, the daemon should have started by now.  */
       message (true,
               "Emacs daemon should have started, trying to connect again\n");
-
-      if ((emacs_socket = set_socket (1)) == INVALID_SOCKET)
-       {
-         message (true, ("Error: Cannot connect "
-                         "even after starting the Emacs daemon\n"));
-         exit (EXIT_FAILURE);
-       }
     }
   else if (dpid < 0)
     {
@@ -1518,6 +1511,7 @@ start_daemon_and_retry_set_socket (void)
 #  endif
       execvp ("emacs", d_argv);
       message (true, "%s: error starting emacs daemon\n", progname);
+      exit (EXIT_FAILURE);
     }
 # else  /* WINDOWSNT */
   DWORD wait_result;
@@ -1583,13 +1577,15 @@ start_daemon_and_retry_set_socket (void)
   if (!w32_window_app ())
     message (true,
             "Emacs daemon should have started, trying to connect again\n");
-  if ((emacs_socket = set_socket (1)) == INVALID_SOCKET)
+# endif /* WINDOWSNT */
+
+  emacs_socket = set_socket (true);
+  if (emacs_socket == INVALID_SOCKET)
     {
       message (true,
               "Error: Cannot connect even after starting the Emacs daemon\n");
       exit (EXIT_FAILURE);
     }
-# endif        /* WINDOWSNT */
 }
 #endif /* HAVE_SOCKETS && HAVE_INET_SOCKETS */