summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoaquĆ­n Aguirrezabalaga <kinote@kinote.org>2019-04-25 10:36:40 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2019-04-25 10:36:40 +0200
commit4939b41750055ec59efc3eb9a360e760641a9b82 (patch)
treeda1b7a144f7f6638f911092a0722baf60b36ee09
parent8db6f52c0d656c2a4f027e0e333542d318f7fcf5 (diff)
downloadorg-mode-4939b41750055ec59efc3eb9a360e760641a9b82.tar.gz
ob-core: Fix :dir when :mkdirp is not defined
* lisp/ob-core.el (org-babel-execute-src-block): Fix behaviour of ":dir path" when ":mkdirp" is not defined. * testing/lisp/test-ob.el (test-ob-core/dir-mkdirp): Add a test case. TINYCHANGE
-rw-r--r--lisp/ob-core.el16
-rw-r--r--testing/lisp/test-ob.el9
2 files changed, 16 insertions, 9 deletions
diff --git a/lisp/ob-core.el b/lisp/ob-core.el
index 7591e99..a4b2294 100644
--- a/lisp/ob-core.el
+++ b/lisp/ob-core.el
@@ -679,14 +679,14 @@ block."
(dir (cdr (assq :dir params)))
(mkdirp (cdr (assq :mkdirp params)))
(default-directory
- (or (and dir
- (not (member mkdirp '("no" "nil" nil)))
- (progn
- (let ((d (file-name-as-directory
- (expand-file-name dir))))
- (make-directory d 'parents)
- d)))
- default-directory))
+ (cond
+ ((not dir) default-directory)
+ ((member mkdirp '("no" "nil" nil))
+ (file-name-as-directory (expand-file-name dir)))
+ (t
+ (let ((d (file-name-as-directory (expand-file-name dir))))
+ (make-directory d 'parents)
+ d))))
(cmd (intern (concat "org-babel-execute:" lang)))
result)
(unless (fboundp cmd)
diff --git a/testing/lisp/test-ob.el b/testing/lisp/test-ob.el
index facc0a4..d1b3f33 100644
--- a/testing/lisp/test-ob.el
+++ b/testing/lisp/test-ob.el
@@ -1633,7 +1633,14 @@ t
(org-babel-execute-src-block)
(message default-directory)
(prog1 (file-directory-p "data/code")
- (delete-directory "data" t)))))
+ (delete-directory "data" t))))
+ (should
+ (equal "/tmp/test-dir-no-mkdirp/"
+ (org-test-with-temp-text-in-file
+ "#+begin_src emacs-lisp :dir /tmp/test-dir-no-mkdirp
+default-directory
+#+end_src"
+ (org-babel-execute-src-block)))))
(ert-deftest test-ob/script-escape ()
;; Delimited lists of numbers