Function: mh-index-matching-source-msgs

mh-index-matching-source-msgs is a byte-compiled function defined in mh-search.el.gz.

Signature

(mh-index-matching-source-msgs MSGS &optional DELETE-FROM-INDEX-DATA)

Documentation

Return a table of original messages and folders for messages in MSGS.

If optional argument DELETE-FROM-INDEX-DATA is non-nil, then each of the messages, whose counter-part is found in some source folder, is removed from mh-index-data.

Source Code

;; Defined in /usr/src/emacs/lisp/mh-e/mh-search.el.gz
(defun mh-index-matching-source-msgs (msgs &optional delete-from-index-data)
  "Return a table of original messages and folders for messages in MSGS.
If optional argument DELETE-FROM-INDEX-DATA is non-nil, then each
of the messages, whose counter-part is found in some source
folder, is removed from `mh-index-data'."
  (let ((table (make-hash-table :test #'equal)))
    (dolist (msg msgs)
      (let* ((checksum (gethash msg mh-index-msg-checksum-map))
             (pair (gethash checksum mh-index-checksum-origin-map)))
        (when (and checksum (car pair) (cdr pair)
                   (mh-index-match-checksum (cdr pair) (car pair) checksum))
          (push (cdr pair) (gethash (car pair) table))
          (when delete-from-index-data
            (remhash (cdr pair) (gethash (car pair) mh-index-data))))))
    table))