|
@@ -2564,31 +2564,29 @@ Return code as a string."
|
|
|
;; Instead, a temporary copy is created, where include
|
|
|
;; keywords and macros are expanded and code blocks
|
|
|
;; are evaluated.
|
|
|
- (tree (let ((buf (or (buffer-file-name (buffer-base-buffer))
|
|
|
- (current-buffer))))
|
|
|
- (org-export-with-current-buffer-copy
|
|
|
- (unless noexpand
|
|
|
- (org-export-expand-include-keyword)
|
|
|
- ;; Update radio targets since keyword
|
|
|
- ;; inclusion might have added some more.
|
|
|
- (org-update-radio-target-regexp)
|
|
|
- (org-export-expand-macro info)
|
|
|
- ;; TODO: Setting `org-current-export-file' is
|
|
|
- ;; required by Org Babel to properly resolve
|
|
|
- ;; noweb references. Once "org-exp.el" is
|
|
|
- ;; removed, modify
|
|
|
- ;; `org-export-blocks-preprocess' so it
|
|
|
- ;; accepts the value as an argument instead.
|
|
|
- (let ((org-current-export-file buf))
|
|
|
- (org-export-blocks-preprocess)))
|
|
|
- (goto-char (point-min))
|
|
|
- ;; Run hook
|
|
|
- ;; `org-export-before-parsing-hook'. with current
|
|
|
- ;; back-end as argument.
|
|
|
- (run-hook-with-args
|
|
|
- 'org-export-before-parsing-hook backend)
|
|
|
- ;; Eventually parse buffer.
|
|
|
- (org-element-parse-buffer nil visible-only)))))
|
|
|
+ (tree (org-export-with-current-buffer-copy
|
|
|
+ (unless noexpand
|
|
|
+ (org-export-expand-include-keyword)
|
|
|
+ ;; Update radio targets since keyword
|
|
|
+ ;; inclusion might have added some more.
|
|
|
+ (org-update-radio-target-regexp)
|
|
|
+ (org-export-expand-macro info)
|
|
|
+ ;; TODO: Setting `org-current-export-file' is
|
|
|
+ ;; required by Org Babel to properly resolve
|
|
|
+ ;; noweb references. Once "org-exp.el" is
|
|
|
+ ;; removed, modify
|
|
|
+ ;; `org-export-blocks-preprocess' so it
|
|
|
+ ;; accepts the value as an argument instead.
|
|
|
+ (let ((org-current-export-file (current-buffer)))
|
|
|
+ (org-export-blocks-preprocess)))
|
|
|
+ (goto-char (point-min))
|
|
|
+ ;; Run hook
|
|
|
+ ;; `org-export-before-parsing-hook'. with current
|
|
|
+ ;; back-end as argument.
|
|
|
+ (run-hook-with-args
|
|
|
+ 'org-export-before-parsing-hook backend)
|
|
|
+ ;; Eventually parse buffer.
|
|
|
+ (org-element-parse-buffer nil visible-only))))
|
|
|
;; 3. Call parse-tree filters to get the final tree.
|
|
|
(setq tree
|
|
|
(org-export-filter-apply-functions
|
|
@@ -2717,28 +2715,25 @@ The copy preserves local variables and visibility of the original
|
|
|
buffer.
|
|
|
|
|
|
Point is at buffer's beginning when BODY is applied."
|
|
|
- (org-with-gensyms (original-buffer offset buffer-string overlays)
|
|
|
- `(let ((,original-buffer (current-buffer))
|
|
|
- (,offset (1- (point-min)))
|
|
|
- (,buffer-string (buffer-string))
|
|
|
- (,overlays (mapcar
|
|
|
- 'copy-overlay (overlays-in (point-min) (point-max)))))
|
|
|
+ (declare (debug (body)))
|
|
|
+ (org-with-gensyms (original-buffer offset buffer-string overlays region)
|
|
|
+ `(let* ((,original-buffer (current-buffer))
|
|
|
+ (,region (list (point-min) (point-max)))
|
|
|
+ (,buffer-string (org-with-wide-buffer (buffer-string)))
|
|
|
+ (,overlays (mapcar 'copy-overlay (apply 'overlays-in ,region))))
|
|
|
(with-temp-buffer
|
|
|
(let ((buffer-invisibility-spec nil))
|
|
|
(org-clone-local-variables
|
|
|
,original-buffer
|
|
|
"^\\(org-\\|orgtbl-\\|major-mode$\\|outline-\\(regexp\\|level\\)$\\)")
|
|
|
(insert ,buffer-string)
|
|
|
+ (apply 'narrow-to-region ,region)
|
|
|
(mapc (lambda (ov)
|
|
|
(move-overlay
|
|
|
- ov
|
|
|
- (- (overlay-start ov) ,offset)
|
|
|
- (- (overlay-end ov) ,offset)
|
|
|
- (current-buffer)))
|
|
|
+ ov (overlay-start ov) (overlay-end ov) (current-buffer)))
|
|
|
,overlays)
|
|
|
(goto-char (point-min))
|
|
|
(progn ,@body))))))
|
|
|
-(def-edebug-spec org-export-with-current-buffer-copy (body))
|
|
|
|
|
|
(defun org-export-expand-macro (info)
|
|
|
"Expand every macro in buffer.
|