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

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

[elpa] externals/org bc33c0133d: lisp/org.el: Save restrictions in all a


From: ELPA Syncer
Subject: [elpa] externals/org bc33c0133d: lisp/org.el: Save restrictions in all agenda file buffers
Date: Sun, 10 Jul 2022 06:57:44 -0400 (EDT)

branch: externals/org
commit bc33c0133d1e8761a439c34c378ca929391cfa62
Author: Al Haji-Ali <abdo.haji.ali@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>

    lisp/org.el: Save restrictions in all agenda file buffers
    
    * lisp/org.el (org-agenda-prepare-buffers): Call
    `org-with-wide-buffer' for every buffer in the agenda, instead of
    calling `save-excursion'/'`save-restrictions' just for the current
    buffer, to save restrictions in all buffers.  Use
    `with-current-buffer' instead of `save-excursion'/'`set-buffer'.
    
    See 
https://list.orgmode.org/orgmode/87y1x588rs.fsf@thinkpad.mail-host-address-is-not-set/
    
    TINYCHANGE
---
 lisp/org.el | 78 +++++++++++++++++++++++++++++--------------------------------
 1 file changed, 37 insertions(+), 41 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index 661efeb9c9..3d4de5b4f6 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -15031,49 +15031,45 @@ When a buffer is unmodified, it is just killed.  When 
modified, it is saved
   "Create buffers for all agenda files, protect archived trees and comments."
   (interactive)
   (let ((inhibit-read-only t)
-       (org-inhibit-startup org-agenda-inhibit-startup)
-       pos)
+       (org-inhibit-startup org-agenda-inhibit-startup))
     (setq org-tag-alist-for-agenda nil
          org-tag-groups-alist-for-agenda nil)
-    (save-excursion
-      (save-restriction
-       (dolist (file files)
-         (catch 'nextfile
-           (if (bufferp file)
-               (set-buffer file)
-             (org-check-agenda-file file)
-             (set-buffer (org-get-agenda-file-buffer file)))
-           (widen)
-           (org-set-regexps-and-options 'tags-only)
-           (setq pos (point))
-           (or (memq 'category org-agenda-ignore-properties)
-               (org-refresh-category-properties))
-           (or (memq 'stats org-agenda-ignore-properties)
-               (org-refresh-stats-properties))
-           (or (memq 'effort org-agenda-ignore-properties)
-                (unless org-element-use-cache
-                 (org-refresh-effort-properties)))
-           (or (memq 'appt org-agenda-ignore-properties)
-               (org-refresh-properties "APPT_WARNTIME" 'org-appt-warntime))
-           (setq org-todo-keywords-for-agenda
-                 (append org-todo-keywords-for-agenda org-todo-keywords-1))
-           (setq org-done-keywords-for-agenda
-                 (append org-done-keywords-for-agenda org-done-keywords))
-           (setq org-todo-keyword-alist-for-agenda
-                 (append org-todo-keyword-alist-for-agenda org-todo-key-alist))
-           (setq org-tag-alist-for-agenda
-                 (org--tag-add-to-alist
-                  org-tag-alist-for-agenda
-                  org-current-tag-alist))
-           ;; Merge current file's tag groups into global
-           ;; `org-tag-groups-alist-for-agenda'.
-           (when org-group-tags
-             (dolist (alist org-tag-groups-alist)
-               (let ((old (assoc (car alist) org-tag-groups-alist-for-agenda)))
-                 (if old
-                     (setcdr old (org-uniquify (append (cdr old) (cdr alist))))
-                   (push alist org-tag-groups-alist-for-agenda)))))
-           (goto-char pos)))))
+    (dolist (file files)
+      (catch 'nextfile
+        (with-current-buffer
+            (if (bufferp file)
+                file
+              (org-check-agenda-file file)
+              (org-get-agenda-file-buffer file))
+          (org-with-wide-buffer
+          (org-set-regexps-and-options 'tags-only)
+          (or (memq 'category org-agenda-ignore-properties)
+              (org-refresh-category-properties))
+          (or (memq 'stats org-agenda-ignore-properties)
+              (org-refresh-stats-properties))
+          (or (memq 'effort org-agenda-ignore-properties)
+               (unless org-element-use-cache
+                (org-refresh-effort-properties)))
+          (or (memq 'appt org-agenda-ignore-properties)
+              (org-refresh-properties "APPT_WARNTIME" 'org-appt-warntime))
+          (setq org-todo-keywords-for-agenda
+                (append org-todo-keywords-for-agenda org-todo-keywords-1))
+          (setq org-done-keywords-for-agenda
+                (append org-done-keywords-for-agenda org-done-keywords))
+          (setq org-todo-keyword-alist-for-agenda
+                (append org-todo-keyword-alist-for-agenda org-todo-key-alist))
+          (setq org-tag-alist-for-agenda
+                (org--tag-add-to-alist
+                 org-tag-alist-for-agenda
+                 org-current-tag-alist))
+          ;; Merge current file's tag groups into global
+          ;; `org-tag-groups-alist-for-agenda'.
+          (when org-group-tags
+            (dolist (alist org-tag-groups-alist)
+              (let ((old (assoc (car alist) org-tag-groups-alist-for-agenda)))
+                (if old
+                    (setcdr old (org-uniquify (append (cdr old) (cdr alist))))
+                  (push alist org-tag-groups-alist-for-agenda)))))))))
     (setq org-todo-keywords-for-agenda
           (org-uniquify org-todo-keywords-for-agenda))
     (setq org-todo-keyword-alist-for-agenda



reply via email to

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