Backport commit 0f7ceb480 from Emacs
* lisp/ox.el (org-export-as): Use `buffer-chars-modified-tick' and
avoid extra invocations of `org-set-regexps-and-options' and
`org-update-radio-target-regexp' when the buffer is not changed.
Also, disable folding checks. Folding is irrelevant inside export
buffer.
org-export-as: Do not update buffer settings when not modified
0f7ceb4803cabcb3c406fa7c27ccb7625096058e
Ihor Radchenko
Thu Jun 16 10:53:16 2022 +0300
[ km: This ported commit comes from main's 076dd92ac
. I'm applying it
here too for bookkeeping/traceability purposes. ]
This commit is contained in:
parent
4f8ea50604
commit
4ae72c6174
10
lisp/ox.el
10
lisp/ox.el
|
@ -2958,11 +2958,12 @@ Return code as a string."
|
|||
(mapcar (lambda (o) (and (eq (nth 4 o) 'parse) (nth 1 o)))
|
||||
(append (org-export-get-all-options backend)
|
||||
org-export-options-alist))))
|
||||
tree)
|
||||
tree modified-tick)
|
||||
;; Update communication channel and get parse tree. Buffer
|
||||
;; isn't parsed directly. Instead, all buffer modifications
|
||||
;; and consequent parsing are undertaken in a temporary copy.
|
||||
(org-export-with-buffer-copy
|
||||
(font-lock-mode -1)
|
||||
;; Run first hook with current back-end's name as argument.
|
||||
(run-hook-with-args 'org-export-before-processing-hook
|
||||
(org-export-backend-name backend))
|
||||
|
@ -2974,6 +2975,7 @@ Return code as a string."
|
|||
;; potentially invasive changes.
|
||||
(org-set-regexps-and-options)
|
||||
(org-update-radio-target-regexp)
|
||||
(setq modified-tick (buffer-chars-modified-tick))
|
||||
;; Possibly execute Babel code. Re-run a macro expansion
|
||||
;; specifically for {{{results}}} since inline source blocks
|
||||
;; may have generated some more. Refresh buffer properties
|
||||
|
@ -2981,8 +2983,10 @@ Return code as a string."
|
|||
(when org-export-use-babel
|
||||
(org-babel-exp-process-buffer)
|
||||
(org-macro-replace-all '(("results" . "$1")) parsed-keywords)
|
||||
(unless (eq modified-tick (buffer-chars-modified-tick))
|
||||
(org-set-regexps-and-options)
|
||||
(org-update-radio-target-regexp))
|
||||
(setq modified-tick (buffer-chars-modified-tick)))
|
||||
;; Run last hook with current back-end's name as argument.
|
||||
;; Update buffer properties and radio targets one last time
|
||||
;; before parsing.
|
||||
|
@ -2990,8 +2994,10 @@ Return code as a string."
|
|||
(save-excursion
|
||||
(run-hook-with-args 'org-export-before-parsing-hook
|
||||
(org-export-backend-name backend)))
|
||||
(unless (eq modified-tick (buffer-chars-modified-tick))
|
||||
(org-set-regexps-and-options)
|
||||
(org-update-radio-target-regexp)
|
||||
(org-update-radio-target-regexp))
|
||||
(setq modified-tick (buffer-chars-modified-tick))
|
||||
;; Update communication channel with environment.
|
||||
(setq info
|
||||
(org-combine-plists
|
||||
|
|
Loading…
Reference in New Issue