Selaa lähdekoodia

Fix 37bf05

* lisp/org.el (org-re-property): Fix regexp.  Improve docstring.
* testing/lisp/test-org-element.el (test-org-element/node-property):
  Update test.

Thanks to Daimrod for reporting it.
http://permalink.gmane.org/gmane.emacs.orgmode/90383
Nicolas Goaziou 10 vuotta sitten
vanhempi
commit
2de0c1c3da
2 muutettua tiedostoa jossa 16 lisäystä ja 8 poistoa
  1. 15 7
      lisp/org.el
  2. 1 1
      testing/lisp/test-org-element.el

+ 15 - 7
lisp/org.el

@@ -6152,13 +6152,21 @@ Use `org-reduced-level' to remove the effect of `org-odd-levels'."
 (defvar org-font-lock-keywords nil)
 
 (defsubst org-re-property (property &optional literal allow-null)
-   "Return a regexp matching a PROPERTY line.
- Match group 3 will be set to the value if it exists."
-   (concat "^\\(?4:[ \t]*\\)\\(?1::\\(?2:"
- 	  (if literal property (regexp-quote property))
-	  "\\):\\)\\(?:[ \t]+\\(?3:[^ \t\r\n].*?\\)\\)"
-	  (and allow-null "?")
-	  "\\(?5:[ \t]*\\)$"))
+  "Return a regexp matching a PROPERTY line.
+
+When optional argument LITERAL is non-nil, do not quote PROPERTY.
+This is useful when PROPERTY is a regexp.  When ALLOW-NULL is
+non-nil, match properties even without a value.
+
+Match group 3 is set to the value when it exists.  If there is no
+value and ALLOW-NULL is non-nil, it is set to the empty string."
+  (concat
+   "^\\(?4:[ \t]*\\)"
+   (format "\\(?1::\\(?2:%s\\):\\)"
+	   (if literal property (regexp-quote property)))
+   (if allow-null
+       "\\(?:\\(?3:$\\)\\|[ \t]+\\(?3:.*?\\)\\)\\(?5:[ \t]*\\)$"
+     "[ \t]+\\(?3:[^ \r\t\n]+.*?\\)\\(?5:[ \t]*\\)$")))
 
 (defconst org-property-re
   (org-re-property ".*?" 'literal t)

+ 1 - 1
testing/lisp/test-org-element.el

@@ -1495,7 +1495,7 @@ e^{i\\pi}+1=0
 	 (org-element-type (org-element-at-point)))))
   ;; Accept empty properties.
   (should
-   (equal '(("foo" "value") ("bar" nil))
+   (equal '(("foo" "value") ("bar" ""))
 	  (org-test-with-temp-text ":PROPERTIES:\n:foo: value\n:bar:\n:END:"
 	    (org-element-map (org-element-parse-buffer) 'node-property
 	      (lambda (p)