From eba87f9de87cc661c99d12ef31b961c36b3d528b Mon Sep 17 00:00:00 2001 From: Allen Li Date: Sat, 16 Feb 2019 17:21:04 -0800 Subject: [PATCH] Fix buffer local org-agenda-overriding-columns-format bug Setting org-agenda-overriding-columns-format as a buffer local value interferes with how it is used as a dynamically scoped var, so use a separate variable for buffer local setting. --- lisp/org-agenda.el | 3 ++- lisp/org-colview.el | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index 489ecec95..054c0b268 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -3768,6 +3768,7 @@ FILTER-ALIST is an alist of filters we need to apply when (setq buffer-read-only nil)))) (defvar org-agenda-overriding-columns-format) ; From org-colview.el +(defvar org-agenda-local-overriding-columns-format) ; From org-colview.el (defun org-agenda-finalize () "Finishing touch for the agenda buffer, called just before displaying it." (unless org-agenda-multi @@ -3783,7 +3784,7 @@ FILTER-ALIST is an alist of filters we need to apply when (unless org-agenda-with-colors (remove-text-properties (point-min) (point-max) '(face nil))) (when (bound-and-true-p org-agenda-overriding-columns-format) - (setq-local org-agenda-overriding-columns-format + (setq-local org-agenda-local-overriding-columns-format org-agenda-overriding-columns-format)) (when org-agenda-view-columns-initially (org-agenda-columns)) diff --git a/lisp/org-colview.el b/lisp/org-colview.el index 746426bc7..2fbb5aa6c 100644 --- a/lisp/org-colview.el +++ b/lisp/org-colview.el @@ -567,7 +567,13 @@ for the duration of the command.") (defvar org-agenda-overriding-columns-format nil "When set, overrides any other format definition for the agenda. -Don't set this, this is meant for dynamic scoping.") +Don't set this, this is meant for dynamic scoping. Set +`org-agenda-local-overriding-columns-format' instead.") + +(defvar-local org-agenda-local-overriding-columns-format nil + "When set, overrides any other format definition for the agenda. +This can be set as a buffer local value to avoid interfering with +dynamic scoping for `org-agenda-overriding-columns-format'.") (defun org-columns-edit-value (&optional key) "Edit the value of the property at point in column view. @@ -1564,6 +1570,7 @@ PARAMS is a property list of parameters: (fmt (cond ((bound-and-true-p org-agenda-overriding-columns-format)) + ((bound-and-true-p org-agenda-local-overriding-columns-format)) ((let ((m (org-get-at-bol 'org-hd-marker))) (and m (or (org-entry-get m "COLUMNS" t) -- 2.20.1