summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Wahl <marcowahlsoft@gmail.com>2018-06-06 15:41:50 +0200
committerMarco Wahl <marcowahlsoft@gmail.com>2018-06-06 15:58:20 +0200
commit2b76aebfc638b430e769d6250f9e15f20e2e5694 (patch)
tree2cb6b2f2dccf8ea88efd3b42a0694cf5dffae89b
parent8fbdf0ce1a84d6c66688530e05ab1fe2047c5e42 (diff)
downloadorg-mode-2b76aebfc638b430e769d6250f9e15f20e2e5694.tar.gz
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.
-rw-r--r--lisp/org-element.el4
-rw-r--r--testing/lisp/test-org-element.el11
2 files changed, 13 insertions, 2 deletions
diff --git a/lisp/org-element.el b/lisp/org-element.el
index d9c6522..f4452ea 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 5dc455d..2425586 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.