(gnus-picon-split-address): New function.
authorShengHuo ZHU <zsh@cs.rochester.edu>
Sun, 30 Dec 2001 19:44:02 +0000 (19:44 +0000)
committerShengHuo ZHU <zsh@cs.rochester.edu>
Sun, 30 Dec 2001 19:44:02 +0000 (19:44 +0000)
(gnus-picon-find-face): Use it.
(gnus-picon-transform-address): Use it. Set first to t for each
address.

lisp/ChangeLog
lisp/gnus-picon.el

index a6643f7..ba85b1f 100644 (file)
@@ -3,6 +3,10 @@
        * ietf-drums.el (ietf-drums-parse-addresses): Recover from errors.
 
        * gnus-picon.el (gnus-picon-transform-address): Skip bad addresses.
        * 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.
 
        * gnus-art.el (gnus-with-article-headers): Move to here. Define
        the macro then use it.
index 04f3761..759b148 100644 (file)
@@ -102,9 +102,15 @@ List of pairs (KEY . GLYPH) where KEY is either a filename or an URL.")
 
 ;;; Functions:
 
 
 ;;; 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)
 (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)
         (user (pop address))
         database directory found instance base)
     (while (and (not found)
@@ -156,12 +162,12 @@ GLYPH can be either a glyph or a string."
   (gnus-with-article-headers
     (let ((addresses
           (mail-header-parse-addresses (mail-fetch-field header)))
   (gnus-with-article-headers
     (let ((addresses
           (mail-header-parse-addresses (mail-fetch-field header)))
-         (first t)
-         spec file)
+         first spec file)
       (dolist (address addresses)
       (dolist (address addresses)
-       (setq address (car address))
+       (setq address (car address)
+             first t)
        (when (stringp address)
        (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)))
          (when (setq file (gnus-picon-find-face
                            address gnus-picon-user-directories))
            (setcar spec (gnus-picon-create-glyph file)))