From 2b76aebfc638b430e769d6250f9e15f20e2e5694 Mon Sep 17 00:00:00 2001 From: Marco Wahl Date: Wed, 6 Jun 2018 15:41:50 +0200 Subject: [PATCH] org-element: Fix interpretation as todo kwd when prefix of headline * lisp/org-element.el (org-element-headline-parser): Check for space after todo-kwd. * testing/lisp/test-org-element.el (test-org-element/headline-todo-keyword): Respective tests. --- lisp/org-element.el | 4 ++-- testing/lisp/test-org-element.el | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lisp/org-element.el b/lisp/org-element.el index d9c6522e2..f4452ea3f 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -931,10 +931,10 @@ Assume point is at beginning of the headline." (level (prog1 (org-reduced-level (skip-chars-forward "*")) (skip-chars-forward " \t"))) (todo (and org-todo-regexp - (let (case-fold-search) (looking-at org-todo-regexp)) + (let (case-fold-search) (looking-at (concat org-todo-regexp " "))) (progn (goto-char (match-end 0)) (skip-chars-forward " \t") - (match-string 0)))) + (match-string 1)))) (todo-type (and todo (if (member todo org-done-keywords) 'done 'todo))) (priority (and (looking-at "\\[#.\\][ \t]*") diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index 5dc455d58..24255861f 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -1014,6 +1014,17 @@ Some other text ;;;; Headline +(ert-deftest test-org-element/headline-todo-keyword () + "Test todo keyword recognition." + ;; Reference test. + (org-test-with-temp-text "* TODO Headline" + (let ((org-todo-keywords '((sequence "TODO" "DONE")))) + (should (org-element-property :todo-keyword (org-element-at-point))))) + ;; Todo keyword is prefix of headlines first word. + (org-test-with-temp-text "* TODOHeadline" + (let ((org-todo-keywords '((sequence "TODO" "DONE")))) + (should-not (org-element-property :todo-keyword (org-element-at-point)))))) + (ert-deftest test-org-element/headline-comment-keyword () "Test COMMENT keyword recognition." ;; Reference test.