From d34e2cd1a1e830acc6d1575a32522f8e9e5b4d99 Mon Sep 17 00:00:00 2001 From: Bhavin Gandhi Date: Mon, 8 Apr 2024 23:33:29 +0530 Subject: [PATCH] org-timer-set-timer: Don't run `org-entry-get' in non Org buffers * lisp/org-timer.el (org-timer-set-timer): Avoid calling org-entry-get when we are not in an Org buffer. In case of Agenda buffer, we jump to the entry first. It was triggering an org-element warning when used in Agenda buffer, and was failing to find the value of Effort property. This patch is based on a fix by Ihor https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=a1fa52197 Reported-by: Bhavin Gandhi Link: https://list.orgmode.org/CAOn=hbez7-4wFG2M1-MSHqAwvV0mysvLAUYP9_GK6mrSbtz3CQ@mail.gmail.com/ --- lisp/org-timer.el | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lisp/org-timer.el b/lisp/org-timer.el index 8bb8be7be..23bb1c31c 100644 --- a/lisp/org-timer.el +++ b/lisp/org-timer.el @@ -424,9 +424,14 @@ using three \\[universal-argument] prefix arguments." (if (numberp org-timer-default-timer) (number-to-string org-timer-default-timer) org-timer-default-timer)) - (effort-minutes (let ((effort (org-entry-get nil org-effort-property))) - (when (org-string-nw-p effort) - (floor (org-duration-to-minutes effort))))) + (effort-minutes + ;; 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) + (if (derived-mode-p 'org-mode) + (let ((effort (org-entry-get nil org-effort-property))) + (when (org-string-nw-p effort) + (floor (org-duration-to-minutes effort))))))) (minutes (or (and (numberp opt) (number-to-string opt)) (and (not (equal opt '(64))) effort-minutes -- 2.44.0