aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuanma Barranquero <[email protected]>2008-10-29 10:42:31 +0000
committerJuanma Barranquero <[email protected]>2008-10-29 10:42:31 +0000
commitf77b11a0515b302f8ae77abfdc4e6f66b38f231b (patch)
treec058aee977eab9e67efe28abd0829ffcef18c80c
parentf0e35aeb628f533ca5d71661c3d224da42ce723c (diff)
* server.el, emacsclient.c: Use TMPDIR (default /tmp) instead of hardcoded /tmp.
-rw-r--r--lib-src/ChangeLog5
-rw-r--r--lib-src/emacsclient.c17
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/server.el3
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 <[email protected]>
+
+ * emacsclient.c (set_local_socket): Use TMPDIR (default /tmp)
+ instead of hardcoded /tmp.
+
2008-10-13 Dan Nicolaescu <[email protected]>
* 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 <[email protected]>
+
+ * server.el (server-socket-dir): Use TMPDIR (default /tmp) instead
+ of hardcoded /tmp.
+
2008-10-29 Glenn Morris <[email protected]>
* 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)