Handle the case when org-use-property-inheritance is a list of strings

When org-use-property-inheritance is a list, then the query

(property "FOO" "BAR")

would bail out with:

org-ql--byte-compile-warning: Invalid Org QL query: "Invalid Org QL
query: \"‘\\\"BLAH\\\"’ is a malformed function\", :warning", :error

(property "FOO") would still work though.

So, if org-use-property-inheritance is a list, cast it to
the (default) boolean value for this variable: nil.

Use 'selective' inheritance when org-use-property-inheritance is a list

This symbol is mentioned in the org-entry-get documentation.
This commit is contained in:
Bram Schoenmakers 2023-04-12 12:51:05 +02:00 committed by Adam Porter
parent 1496185141
commit f6d7514159

View file

@ -1823,14 +1823,10 @@ interpreted as nil or non-nil)."
;; otherwise would require ugly special-casing in the parsing). ;; otherwise would require ugly special-casing in the parsing).
(when (keywordp property) (when (keywordp property)
(setf property (substring (symbol-name property) 1))) (setf property (substring (symbol-name property) 1)))
`(property ,property ,value (list 'property property value
:inherit ,(if (plist-member plist :inherit) :inherit (cond ((plist-member plist :inherit) (plist-get plist :inherit))
(plist-get plist :inherit) ((listp org-use-property-inheritance) ''selective)
;; TODO: Add tests for these cases. (t org-use-property-inheritance)))))
(pcase org-use-property-inheritance
(`nil nil) (`t t)
((pred stringp) org-use-property-inheritance)
((pred listp) `(quote ,org-use-property-inheritance)))))))
;; MAYBE: Should case folding be disabled for properties? What about values? ;; MAYBE: Should case folding be disabled for properties? What about values?
;; MAYBE: Support (property) without args. ;; MAYBE: Support (property) without args.