diff --git a/lisp/ob-core.el b/lisp/ob-core.el index d91f8a5a9..89a9b1f5a 100644 --- a/lisp/ob-core.el +++ b/lisp/ob-core.el @@ -3276,7 +3276,8 @@ Emacs shutdown.") (defmacro org-babel-temp-directory () "Return temporary directory suitable for `default-directory'." `(if (file-remote-p default-directory) - org-babel-remote-temporary-directory + (concat (file-remote-p default-directory) + org-babel-remote-temporary-directory) (or (and org-babel-temporary-directory (file-exists-p org-babel-temporary-directory) org-babel-temporary-directory) @@ -3287,42 +3288,31 @@ Emacs shutdown.") Passes PREFIX and SUFFIX directly to `make-temp-file' with the value of `temporary-file-directory' temporarily set to the value of `org-babel-temporary-directory'." - (if (file-remote-p default-directory) - (let ((prefix - (concat (file-remote-p default-directory) - (expand-file-name - prefix org-babel-remote-temporary-directory)))) - (make-temp-file prefix nil suffix)) - (let ((temporary-file-directory - (or (and org-babel-temporary-directory - (file-exists-p org-babel-temporary-directory) - org-babel-temporary-directory) - temporary-file-directory))) - (make-temp-file prefix nil suffix)))) + (make-temp-file + (concat (file-name-as-directory (org-babel-temp-directory)) prefix) + nil + suffix)) + +(defmacro org-babel-temp-stable-directory () + "Return temporary stable directory." + `(let ((org-babel-temporary-directory org-babel-temporary-stable-directory)) + (org-babel-temp-directory))) (defun org-babel-temp-stable-file (data prefix &optional suffix) "Create a temporary file in the `org-babel-remove-temporary-stable-directory'. The file name is stable with respect to DATA. The file name is constructed like the following: PREFIXDATAhashSUFFIX." - (if (file-remote-p default-directory) - (let* ((prefix - (concat (file-remote-p default-directory) - (expand-file-name - prefix org-babel-temporary-stable-directory))) - (path (concat prefix (format "%s" (sxhash data)) (or suffix "")))) - (with-temp-file path) - path) - (let* ((temporary-file-directory - (or (and org-babel-temporary-stable-directory - (file-exists-p org-babel-temporary-stable-directory) - org-babel-temporary-stable-directory) - temporary-file-directory)) - (path (concat - (expand-file-name - prefix org-babel-temporary-stable-directory) - (format "%s" (sxhash data)) (or suffix "")))) - (with-temp-file path) - path))) + (let ((path + (format + "%s%s%s%s" + (file-name-as-directory (org-babel-temp-stable-directory)) + prefix + (sxhash data) + (or suffix "")))) + ;; Create file. + (with-temp-file path) + ;; Return it. + path)) (defun org-babel-remove-temporary-directory () "Remove `org-babel-temporary-directory' on Emacs shutdown." diff --git a/lisp/ob-java.el b/lisp/ob-java.el index 395dbd20d..59bd48788 100644 --- a/lisp/ob-java.el +++ b/lisp/ob-java.el @@ -194,13 +194,10 @@ replaced in this string.") (packagename (if (string-match-p "\\." fullclassname) (file-name-base fullclassname))) ;; the base dir that contains the top level package dir - (basedir (file-name-as-directory (if run-from-temp - (if (file-remote-p default-directory) - (concat - (file-remote-p default-directory) - org-babel-remote-temporary-directory) - (org-babel-temp-directory)) - default-directory))) + (basedir (file-name-as-directory + (if run-from-temp + (org-babel-temp-directory) + default-directory))) ;; the dir to write the source file (packagedir (if (and (not run-from-temp) packagename) (file-name-as-directory