org-contacts.el: Check if the database need a refresh in a dedicated function

* contrib/lisp/org-contacts.el (org-contacts-db-need-update?): New
  function to determine whether we need to refresh `org-contacts-db'.

(org-contacts-db): Use `org-contacts-db-need-updated?'.
This commit is contained in:
Grégoire Jadi 2013-02-25 16:06:01 +01:00
parent e516efacb6
commit a9b2eef66f

View file

@ -149,19 +149,21 @@ This overrides `org-email-link-description-format' if set."
"Return list of Org files to use for contact management." "Return list of Org files to use for contact management."
(or org-contacts-files (org-agenda-files t 'ifmode))) (or org-contacts-files (org-agenda-files t 'ifmode)))
(defun org-contacts-db-need-update? ()
"Determine whether `org-contacts-db' needs to be refreshed."
(or (null org-contacts-last-update)
(some (lambda (file)
(or (time-less-p org-contacts-last-update
(elt (file-attributes file) 5))))
(org-contacts-files))))
(defun org-contacts-db () (defun org-contacts-db ()
"Return the latest Org Contacts Database" "Return the latest Org Contacts Database"
(let* (todo-only (let* (todo-only
(contacts-matcher (contacts-matcher
(cdr (org-make-tags-matcher org-contacts-matcher))) (cdr (org-make-tags-matcher org-contacts-matcher)))
(need-update?
(or (null org-contacts-last-update)
(some (lambda (file)
(time-less-p org-contacts-last-update
(elt (file-attributes file) 5)))
(org-contacts-files))))
markers result) markers result)
(when need-update? (when (org-contacts-db-need-update?)
(message "Update Org Contacts Database") (message "Update Org Contacts Database")
(dolist (file (org-contacts-files)) (dolist (file (org-contacts-files))
(org-check-agenda-file file) (org-check-agenda-file file)