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

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

[elpa] externals-release/org 1cd39c9e30 2/3: org-mode: Fix element cache


From: ELPA Syncer
Subject: [elpa] externals-release/org 1cd39c9e30 2/3: org-mode: Fix element cache updates when aligning tables during startup
Date: Mon, 2 Jan 2023 02:58:04 -0500 (EST)

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

    org-mode: Fix element cache updates when aligning tables during startup
    
    * lisp/org.el (org-mode): Do not suppress modification hooks when
    aligning tables.  Otherwise, cache state may become invalid.
    
    Reported-by: Stefan <org@stefan.failing.systems>
    Link: https://orgmode.org/list/87tu1wse45.fsf@localhost
---
 lisp/org.el | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index 21764f3d43..286a34ba27 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -4898,16 +4898,20 @@ The following commands are available:
             (= (point-min) (point-max)))
     (insert "#    -*- mode: org -*-\n\n"))
   (unless org-inhibit-startup
+    (when (or org-startup-align-all-tables org-startup-shrink-all-tables)
+      (org-table-map-tables
+       (cond ((and org-startup-align-all-tables
+                  org-startup-shrink-all-tables)
+             (lambda () (org-table-align) (org-table-shrink)))
+            (org-startup-align-all-tables #'org-table-align)
+            (t #'org-table-shrink))
+       t))
+    ;; Suppress modification hooks to speed up the startup.
+    ;; However, do it only when text properties/overlays, but not
+    ;; buffer text are actually modified.  We still need to track text
+    ;; modifications to make cache updates work reliably.
     (org-unmodified
      (when org-startup-with-beamer-mode (org-beamer-mode))
-     (when (or org-startup-align-all-tables org-startup-shrink-all-tables)
-       (org-table-map-tables
-       (cond ((and org-startup-align-all-tables
-                   org-startup-shrink-all-tables)
-              (lambda () (org-table-align) (org-table-shrink)))
-             (org-startup-align-all-tables #'org-table-align)
-             (t #'org-table-shrink))
-       t))
      (when org-startup-with-inline-images (org-display-inline-images))
      (when org-startup-with-latex-preview (org-latex-preview '(16)))
      (unless org-inhibit-startup-visibility-stuff 
(org-cycle-set-startup-visibility))



reply via email to

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