Ver código fonte

ob-exp: Fix source blocks generated by other source blocks

* lisp/ob-exp.el (org-babel-exp--at-source): Source blocks generated
  by evaluating other source blocks may not be found in the original
  buffer.  In that case, do not move point.

Reported-by: "Berry, Charles" <ccberry@ucsd.edu>
<http://lists.gnu.org/r/emacs-orgmode/2017-12/msg00538.html>
Nicolas Goaziou 8 anos atrás
pai
commit
b3ddb051e6
1 arquivos alterados com 6 adições e 2 exclusões
  1. 6 2
      lisp/ob-exp.el

+ 6 - 2
lisp/ob-exp.el

@@ -58,9 +58,13 @@ returned is the value of the last form in BODY.  Assume that
 point is at the beginning of the Babel block."
 point is at the beginning of the Babel block."
   (declare (indent 1) (debug body))
   (declare (indent 1) (debug body))
   `(let ((source (get-text-property (point) 'org-reference)))
   `(let ((source (get-text-property (point) 'org-reference)))
-     (with-current-buffer org-babel-exp-reference-buffer
+     ;; Source blocks created during export process (e.g., by other
+     ;; source blocks) are not referenced.  In this case, do not move
+     ;; point at all.
+     (with-current-buffer (if source org-babel-exp-reference-buffer
+			    (current-buffer))
        (org-with-wide-buffer
        (org-with-wide-buffer
-	(goto-char source)
+	(when source (goto-char source))
 	,@body))))
 	,@body))))
 
 
 (defun org-babel-exp-src-block ()
 (defun org-babel-exp-src-block ()