This looks good to me, though it would be good to add a comment
explaining why this dance is necessary.  Perhaps something along the
lines of

# The emacs server places its socket in TMPDIR, but ld.so unsets
# TMPDIR when loading setgid binaries like screen, so we must
# explicitly pass TMPDIR through to emacs.

Quoth Jameson Graef Rollins on Nov 10 at  8:59 am:
> This is to get around a bug where screen unsets TMPDIR.  This causes
> problems for users who set TMPDIR to something other than it's default
> (/tmp).
> ---
>  test/test-lib.sh |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
> 
> diff --git a/test/test-lib.sh b/test/test-lib.sh
> index ff5183f..108537e 100755
> --- a/test/test-lib.sh
> +++ b/test/test-lib.sh
> @@ -842,7 +842,9 @@ test_emacs () {
>       if [ -z "$EMACS_SERVER" ]; then
>               EMACS_SERVER="notmuch-test-suite-$$"
>               # start a detached screen session with an emacs server
> -             screen -S "$EMACS_SERVER" -d -m "$TMP_DIRECTORY/run_emacs" \
> +             screen -S "$EMACS_SERVER" -d -m \
> +                 env TMPDIR="$TMPDIR" \
> +                 "$TMP_DIRECTORY/run_emacs" \
>                       --no-window-system \
>                       --eval "(setq server-name \"$EMACS_SERVER\")" \
>                       --eval '(server-start)' \

Reply via email to