mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-16 04:40:18 +00:00
Babel -- fix bug in final deletion of `org-babel-temporary-directory'
Thanks to Noorul Islam for pointing out this issue * lisp/ob.el (org-babel-remove-temporary-directory): the version of `delete-directory' found in files.el can not be assumed to be present on all versions, so this copies the recursive behavior of that command in such a way that all calls to delete-directory will also work with the built-in internal C implementation of that function. This is not overly difficult as all elements of the directory can be assumed to be files.
This commit is contained in:
parent
e3d271ea5b
commit
9c43017755
13
lisp/ob.el
13
lisp/ob.el
|
@ -1679,7 +1679,18 @@ of `org-babel-temporary-directory'."
|
||||||
(defun org-babel-remove-temporary-directory ()
|
(defun org-babel-remove-temporary-directory ()
|
||||||
"Remove `org-babel-temporary-directory' on Emacs shutdown."
|
"Remove `org-babel-temporary-directory' on Emacs shutdown."
|
||||||
(when (boundp 'org-babel-temporary-directory)
|
(when (boundp 'org-babel-temporary-directory)
|
||||||
(delete-directory org-babel-temporary-directory t)))
|
;; taken from `delete-directory' in files.el
|
||||||
|
(mapc (lambda (file)
|
||||||
|
;; This test is equivalent to
|
||||||
|
;; (and (file-directory-p fn) (not (file-symlink-p fn)))
|
||||||
|
;; but more efficient
|
||||||
|
(if (eq t (car (file-attributes file)))
|
||||||
|
(delete-directory file)
|
||||||
|
(delete-file file nil)))
|
||||||
|
;; We do not want to delete "." and "..".
|
||||||
|
(directory-files org-babel-temporary-directory 'full
|
||||||
|
"^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*"))
|
||||||
|
(delete-directory org-babel-temporary-directory)))
|
||||||
|
|
||||||
(add-hook 'kill-emacs-hook 'org-babel-remove-temporary-directory)
|
(add-hook 'kill-emacs-hook 'org-babel-remove-temporary-directory)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue