Function: org-bbdb-make-anniv-hash

org-bbdb-make-anniv-hash is a byte-compiled function defined in ol-bbdb.el.gz.

Signature

(org-bbdb-make-anniv-hash)

Documentation

Create a hash with anniversaries extracted from BBDB, for fast access.

The anniversaries are assumed to be stored org-bbdb-anniversary-field.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ol-bbdb.el.gz
(defun org-bbdb-make-anniv-hash ()
  "Create a hash with anniversaries extracted from BBDB, for fast access.
The anniversaries are assumed to be stored `org-bbdb-anniversary-field'."
  (let ((old-bbdb (fboundp 'bbdb-record-getprop))
	(record-func (if (fboundp 'bbdb-record-xfield)
			 'bbdb-record-xfield
		       'bbdb-record-note))
	split tmp annivs)
    (clrhash org-bbdb-anniv-hash)
    (dolist (rec (bbdb-records))
      (when (setq annivs (if old-bbdb
			     (bbdb-record-getprop
			      rec org-bbdb-anniversary-field)
			   (funcall record-func
				    rec org-bbdb-anniversary-field)))
        (setq annivs (if old-bbdb
			 (bbdb-split annivs "\n")
		       ;; parameter order is reversed in new bbdb
		       (bbdb-split "\n" annivs)))
        (while annivs
          (setq split (org-bbdb-anniv-split (pop annivs)))
	  (pcase-let ((`(,m ,d ,y) (funcall org-bbdb-extract-date-fun
					    (car split))))
	    (setq tmp (gethash (list m d) org-bbdb-anniv-hash))
            (puthash (list m d) (cons (list y
                                            (bbdb-record-name rec)
                                            (cadr split))
                                      tmp)
                     org-bbdb-anniv-hash))))))
  (setq org-bbdb-updated-p nil))