Use TMPDIR if set, from Han Boetes.

This commit is contained in:
Nicholas Marriott 2011-01-12 22:23:58 +00:00
parent 47e18f4cea
commit b3438c86bf
2 changed files with 9 additions and 3 deletions

5
tmux.1
View File

@ -134,7 +134,10 @@ will report an error and exit without executing further commands.
.It Fl L Ar socket-name .It Fl L Ar socket-name
.Nm .Nm
stores the server socket in a directory under stores the server socket in a directory under
.Pa /tmp ; .Pa /tmp
(or
.Ev TMPDIR
if set);
the default socket is named the default socket is named
.Em default . .Em default .
This option allows a different socket name to be specified, allowing several This option allows a different socket name to be specified, allowing several

7
tmux.c
View File

@ -169,12 +169,15 @@ parseenvironment(void)
char * char *
makesocketpath(const char *label) makesocketpath(const char *label)
{ {
char base[MAXPATHLEN], *path; char base[MAXPATHLEN], *path, *s;
struct stat sb; struct stat sb;
u_int uid; u_int uid;
uid = getuid(); 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) if (mkdir(base, S_IRWXU) != 0 && errno != EEXIST)
return (NULL); return (NULL);