diff options
Diffstat (limited to 'lisp/org/ob-tangle.el')
-rw-r--r-- | lisp/org/ob-tangle.el | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/lisp/org/ob-tangle.el b/lisp/org/ob-tangle.el index 2dd1d031cb2..8ed7002ef65 100644 --- a/lisp/org/ob-tangle.el +++ b/lisp/org/ob-tangle.el @@ -179,15 +179,14 @@ source code blocks by languages matching a regular expression. Return a list whose CAR is the tangled file name." (interactive "fFile to tangle: \nP") - (let ((visited-p (find-buffer-visiting (expand-file-name file))) - to-be-removed) + (let* ((visited (find-buffer-visiting file)) + (buffer (or visited (find-file-noselect file)))) (prog1 - (save-window-excursion - (find-file file) - (setq to-be-removed (current-buffer)) - (mapcar #'expand-file-name (org-babel-tangle nil target-file lang-re))) - (unless visited-p - (kill-buffer to-be-removed))))) + (with-current-buffer buffer + (org-with-wide-buffer + (mapcar #'expand-file-name + (org-babel-tangle nil target-file lang-re)))) + (unless visited (kill-buffer buffer))))) (defun org-babel-tangle-publish (_ filename pub-dir) "Tangle FILENAME and place the results in PUB-DIR." |