From 03745338277e450e5989a29850114c735b19cf7a Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Wed, 15 Oct 2014 10:49:40 +0200 Subject: [PATCH] Fix multiple TODO keywords * lisp/org.el (org--setup-collect-keywords): Correctly collect multiple TODO lines. * testing/lisp/test-org.el (test-org/set-regexps-and-options): Add test. Thanks to Eric Abrahamsen for reporting it. --- lisp/org.el | 4 ++-- testing/lisp/test-org.el | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index c940b2ad3..13c3b5b64 100755 --- a/lisp/org.el +++ b/lisp/org.el @@ -5170,10 +5170,10 @@ Return value contains the following keys: `archive', `category', (org-split-string value))) (push (cons 'tags (org-split-string value)) alist)))) ((member key '("TODO" "SEQ_TODO" "TYP_TODO")) - (let ((todo (cdr (assq 'todo alist))) + (let ((todo (assq 'todo alist)) (value (cons (if (equal key "TYP_TODO") 'type 'sequence) (org-split-string value)))) - (if todo (push value todo) + (if todo (push value (cdr todo)) (push (list 'todo value) alist)))) ((equal key "SETUPFILE") (unless buffer-read-only ; Do not check in Gnus messages. diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el index 7a49510ee..3970fb1b5 100644 --- a/testing/lisp/test-org.el +++ b/testing/lisp/test-org.el @@ -1081,6 +1081,11 @@ (org-mode-restart) (list org-not-done-keywords org-done-keywords)))) (should + (equal '(("A" "C") ("B" "D")) + (org-test-with-temp-text "#+TODO: A | B\n#+TODO: C | D" + (org-mode-restart) + (list org-not-done-keywords org-done-keywords)))) + (should (equal '(("A" "B") ("C")) (org-test-with-temp-text "#+TYP_TODO: A B | C" (org-mode-restart) -- 2.11.4.GIT