Skip to content

Instantly share code, notes, and snippets.

@yenliangl
Created December 27, 2011 13:44
Show Gist options
  • Save yenliangl/1523697 to your computer and use it in GitHub Desktop.
Save yenliangl/1523697 to your computer and use it in GitHub Desktop.
Patch for emacsclient-23.3b
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index 6b7c7c3..c6df02d 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -1479,7 +1479,7 @@ w32_give_focus ()
/* Start the emacs daemon and try to connect to it. */
void
-start_daemon_and_retry_set_socket (void)
+start_daemon_and_retry_set_socket (char* sname)
{
#ifndef WINDOWSNT
pid_t dpid;
@@ -1519,9 +1519,9 @@ start_daemon_and_retry_set_socket (void)
/* Pass --daemon=socket_name as argument. */
char *deq = "--daemon=";
char *daemon_arg = alloca (strlen (deq)
- + strlen (socket_name) + 1);
+ + strlen (sname) + 1);
strcpy (daemon_arg, deq);
- strcat (daemon_arg, socket_name);
+ strcat (daemon_arg, sname);
d_argv[1] = daemon_arg;
}
execvp ("emacs", d_argv);
@@ -1539,6 +1539,7 @@ main (argc, argv)
char *cwd, *str;
char string[BUFSIZ+1];
int null_socket_name, null_server_file, start_daemon_if_needed;
+ char* sname = NULL;
main_argv = argv;
progname = argv[0];
@@ -1573,6 +1574,7 @@ main (argc, argv)
null_server_file = (server_file == NULL);
}
+ sname = socket_name ? (char*)strdup(socket_name) : NULL;
if ((emacs_socket = set_socket (alternate_editor
|| start_daemon_if_needed)) == INVALID_SOCKET)
if (start_daemon_if_needed)
@@ -1584,7 +1586,10 @@ main (argc, argv)
if (null_server_file)
server_file = NULL;
- start_daemon_and_retry_set_socket ();
+ start_daemon_and_retry_set_socket (sname);
+ if (sname) {
+ free(sname);
+ }
}
else
fail ();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment