Browse Source

Merge branch 'maint'

Conflicts:
	lisp/org.el
Nicolas Goaziou 3 years ago
parent
commit
f51a72c95c
2 changed files with 15 additions and 7 deletions
  1. 14 6
      lisp/org.el
  2. 1 1
      testing/lisp/test-org-element.el

+ 14 - 6
lisp/org.el

@@ -6257,12 +6257,20 @@ Use `org-reduced-level' to remove the effect of `org-odd-levels'."
 
 (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]*\\)$"))
+
+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

@@ -1587,7 +1587,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)