aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Albinus2012-06-08 15:27:06 +0200
committerMichael Albinus2012-06-08 15:27:06 +0200
commit03310646a582b3eee44eb685857a5dc31597ceed (patch)
tree000ce2753f472f10c3b7ad8eedfef963273c2ccf
parent513749ee1862278385028d6700e1d2ce8abd35e6 (diff)
downloademacs-03310646a582b3eee44eb685857a5dc31597ceed.tar.gz
emacs-03310646a582b3eee44eb685857a5dc31597ceed.zip
* net/tramp-compat.el (tramp-compat-temporary-file-directory): Avoid infloop.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/net/tramp-compat.el32
2 files changed, 22 insertions, 15 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 4609954ff76..afec55e3f0d 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
12012-06-08 Michael Albinus <michael.albinus@gmx.de>
2
3 * net/tramp-compat.el (tramp-compat-temporary-file-directory):
4 Avoid infloop.
5
12012-06-08 Stefan Monnier <monnier@iro.umontreal.ca> 62012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
2 7
3 * startup.el (argv, argi): Make lexically scoped. 8 * startup.el (argv, argi): Make lexically scoped.
diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el
index 3a7926980f6..5ae987f0822 100644
--- a/lisp/net/tramp-compat.el
+++ b/lisp/net/tramp-compat.el
@@ -204,21 +204,23 @@
204 "Return name of directory for temporary files (compat function). 204 "Return name of directory for temporary files (compat function).
205For Emacs, this is the variable `temporary-file-directory', for XEmacs 205For Emacs, this is the variable `temporary-file-directory', for XEmacs
206this is the function `temp-directory'." 206this is the function `temp-directory'."
207 (cond 207 (let (file-name-handler-alist)
208 ((and (boundp 'temporary-file-directory) 208 (cond
209 (not (file-remote-p (symbol-value 'temporary-file-directory)))) 209 ;; We must return a local directory. If it is remote, we could
210 (symbol-value 'temporary-file-directory)) 210 ;; run into an infloop.
211 ((fboundp 'temp-directory) (tramp-compat-funcall 'temp-directory)) 211 ((boundp 'temporary-file-directory)
212 ((let ((d (getenv "TEMP"))) (and d (file-directory-p d))) 212 (eval (car (get 'temporary-file-directory 'standard-value))))
213 (file-name-as-directory (getenv "TEMP"))) 213 ((fboundp 'temp-directory) (tramp-compat-funcall 'temp-directory))
214 ((let ((d (getenv "TMP"))) (and d (file-directory-p d))) 214 ((let ((d (getenv "TEMP"))) (and d (file-directory-p d)))
215 (file-name-as-directory (getenv "TMP"))) 215 (file-name-as-directory (getenv "TEMP")))
216 ((let ((d (getenv "TMPDIR"))) (and d (file-directory-p d))) 216 ((let ((d (getenv "TMP"))) (and d (file-directory-p d)))
217 (file-name-as-directory (getenv "TMPDIR"))) 217 (file-name-as-directory (getenv "TMP")))
218 ((file-exists-p "c:/temp") (file-name-as-directory "c:/temp")) 218 ((let ((d (getenv "TMPDIR"))) (and d (file-directory-p d)))
219 (t (message (concat "Neither `temporary-file-directory' nor " 219 (file-name-as-directory (getenv "TMPDIR")))
220 "`temp-directory' is defined -- using /tmp.")) 220 ((file-exists-p "c:/temp") (file-name-as-directory "c:/temp"))
221 (file-name-as-directory "/tmp")))) 221 (t (message (concat "Neither `temporary-file-directory' nor "
222 "`temp-directory' is defined -- using /tmp."))
223 (file-name-as-directory "/tmp")))))
222 224
223;; `make-temp-file' exists in Emacs only. On XEmacs, we use our own 225;; `make-temp-file' exists in Emacs only. On XEmacs, we use our own
224;; implementation with `make-temp-name', creating the temporary file 226;; implementation with `make-temp-name', creating the temporary file