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

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

[elpa] externals-release/org 76a725317e: orgtbl-to-generic: Improve perf


From: ELPA Syncer
Subject: [elpa] externals-release/org 76a725317e: orgtbl-to-generic: Improve performance
Date: Sat, 10 Dec 2022 00:58:03 -0500 (EST)

branch: externals-release/org
commit 76a725317e5872b5da7515baa49159da4983b9c0
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>

    orgtbl-to-generic: Improve performance
    
    * lisp/org-table.el (orgtbl-to-generic): Disable org-fold checks in
    temporary buffer.  Folding state is irrelevant there.
    
    Reported-by: Majzoub, Eric <eric.majzoub@umsl.edu>
    Link: https://orgmode.org/list/tn0s4e$84u$1@ciao.gmane.io
---
 lisp/org-table.el | 51 ++++++++++++++++++++++++++-------------------------
 1 file changed, 26 insertions(+), 25 deletions(-)

diff --git a/lisp/org-table.el b/lisp/org-table.el
index 70ebde205f..7d02d896f5 100644
--- a/lisp/org-table.el
+++ b/lisp/org-table.el
@@ -5728,31 +5728,32 @@ This may be either a string or a function of two 
arguments:
     ;; Initialize communication channel in INFO.
     (with-temp-buffer
       (let ((org-inhibit-startup t)) (org-mode))
-      (let ((standard-output (current-buffer))
-           (org-element-use-cache nil))
-       (dolist (e table)
-         (cond ((eq e 'hline) (princ "|--\n"))
-               ((consp e)
-                (princ "| ") (dolist (c e) (princ c) (princ " |"))
-                (princ "\n")))))
-      (org-element-cache-reset)
-      ;; Add back-end specific filters, but not user-defined ones.  In
-      ;; particular, make sure to call parse-tree filters on the
-      ;; table.
-      (setq info
-           (let ((org-export-filters-alist nil))
-             (org-export-install-filters
-              (org-combine-plists
-               (org-export-get-environment backend nil params)
-               `(:back-end ,(org-export-get-backend backend))))))
-      (setq data
-           (org-export-filter-apply-functions
-            (plist-get info :filter-parse-tree)
-            (org-element-map (org-element-parse-buffer) 'table
-              #'identity nil t)
-            info)))
-    (when (and backend (symbolp backend) (not (org-export-get-backend 
backend)))
-      (user-error "Unknown :backend value"))
+      (org-fold-core-ignore-modifications
+        (let ((standard-output (current-buffer))
+             (org-element-use-cache nil))
+         (dolist (e table)
+           (cond ((eq e 'hline) (princ "|--\n"))
+                 ((consp e)
+                  (princ "| ") (dolist (c e) (princ c) (princ " |"))
+                  (princ "\n")))))
+        (org-element-cache-reset)
+        ;; Add back-end specific filters, but not user-defined ones.  In
+        ;; particular, make sure to call parse-tree filters on the
+        ;; table.
+        (setq info
+             (let ((org-export-filters-alist nil))
+               (org-export-install-filters
+                (org-combine-plists
+                 (org-export-get-environment backend nil params)
+                 `(:back-end ,(org-export-get-backend backend))))))
+        (setq data
+             (org-export-filter-apply-functions
+              (plist-get info :filter-parse-tree)
+              (org-element-map (org-element-parse-buffer) 'table
+                #'identity nil t)
+              info))
+        (when (and backend (symbolp backend) (not (org-export-get-backend 
backend)))
+          (user-error "Unknown :backend value"))))
     (when (or (not backend) (plist-get info :raw)) (require 'ox-org))
     ;; Handle :skip parameter.
     (let ((skip (plist-get info :skip)))



reply via email to

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