diff --git a/tmux.1 b/tmux.1 index ef847bf7..f5d7fe5c 100644 --- a/tmux.1 +++ b/tmux.1 @@ -1,4 +1,4 @@ -.\" $Id: tmux.1,v 1.292 2011-01-21 23:45:34 tcunha Exp $ +.\" $Id: tmux.1,v 1.293 2011-01-21 23:46:50 tcunha Exp $ .\" .\" Copyright (c) 2007 Nicholas Marriott .\" @@ -134,7 +134,10 @@ will report an error and exit without executing further commands. .It Fl L Ar socket-name .Nm stores the server socket in a directory under -.Pa /tmp ; +.Pa /tmp +(or +.Ev TMPDIR +if set); the default socket is named .Em default . This option allows a different socket name to be specified, allowing several diff --git a/tmux.c b/tmux.c index 83b213d2..5a2fb01b 100644 --- a/tmux.c +++ b/tmux.c @@ -1,4 +1,4 @@ -/* $Id: tmux.c,v 1.234 2011-01-21 23:44:13 tcunha Exp $ */ +/* $Id: tmux.c,v 1.235 2011-01-21 23:46:50 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -172,12 +172,15 @@ parseenvironment(void) char * makesocketpath(const char *label) { - char base[MAXPATHLEN], *path; + char base[MAXPATHLEN], *path, *s; struct stat sb; u_int uid; uid = getuid(); - xsnprintf(base, MAXPATHLEN, "%s/tmux-%d", _PATH_TMP, uid); + if ((s = getenv("TMPDIR")) == NULL || *s == '\0') + xsnprintf(base, sizeof base, "%s/tmux-%u", _PATH_TMP, uid); + else + xsnprintf(base, sizeof base, "%s/tmux-%u", s, uid); if (mkdir(base, S_IRWXU) != 0 && errno != EEXIST) return (NULL);