ob-tangle: fixed bug, org-babel-post-tangle-hook was using an undefined macro

* lisp/ob-tangle.el (org-babel-with-temp-filebuffer): a macro for
  quickly visiting files with cleanup

  (org-babel-tangle): now using the locally defined
  with-temp-filebuffer macro
This commit is contained in:
Eric Schulte 2010-07-16 15:55:40 -07:00
parent a3dfb1c626
commit a503e031fb
1 changed files with 15 additions and 2 deletions

View File

@ -34,7 +34,6 @@
(declare-function org-link-escape "org" (text &optional table))
(declare-function org-heading-components "org" ())
(declare-function with-temp-filebuffer "org-interaction" (file &rest body))
(defcustom org-babel-tangle-lang-exts
'(("emacs-lisp" . "el"))
@ -54,6 +53,20 @@ then the name of the language is used."
:group 'org-babel
:type 'hook)
(defmacro org-babel-with-temp-filebuffer (file &rest body)
"Open FILE into a temporary buffer execute BODY there like
`progn', then kill the FILE buffer returning the result of
evaluating BODY."
(declare (indent 1))
(let ((temp-result (make-symbol "temp-result"))
(temp-file (make-symbol "temp-file")))
`(let (,temp-result ,temp-file)
(find-file ,file)
(setf ,temp-file (current-buffer))
(setf ,temp-result (progn ,@body))
(kill-buffer ,temp-file)
,temp-result)))
;;;###autoload
(defun org-babel-load-file (file)
"Load Emacs Lisp source code blocks in the Org-mode FILE.
@ -176,7 +189,7 @@ exported source code blocks by language."
(when org-babel-post-tangle-hook
(mapc
(lambda (file)
(with-temp-filebuffer file
(org-babel-with-temp-filebuffer file
(run-hooks 'org-babel-post-tangle-hook)))
path-collector))
path-collector)))