+2008-12-18 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * emacsclient.c (start_daemon_and_retry_set_socket): Improve error
+ checking.
+
2008-12-14 Dan Nicolaescu <dann@ics.uci.edu>
* emacsclient.c: Include syswait.h instead of sys/types.h.
#ifndef WINDOWSNT
pid_t dpid;
int status;
- pid_t p;
dpid = fork ();
if (dpid > 0)
{
- p = waitpid (dpid, &status, WUNTRACED | WCONTINUED);
+ pid_t w;
+ w = waitpid (dpid, &status, WUNTRACED | WCONTINUED);
- /* Try connecting again, the daemon should have started by
- now. */
- message (TRUE, "daemon should have started, trying to connect again\n", dpid);
+ if ((w == -1) || !WIFEXITED (status) || WEXITSTATUS(status))
+ {
+ message (TRUE, "Error: Could not start the Emacs daemon\n");
+ exit (EXIT_FAILURE);
+ }
+
+ /* 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, "Cannot connect even after starting the daemon\n");
+ {
+ message (TRUE, "Error: Cannot connect even after starting the Emacs daemon\n");
+ exit (EXIT_FAILURE);
+ }
}
else if (dpid < 0)
{
- fprintf (stderr, "Cannot fork!\n");
+ fprintf (stderr, "Error: Cannot fork!\n");
exit (1);
}
else
2008-12-18 Dan Nicolaescu <dann@ics.uci.edu>
+ * startup.el (command-line): Do not mention the server name in
+ case the user has not mentioned it, print a more explicit message.
+
* vc-dir.el (vc-dir-at-event): Rename from vc-at-event. Change
all callers.
(server-start)
(if server-process
(daemon-initialized)
- (message "Unable to start daemon: Emacs server named %S already running" server-name)
+ (if (stringp dn)
+ (message
+ "Unable to start daemon: Emacs server named %S already running"
+ server-name)
+ (message "Unable to start the daemon.\nAnother instance of Emacs is running the server, either as daemon or interactively.\nYou can use emacsclient to connect to that Emacs process."))
(kill-emacs 1))))
;; Run emacs-session-restore (session management) if started by
+2008-12-18 Dan Nicolaescu <dann@ics.uci.edu>
+
+ * emacs.c (main): Print and error and exit when no data is read
+ from the pipe.
+
2008-12-17 Jason Rumney <jasonr@gnu.org>
* w32font.c (w32font_has_char): Always return -1.
fprintf (stderr, "Error reading status from child\n");
exit (1);
}
+ else if (retval == 0)
+ {
+ fprintf (stderr, "Error: server did not start correctly\n");
+ exit (1);
+ }
close (daemon_pipe[0]);
exit (0);