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
This commit is contained in:
Joaquín Aguirrezabalaga 2019-04-25 10:36:40 +02:00 committed by Nicolas Goaziou
parent 8db6f52c0d
commit 4939b41750
2 changed files with 16 additions and 9 deletions

View File

@ -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)

View File

@ -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