In emacsclient, if an existing Emacs server cannot be found and an alternate editor is specified, the alternate editor is started. Along the way, emacsclient generates a warning that the server cannot be found.
On Windows, this warning is a pop-up dialog box that must be dismissed by the user. This is an unwanted interruption, and irrelevant, since the user has already indicated by using the --alternated-editor option how to handle this situation.
The patch below suppresses this warning when the user has specified both the --quiet option and the --alternate-editor option. The reasoning is that --quiet mutes all messages on success, and that because the --alternate-editor has been specified, this message is not reporting an error. It seems like a reasonable compromise that will allow users to see this warning if they like (by not using --quiet) and allow users to avoid it if they like (by using --quiet).
*** emacsclient.c Tue Jan 1 15:37:17 2013
--- emacsclient-nomsg.c Fri Dec 13 10:05:30 2013
***************
*** 1002,1015 ****
/* Open up an AF_INET socket. */
if ((s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
{
! sock_err_message ("socket");
return INVALID_SOCKET;
}
/* Set up the socket. */
if (connect (s, (struct sockaddr *) &server, sizeof server) < 0)
{
! sock_err_message ("connect");
return INVALID_SOCKET;
}
--- 1002,1027 ----
/* Open up an AF_INET socket. */
if ((s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
{
! /*
! * If we have an alternate editor specified, then a socket error
! * isn't really an "error" (because we'll end up invoking the
! * alternate editor) so if asked we'll be quiet about this error
! * message.
! *
! */
! if (!quiet || !alternate_editor) {
! sock_err_message ("socket");
! };
return INVALID_SOCKET;
}
/* Set up the socket. */
if (connect (s, (struct sockaddr *) &server, sizeof server) < 0)
{
! /* See comment above for rationale about showing/not showing err */
! if (!quiet || !alternate_editor) {
! sock_err_message ("connect");
! };
return INVALID_SOCKET;
}