Function: gnus-registry-import-eld
gnus-registry-import-eld is an interactive and byte-compiled function
defined in gnus-registry.el.gz.
Signature
(gnus-registry-import-eld FILE)
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-registry.el.gz
(defun gnus-registry-import-eld (file)
(interactive "fOld registry file to import? ")
;; example content:
;; (setq gnus-registry-alist '(
;; ("<messageID>" ((marks nil)
;; (mtime 19365 1776 440496)
;; (sender . "root (Cron Daemon)")
;; (subject . "Cron"))
;; "cron" "nnml+private:cron")
(load file t)
(when (boundp 'gnus-registry-alist)
(let* ((old (symbol-value 'gnus-registry-alist))
(count 0)
(expected (length old))
entry)
(while (car-safe old)
(incf count)
;; todo: use progress reporters.
(when (and (< 0 expected)
(= 0 (mod count 100)))
(message "importing: %d of %d (%.2f%%)"
count expected (/ (* 100.0 count) expected)))
(setq entry (car-safe old)
old (cdr-safe old))
(let* ((id (car-safe entry))
(rest (cdr-safe entry))
(groups (cl-loop for p in rest
when (stringp p)
collect p))
extra-cell key val)
;; remove all the strings from the entry
(dolist (elem rest)
(if (stringp elem) (setq rest (delq elem rest))))
(gnus-registry-set-id-key id 'group groups)
;; just use the first extra element
(setq rest (car-safe rest))
(while (car-safe rest)
(setq extra-cell (car-safe rest)
key (car-safe extra-cell)
val (cdr-safe extra-cell)
rest (cdr-safe rest))
(when (and val (atom val))
(setq val (list val)))
(gnus-registry-set-id-key id key val))))
(message "Import done, collected %d entries" count))))