a1fa521975991c2eea36059f5b9e530203be0a12 — Ihor Radchenko 16 days ago 0740e62
org-agenda-format-item: Do not call `org-get-outline-path' in non-Org buffer

* lisp/org-agenda.el (org-agenda-format-item): Avoid invoking Org
parser when we are not actually in Org buffer.  Add commentary
explaining when it can happen.

Reported-by: Will O'Brien <will.08rien@gmail.com>
Link: https://orgmode.org/list/m2leawo9zo.fsf@hazy.com
1 files changed, 15 insertions(+), 5 deletions(-)

M lisp/org-agenda.el
M lisp/org-agenda.el => lisp/org-agenda.el +15 -5
@@ 7032,11 7032,21 @@ Any match of REMOVE-RE will be removed from TXT."

	;; Prepare the variables needed in the eval of the compiled format
	(when org-prefix-has-breadcrumbs
	  (setq breadcrumbs (org-with-point-at (org-get-at-bol 'org-marker)
			      (let ((s (org-format-outline-path (org-get-outline-path)
								(1- (frame-width))
								nil org-agenda-breadcrumbs-separator)))
				(if (equal "" s) "" (concat s org-agenda-breadcrumbs-separator))))))
	  (setq breadcrumbs
                ;; When called from Org buffer, remain in position.
                ;; When called from Agenda buffer, jump to headline position first.
                (org-with-point-at (org-get-at-bol 'org-marker)
		  (let ((s (if (derived-mode-p 'org-mode)
                               (org-format-outline-path (org-get-outline-path)
						        (1- (frame-width))
						        nil org-agenda-breadcrumbs-separator)
                             ;; Not in Org buffer.  This can happen,
                             ;; for example, in
                             ;; `org-agenda-add-time-grid-maybe' where
                             ;; time grid does not correspond to a
                             ;; particular heading.
		    (if (equal "" s) "" (concat s org-agenda-breadcrumbs-separator))))))
	(setq time (cond (s2 (concat
			      (org-agenda-time-of-day-to-ampm-maybe s1)
			      "-" (org-agenda-time-of-day-to-ampm-maybe s2)