From 1ef075bb27f5fa06dd668a5e9fac26029b5429bc Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 30 Sep 2010 20:57:26 -0700 Subject: [PATCH] Tweak temporary-file-directory on darwin systems. * lisp/files.el (temporary-file-directory): On darwin, also try DARWIN_USER_TEMP_DIR (see discussion in bug#7135). --- lisp/ChangeLog | 5 +++++ lisp/files.el | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 901a5fb53a3..b1092c28cab 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2010-10-01 Glenn Morris + + * files.el (temporary-file-directory): On darwin, also try + DARWIN_USER_TEMP_DIR (see discussion in bug#7135). + 2010-10-01 Juanma Barranquero * server.el (server-start): Revert part of 2010-09-30T02:53:26Z!lekktu@gmail.com. diff --git a/lisp/files.el b/lisp/files.el index 40627f690f8..92574283dd7 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -190,12 +190,27 @@ If the buffer is visiting a new file, the value is nil.") (defcustom temporary-file-directory (file-name-as-directory + ;; FIXME ? Should there be Ftemporary_file_directory to do the + ;; following more robustly (cf set_local_socket in emacsclient.c). + ;; It could be used elsewhere, eg Fcall_process_region, server-socket-dir. + ;; See bug#7135. (cond ((memq system-type '(ms-dos windows-nt)) (or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") "c:/temp")) + ((eq system-type 'darwin) + (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") + (let ((tmp (ignore-errors (shell-command-to-string ; bug#7135 + "getconf DARWIN_USER_TEMP_DIR")))) + (and (stringp tmp) + (setq tmp (replace-regexp-in-string "\n\\'" "" tmp)) + ;; This handles "getconf: Unrecognized variable..." + (file-directory-p tmp) + tmp)) + "/tmp")) (t (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "/tmp")))) "The directory for writing temporary files." :group 'files + ;; Darwin section added 24.1, does not seem worth :version bump. :initialize 'custom-initialize-delay :type 'directory) -- 2.39.5