Fix false positives in TODO keywords

* lisp/org.el (org-entry-properties): Make sure case is meaningful when
  matching a TODO keyword.
* testing/lisp/test-org.el (test-org/entry-properties): Add test.

Reported-by: Samuel Wales <samologist@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/99756>
This commit is contained in:
Nicolas Goaziou 2015-08-09 23:56:57 +02:00
parent 46f3f4c626
commit c9ac8f6956
2 changed files with 7 additions and 3 deletions

View File

@ -15699,8 +15699,9 @@ strings."
props))
(when specific (throw 'exit props)))
(when (or (not specific) (string= specific "TODO"))
(when (and (looking-at org-todo-line-regexp) (match-end 2))
(push (cons "TODO" (org-match-string-no-properties 2)) props))
(let ((case-fold-search nil))
(when (and (looking-at org-todo-line-regexp) (match-end 2))
(push (cons "TODO" (org-match-string-no-properties 2)) props)))
(when specific (throw 'exit props)))
(when (or (not specific) (string= specific "PRIORITY"))
(when (looking-at org-priority-regexp)

View File

@ -3320,7 +3320,7 @@ Paragraph<point>"
(equal "* H"
(org-test-with-temp-text "* TODO H"
(cdr (assoc "ITEM" (org-entry-properties))))))
;; Get "TODO" property.
;; Get "TODO" property. TODO keywords are case sensitive.
(should
(equal "TODO"
(org-test-with-temp-text "* TODO H"
@ -3332,6 +3332,9 @@ Paragraph<point>"
(should-not
(org-test-with-temp-text "* H"
(assoc "TODO" (org-entry-properties nil "TODO"))))
(should-not
(org-test-with-temp-text "* todo H"
(assoc "TODO" (org-entry-properties nil "TODO"))))
;; Get "PRIORITY" property.
(should
(equal "A"