emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 652dabf: emacsclient: fix child exit when exec fail


From: Paul Eggert
Subject: [Emacs-diffs] master 652dabf: emacsclient: fix child exit when exec fails
Date: Fri, 23 Nov 2018 03:33:56 -0500 (EST)

branch: master
commit 652dabfff6f99631f8f3d6c3a658f0b8895d48b0
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    emacsclient: fix child exit when exec fails
    
    * 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 | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index b5ed2e0..9830eae 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -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 */
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]