* ietf-drums.el (ietf-drums-parse-addresses): Recover from errors.
* gnus-picon.el (gnus-picon-transform-address): Skip bad addresses.
+ (gnus-picon-split-address): New function.
+ (gnus-picon-find-face): Use it.
+ (gnus-picon-transform-address): Use it. Set first to t for each
+ address.
* gnus-art.el (gnus-with-article-headers): Move to here. Define
the macro then use it.
;;; Functions:
+(defsubst gnus-picon-split-address (address)
+ (setq address (split-string address "@"))
+ (if (cdr address)
+ (cons (car address) (split-string (nth 1 address) "\\."))
+ (split-string (car address) "\\.")))
+
(defun gnus-picon-find-face (address directories &optional exact)
(let* ((databases gnus-picon-databases)
- (address (split-string address "[.@]"))
+ (address (gnus-picon-split-address address))
(user (pop address))
database directory found instance base)
(while (and (not found)
(gnus-with-article-headers
(let ((addresses
(mail-header-parse-addresses (mail-fetch-field header)))
- (first t)
- spec file)
+ first spec file)
(dolist (address addresses)
- (setq address (car address))
+ (setq address (car address)
+ first t)
(when (stringp address)
- (setq spec (split-string address "[.@]"))
+ (setq spec (gnus-picon-split-address address))
(when (setq file (gnus-picon-find-face
address gnus-picon-user-directories))
(setcar spec (gnus-picon-create-glyph file)))