Make `org-make-tags-matcher' lexical binding friendly

* lisp/org.el (org-make-tags-matcher): Return a function instead of
  a sexp.  Refactor code.
(org--matcher-tags-todo-only): New variable.  Replace `todo-only'
dynamic binding.
(org-scan-tags): Apply changes to `org-make-tags-matcher'.
(org-match-sparse-tree):
(org-map-entries): Use new variable.

* lisp/org-crypt.el (org-encrypt-entries):
(org-decrypt-entries): Use new variable.

* lisp/org-clock.el (org-clock-get-table-data): Apply changes to
  `org-make-tags-matcher'.

* lisp/org-agenda.el (org-tags-view): Use new variable.
This commit is contained in:
Nicolas Goaziou 2016-01-09 20:24:21 +01:00
parent 2ec03e18b8
commit 60339bd55f

View file

@ -252,9 +252,8 @@ to dead or no buffer."
(defun org-contacts-db ()
"Return the latest Org Contacts Database."
(let* (todo-only
(contacts-matcher
(cdr (org-make-tags-matcher org-contacts-matcher)))
(let* ((org--matcher-tags-todo-only nil)
(contacts-matcher (cdr (org-make-tags-matcher org-contacts-matcher)))
result)
(when (org-contacts-db-need-update-p)
(let ((progress-reporter
@ -288,10 +287,9 @@ to dead or no buffer."
(error "File %s is not in `org-mode'" file))
(setf result
(append result
(org-scan-tags
'org-contacts-at-point
(org-scan-tags 'org-contacts-at-point
contacts-matcher
todo-only)))))
org--matcher-tags-todo-only)))))
(progress-reporter-update progress-reporter (setq i (1+ i))))
(setf org-contacts-db result
org-contacts-last-update (current-time))