Fix: Catch errors in preamble evaluation

This commit is contained in:
Caleb Chase 2022-06-23 16:43:45 -05:00
parent 83cc00a27d
commit 62f4e0b110

View file

@ -1066,15 +1066,19 @@ defined in `org-ql-predicates' by calling `org-ql-defpred'."
(or (when org-ql-preamble (or (when org-ql-preamble
;; Only one preamble is allowed ;; Only one preamble is allowed
element) element)
(pcase element (condition-case err
(`(or _) element) (pcase element
(`(or _) element)
,@preamble-patterns ,@preamble-patterns
(`(and . ,rest) (`(and . ,rest)
(let ((clauses (mapcar #'rec rest))) (let ((clauses (mapcar #'rec rest)))
`(and ,@(-non-nil clauses)))) `(and ,@(-non-nil clauses))))
(_ element))))) (_ element))
(error
(message "Preamble error: %s" err)
nil)))))
(setq query (pcase (mapcar #'rec (list query)) (setq query (pcase (mapcar #'rec (list query))
((or `(nil) ((or `(nil)
`((nil)) `((nil))