Subject: Re: bug#7135: 24.0.50; Mac OS X X11: emacsclient cannot find server from remote login

From: Eli Zaretskii <[email-masked]>
Date: Thu, 30 Sep 2010 11:17:54 +0200

> From: Glenn Morris <[email-masked]>
> Date: Thu, 30 Sep 2010 02:45:59 -0400
> Cc: Bob Nnamtrop <[email-masked]>, [email-masked]
> 
> Jan Djärv wrote:
> 
> > No.  It is a getconf variable.
> 
> Something more like this then?
> 
> *** lib-src/emacsclient.c	2010-01-13 15:38:28 +0000
> --- lib-src/emacsclient.c	2010-09-30 06:40:27 +0000
> ***************
> *** 1249,1255 ****
> --- 1249,1266 ----
>         {
>   	tmpdir = egetenv ("TMPDIR");
>   	if (!tmpdir)
> +           {
> + #ifdef DARWIN_OS
> +             size_t n = confstr (_CS_DARWIN_USER_TEMP_DIR, NULL, (size_t) 0);
> +             if (n > 0)
> +               {
> +                 tmpdir = alloca (n);
> +                 confstr (_CS_DARWIN_USER_TEMP_DIR, tmpdir, n);
> +               }
> +             else
> + #endif
>                 tmpdir = "/tmp";
> +           }

If this works, shouldn't it rather be part of egetenv?  Or at least a
new get_tmpdir function that would call egetenv on all platforms
except Darwin, and use the above on Darwin?