From f77b11a0515b302f8ae77abfdc4e6f66b38f231b Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Wed, 29 Oct 2008 10:42:31 +0000 Subject: [PATCH] * server.el, emacsclient.c: Use TMPDIR (default /tmp) instead of hardcoded /tmp. --- lib-src/ChangeLog | 5 +++++ lib-src/emacsclient.c | 17 +++++++++++------ lisp/ChangeLog | 5 +++++ lisp/server.el | 3 ++- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 7883cf3b08..3f8ae2132e 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,8 @@ +2008-10-29 Ulrich Mueller + + * emacsclient.c (set_local_socket): Use TMPDIR (default /tmp) + instead of hardcoded /tmp. + 2008-10-13 Dan Nicolaescu * emacsclient.c (longopts, print_help_and_exit): Add -nw. diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index d4a7ad3d09..4c167c2ad7 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -1128,6 +1128,7 @@ set_local_socket () int default_sock = !socket_name; int saved_errno = 0; char *server_name = "server"; + char *tmpdir; if (socket_name && !index (socket_name, '/') && !index (socket_name, '\\')) { /* socket_name is a file name component. */ @@ -1138,9 +1139,12 @@ set_local_socket () if (default_sock) { - socket_name = alloca (100 + strlen (server_name)); - sprintf (socket_name, "/tmp/emacs%d/%s", - (int) geteuid (), server_name); + tmpdir = egetenv ("TMPDIR"); + if (!tmpdir) + tmpdir = "/tmp"; + socket_name = alloca (32 + strlen (tmpdir) + strlen (server_name)); + sprintf (socket_name, "%s/emacs%d/%s", + tmpdir, (int) geteuid (), server_name); } if (strlen (socket_name) < sizeof (server.sun_path)) @@ -1174,9 +1178,10 @@ set_local_socket () if (pw && (pw->pw_uid != geteuid ())) { /* We're running under su, apparently. */ - socket_name = alloca (100 + strlen (server_name)); - sprintf (socket_name, "/tmp/emacs%d/%s", - (int) pw->pw_uid, server_name); + socket_name = alloca (32 + strlen (tmpdir) + + strlen (server_name)); + sprintf (socket_name, "%s/emacs%d/%s", + tmpdir, (int) pw->pw_uid, server_name); if (strlen (socket_name) < sizeof (server.sun_path)) strcpy (server.sun_path, socket_name); diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 37cf39e294..986c9a0470 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2008-10-29 Ulrich Mueller + + * server.el (server-socket-dir): Use TMPDIR (default /tmp) instead + of hardcoded /tmp. + 2008-10-29 Glenn Morris * net/xesam.el (dbus-get-unique-name, dbus-debug): Declare. diff --git a/lisp/server.el b/lisp/server.el index b69965f94a..57d23183d2 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -202,7 +202,8 @@ are done with it in the server.") (defvar server-name "server") -(defvar server-socket-dir (format "/tmp/emacs%d" (user-uid)) +(defvar server-socket-dir + (format "%s/emacs%d" (or (getenv "TMPDIR") "/tmp") (user-uid)) "The directory in which to place the server socket.") (defun server-clients-with (property value) -- 2.20.1