>>>>> "BAW" == Barry A Warsaw <[EMAIL PROTECTED]> writes:

>>>>> "VK" == Vivek Khera <[EMAIL PROTECTED]> writes:

VK> I just set up my mail program (VM under XEmacs) to auto-delete
VK> messages with identical Message-ID headers.  It solves this
VK> problem quite nicely, and at much less cost than the bandwidth
VK> wasted on this whole discussion ;-)

BAW> Please post the code! :)

;;; purge duplicated messages (From Noah Friedman off Usenet)
(add-hook 'vm-arrived-messages-hook 'vma-kill-duplicate-messages-by-message-id)

(defun vma-kill-duplicate-messages-by-message-id (&optional mp)
  "Mark as deleted any message with a duplicate message ID.
Any undeleted message which has a Message ID indentical to that of another
undeleted message in the same folder, is marked for deletion."
  (interactive)
  (vm-select-folder-buffer)
  (vm-check-for-killed-summary)
  (vm-error-if-folder-read-only)
  (vm-error-if-folder-empty)
  (let ((htbl (make-vector 103 0))
        (n 0)
        (case-fold-search t)
        mid)
    (unless mp
      (setq mp vm-message-list))
    (while mp
      (cond ((vm-deleted-flag (car mp)))
            (t
             (setq mid (vm-su-message-id (car mp)))
             (or mid (debug (car mp)))
             (when (intern-soft mid htbl)
               (vm-set-deleted-flag (car mp) t)
               (setq n (1+ n)))
             (intern mid htbl)))
      (setq mp (cdr mp)))
    (and (interactive-p)
         (message "%d duplicate%s marked deleted" n (if (= n 1) "" "s")))
    (vm-update-summary-and-mode-line)
    (when vm-move-after-killing
      (let ((vm-circular-folders (and vm-circular-folders
                                      (eq vm-move-after-killing t))))
        (vm-next-message 1 t executing-kbd-macro)))
    n))

Reply via email to