diff options
author | Bastien Guerry <bzg@altern.org> | 2012-12-24 14:01:51 +0100 |
---|---|---|
committer | Bastien Guerry <bzg@altern.org> | 2012-12-24 14:01:51 +0100 |
commit | e6d8ed51b8434046d1e49d4c3f19994d69017780 (patch) | |
tree | 52badace846cc7d139c9f613be2ad51278e1d1b5 | |
parent | 4549f0c99cef65c68879641d2a96ad486b64e6b1 (diff) | |
parent | 1b4e396b6b2b015b67784eca7f046e177208c4b3 (diff) | |
download | org-mode-e6d8ed51b8434046d1e49d4c3f19994d69017780.tar.gz |
Merge branch 'maint'
-rw-r--r-- | lisp/org-compat.el | 31 | ||||
-rw-r--r-- | lisp/org-odt.el | 2 |
2 files changed, 27 insertions, 6 deletions
diff --git a/lisp/org-compat.el b/lisp/org-compat.el index 022f85e..1b52337 100644 --- a/lisp/org-compat.el +++ b/lisp/org-compat.el @@ -256,7 +256,6 @@ Works on both Emacs and XEmacs." (when (boundp 'zmacs-regions) (setq zmacs-regions t))))) - ;; Invisibility compatibility (defun org-remove-from-invisibility-spec (arg) @@ -448,12 +447,34 @@ With two arguments, return floor and remainder of their quotient." ;; `condition-case-unless-debug' has been introduced in Emacs 24.1 ;; `condition-case-no-debug' has been introduced in Emacs 23.1 -(defalias 'org-condition-case-unless-debug +(defmacro org-condition-case-unless-debug (var bodyform &rest handlers) + (declare (debug condition-case) (indent 2)) (or (and (fboundp 'condition-case-unless-debug) - 'condition-case-unless-debug) + `(condition-case-unless-debug ,var ,bodyform ,@handlers)) (and (fboundp 'condition-case-no-debug) - 'condition-case-no-debug) - 'condition-case)) + `(condition-case-no-debug ,var ,bodyform ,@handlers)) + `(condition-case ,var ,bodyform ,@handlers))) + +;; RECURSIVE has been introduced with Emacs 23.2. +;; This is copying and adapted from `tramp-compat-delete-directory' +(defun org-delete-directory (directory &optional recursive) + "Compatibility function for `delete-directory'." + (if (null recursive) + (delete-directory directory) + (condition-case nil + (funcall 'delete-directory directory recursive) + ;; This Emacs version does not support the RECURSIVE flag. We + ;; use the implementation from Emacs 23.2. + (wrong-number-of-arguments + (setq directory (directory-file-name (expand-file-name directory))) + (if (not (file-symlink-p directory)) + (mapc (lambda (file) + (if (eq t (car (file-attributes file))) + (org-delete-directory file recursive) + (delete-file file))) + (directory-files + directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*"))) + (delete-directory directory))))) ;;;###autoload (defmacro org-check-version () diff --git a/lisp/org-odt.el b/lisp/org-odt.el index d317d62..8895520 100644 --- a/lisp/org-odt.el +++ b/lisp/org-odt.el @@ -446,7 +446,7 @@ values. See Info node `(emacs) File Variables'." (kill-buffer))) xml-files)) ;; delete temporary directory. - (delete-directory org-odt-zip-dir t))))) + (org-delete-directory org-odt-zip-dir t))))) (org-condition-case-unless-debug err (prog1 (progn ,@body) (funcall --cleanup-xml-buffers)) |