emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/org 811deae32d 2/2: Revert "org-export-data: Concatenat


From: ELPA Syncer
Subject: [elpa] externals/org 811deae32d 2/2: Revert "org-export-data: Concatenate strings in temporary buffer for performance"
Date: Fri, 17 Jun 2022 07:57:45 -0400 (EDT)

branch: externals/org
commit 811deae32db17d99e1b92e0ad8227268bab8ec7b
Author: Ihor Radchenko <yantar92@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>

    Revert "org-export-data: Concatenate strings in temporary buffer for 
performance"
    
    This reverts commit a158b263a69c89ff74536163d69b12117316b034.
    The commit actually makes not measurable performance difference.
---
 lisp/ox.el | 50 ++++++++++++++++++++++----------------------------
 1 file changed, 22 insertions(+), 28 deletions(-)

diff --git a/lisp/ox.el b/lisp/ox.el
index 034878c7f3..c75357b979 100644
--- a/lisp/ox.el
+++ b/lisp/ox.el
@@ -1927,34 +1927,28 @@ Return a string."
                              (and (not greaterp)
                                   (memq type org-element-recursive-objects)))
                             (contents
-                              (let ((export-buffer (current-buffer)))
-                                (with-temp-buffer
-                                  (dolist (element (org-element-contents
-                                                   (if (or greaterp objectp) 
data
-                                                     ;; Elements directly 
containing
-                                                     ;; objects must have 
their indentation
-                                                     ;; normalized first.
-                                                     
(org-element-normalize-contents
-                                                      data
-                                                      ;; When normalizing 
first paragraph
-                                                      ;; of an item or
-                                                      ;; a 
footnote-definition, ignore
-                                                      ;; first line's 
indentation.
-                                                      (and
-                                                       (eq type 'paragraph)
-                                                       (memq (org-element-type 
parent)
-                                                             
'(footnote-definition item))
-                                                       (eq (car 
(org-element-contents parent))
-                                                           data)
-                                                       (eq 
(org-element-property :pre-blank parent)
-                                                           0))))))
-                                    (insert
-                                     ;; Use right local variable
-                                     ;; environment if there are, for
-                                     ;; example, #+BIND variables.
-                                     (with-current-buffer export-buffer
-                                       (org-export-data element info))))
-                                  (buffer-string)))))
+                             (mapconcat
+                              (lambda (element) (org-export-data element info))
+                              (org-element-contents
+                               (if (or greaterp objectp) data
+                                 ;; Elements directly containing
+                                 ;; objects must have their indentation
+                                 ;; normalized first.
+                                 (org-element-normalize-contents
+                                  data
+                                  ;; When normalizing first paragraph
+                                  ;; of an item or
+                                  ;; a footnote-definition, ignore
+                                  ;; first line's indentation.
+                                  (and
+                                   (eq type 'paragraph)
+                                   (memq (org-element-type parent)
+                                         '(footnote-definition item))
+                                   (eq (car (org-element-contents parent))
+                                       data)
+                                   (eq (org-element-property :pre-blank parent)
+                                       0)))))
+                              "")))
                        (broken-link-handler
                         (funcall transcoder data
                                  (if (not greaterp) contents



reply via email to

[Prev in Thread] Current Thread [Next in Thread]