summaryrefslogtreecommitdiff
path: root/lisp/org/ob-tangle.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/org/ob-tangle.el')
-rw-r--r--lisp/org/ob-tangle.el15
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."