Fix: (org-agenda-ng) Handle just query as arguments

This commit is contained in:
Adam Porter 2018-08-19 13:39:19 -05:00
parent d73175714c
commit 2001c88ed5

View file

@ -68,16 +68,24 @@ When nil, buffers are widened before being searched."
(let ((files '(org-agenda-files))
pred sort narrow)
;; Parse args manually (so we can leave FILES nil for a default argument).
;; TODO: DRY this and org-ql, I think.
(pcase args
(`(,arg-files ,arg-pred . ,(and rest (guard (keywordp (car rest)))))
;; Files, query, and keyword args (FIXME: Can I combine this and the next one? Does it
;; matter if rest is nil or starts with a keyword?)
(setq files arg-files
pred arg-pred)
(set-keyword-args rest))
(`(,arg-pred . ,(and rest (guard (keywordp (car rest)))))
;; Query and keyword args, no files
(setq pred arg-pred)
(set-keyword-args rest)))
(set-keyword-args rest))
(`(,arg-pred)
;; Only query
(setq pred arg-pred)))
;; Call --agenda
`(org-agenda-ng--agenda ,files
;; TODO: Probably better to just use eval on org-ql rather than reimplementing parts of it here.
(byte-compile (lambda ()
(cl-symbol-macrolet ((= #'=) (< #'<) (> #'>) (<= #'<=) (>= #'>=))
,pred)))