浏览代码

org-element: Fix parsing for headlines with only a COMMENT or QUOTE keyword

* lisp/org-element.el (org-element-headline-parser): Fix parsing for
  headlines with a single COMMENT or QUOTE keyword.
* testing/lisp/test-org-element.el: Add tests.
Nicolas Goaziou 12 年之前
父节点
当前提交
9c92312d92
共有 2 个文件被更改,包括 12 次插入2 次删除
  1. 4 2
      lisp/org-element.el
  2. 8 0
      testing/lisp/test-org-element.el

+ 4 - 2
lisp/org-element.el

@@ -704,10 +704,12 @@ Assume point is at beginning of the headline."
 	   (raw-value (or (nth 4 components) ""))
 	   (quotedp
 	    (let ((case-fold-search nil))
-	      (string-match (format "^%s +" org-quote-string) raw-value)))
+	      (string-match (format "^%s\\( \\|$\\)" org-quote-string)
+			    raw-value)))
 	   (commentedp
 	    (let ((case-fold-search nil))
-	      (string-match (format "^%s +" org-comment-string) raw-value)))
+	      (string-match (format "^%s\\( \\|$\\)" org-comment-string)
+			    raw-value)))
 	   (archivedp (member org-archive-tag tags))
 	   (footnote-section-p (and org-footnote-section
 				    (string= org-footnote-section raw-value)))

+ 8 - 0
testing/lisp/test-org-element.el

@@ -739,6 +739,10 @@ CLOCK: [2012-01-01 sun. 00:01]--[2012-01-01 sun. 00:02] =>  0:01"
   (org-test-with-temp-text "* TODO QUOTE Headline"
     (let ((org-quote-string "QUOTE")
 	  (org-todo-keywords '((sequence "TODO" "DONE"))))
+      (should (org-element-property :quotedp (org-element-at-point)))))
+  ;; With the keyword only.
+  (org-test-with-temp-text "* QUOTE"
+    (let ((org-quote-string "QUOTE"))
       (should (org-element-property :quotedp (org-element-at-point))))))
 
 (ert-deftest test-org-element/headline-comment-keyword ()
@@ -761,6 +765,10 @@ CLOCK: [2012-01-01 sun. 00:01]--[2012-01-01 sun. 00:02] =>  0:01"
   (org-test-with-temp-text "* TODO COMMENT Headline"
     (let ((org-comment-string "COMMENT")
 	  (org-todo-keywords '((sequence "TODO" "DONE"))))
+      (should (org-element-property :commentedp (org-element-at-point)))))
+  ;; With the keyword only.
+  (org-test-with-temp-text "* COMMENT"
+    (let ((org-comment-string "COMMENT"))
       (should (org-element-property :commentedp (org-element-at-point))))))
 
 (ert-deftest test-org-element/headline-archive-tag ()