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.
This commit is contained in:
Marco Wahl 2018-06-06 15:41:50 +02:00
parent 8fbdf0ce1a
commit 2b76aebfc6
2 changed files with 13 additions and 2 deletions

View File

@ -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]*")

View File

@ -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.