From 3f20e32f8e46e865a504b817fcee809dd5f26f5b Mon Sep 17 00:00:00 2001 From: Ihor Radchenko Date: Wed, 27 Mar 2024 14:57:17 +0300 Subject: [PATCH] org-element-clock-parser: Do not be case-sensitive * lisp/org-element.el (org-element-clock-parser): Fix demanding upcased "CLOCK:" string. As per general Org mode syntax principle, keywords in Org mode are case-insensitive. * testing/lisp/test-org-element.el (test-org-element/clock-parser): Add test. Reported-by: Gregor Zattler Link: https://orgmode.org/list/875xx8mvvn.fsf@no.lan --- lisp/org-element.el | 5 ++--- testing/lisp/test-org-element.el | 9 +++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lisp/org-element.el b/lisp/org-element.el index d28e8a3c5..5857bc63a 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -2291,9 +2291,8 @@ Return a new syntax node of `clock' type containing `:status', `:value', `:time', `:begin', `:end', `:post-blank' and `:post-affiliated' as properties." (save-excursion - (let* ((case-fold-search nil) - (begin (point)) - (value (progn (search-forward "CLOCK:" (line-end-position) t) + (let* ((begin (point)) + (value (progn (search-forward "CLOCK:" (line-end-position)) (skip-chars-forward " \t") (org-element-timestamp-parser))) (duration (and (search-forward " => " (line-end-position) t) diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index 2323b63a5..e309ed97f 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -1157,6 +1157,15 @@ CLOCK: [2023-10-13 Fri 14:40]--[2023-10-13 Fri 14:51] => 0:11" (org-element-property :value clock)) "[2012-01-01 sun. 00:01]")) (should-not (org-element-property :duration clock))) + ;; clock string should not be case-sensitive. + (let ((clock (org-test-with-temp-text "Clock: [2012-01-01 sun. 00:01]" + (org-element-at-point)))) + (should (eq (org-element-property :status clock) 'running)) + (should + (equal (org-element-property :raw-value + (org-element-property :value clock)) + "[2012-01-01 sun. 00:01]")) + (should-not (org-element-property :duration clock))) ;; Closed clock. (let ((clock (org-test-with-temp-text