X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fgnus-picon.el;h=856c5f39bda87f3e7f9b138b4d32a324b9433f22;hb=55f610143f1f63a6cc448649d02a51a0b99c04f1;hp=cd85fbbf51cda74ce6547843580fc72fe801c0c1;hpb=b44eabaf077673e60b8dfbfadaad18c402588241;p=gnus diff --git a/lisp/gnus-picon.el b/lisp/gnus-picon.el index cd85fbbf5..856c5f39b 100644 --- a/lisp/gnus-picon.el +++ b/lisp/gnus-picon.el @@ -1,5 +1,7 @@ ;;; gnus-picon.el --- displaying pretty icons in Gnus -;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Wes Hardaker ;; Keywords: news xpm annotation glyph faces @@ -87,17 +89,6 @@ Some people may want to add \"unknown\" to this list." :type 'regexp :group 'picons) -(defcustom gnus-picons-x-face-file-name - (format "/tmp/picon-xface.%s.xbm" (user-login-name)) - "*The name of the file in which to store the converted X-face header." - :type 'string - :group 'picons) - -(defcustom gnus-picons-convert-x-face (format "{ echo '/* Width=48, Height=48 */'; uncompface; } | icontopbm | pbmtoxbm > %s" gnus-picons-x-face-file-name) - "*Command to convert the x-face header into a xbm file." - :type 'string - :group 'picons) - (defcustom gnus-picons-display-as-address t "*If t display textual email addresses along with pictures." :type 'boolean @@ -258,48 +249,6 @@ arguments necessary for the job.") (set-extent-property annot 'duplicable t) annot)) -(defun gnus-picons-article-display-x-face () - "Display the x-face header bitmap in the 'gnus-picons-display-where buffer." - (let ((gnus-article-x-face-command 'gnus-picons-display-x-face)) - (gnus-article-display-x-face))) - -(defun gnus-picons-x-face-sentinel (process event) - (when (memq process gnus-picons-processes-alist) - (setq gnus-picons-processes-alist - (delq process gnus-picons-processes-alist)) - (gnus-picons-set-buffer) - (gnus-picons-make-annotation - (make-glyph gnus-picons-x-face-file-name) nil 'text) - (when (file-exists-p gnus-picons-x-face-file-name) - (delete-file gnus-picons-x-face-file-name)))) - -(defun gnus-picons-display-x-face (beg end) - "Function to display the x-face header in the picons window. -To use: (setq gnus-article-x-face-command 'gnus-picons-display-x-face)" - (interactive) - (if (featurep 'xface) - ;; Use builtin support - (save-excursion - ;; Don't remove this binding, it is really needed: when - ;; `gnus-picons-set-buffer' changes buffer (like when it is - ;; set to display picons outside of the article buffer), BEG - ;; and END still refer the buffer current now ! - (let ((buf (current-buffer))) - (gnus-picons-set-buffer) - (gnus-picons-make-annotation - (vector 'xface - :data (concat "X-Face: " (buffer-substring beg end buf))) - nil 'text nil nil nil t))) - ;; convert the x-face header to a .xbm file - (let* ((process-connection-type nil) - (process (start-process-shell-command - "gnus-x-face" nil gnus-picons-convert-x-face))) - (push process gnus-picons-processes-alist) - (process-kill-without-query process) - (set-process-sentinel process 'gnus-picons-x-face-sentinel) - (process-send-region process beg end) - (process-send-eof process)))) - (defun gnus-article-display-picons () "Display faces for an author and her domain in gnus-picons-display-where." (interactive) @@ -374,7 +323,8 @@ To use: (setq gnus-article-x-face-command 'gnus-picons-display-x-face)" (gnus-put-text-property (match-beginning 0) (match-end 0) 'invisible t) - (article-goto-body) + (let ((article-goto-body-goes-to-point-min-p nil)) + (article-goto-body)) (unless (bobp) (backward-char 1))))) (if (null gnus-picons-piconsearch-url) @@ -574,8 +524,8 @@ none, and whose CDR is the corresponding element of DOMAINS." (defun gnus-picons-parse-value (name) (goto-char (point-min)) (if (re-search-forward (concat "" - (regexp-quote name) - " *= * *\\([^ <][^<]*\\) *") + (regexp-quote name) + " *= * *\\([^ <][^<]*\\) *") nil t) (buffer-substring (match-beginning 1) (match-end 1)))) @@ -592,9 +542,10 @@ none, and whose CDR is the corresponding element of DOMAINS." (setq start-re (concat ;; dbs - "^\\(" (mapconcat 'identity dbs "\\|") "\\)/" + "^\\(" (mapconcat 'regexp-quote dbs "\\|") "\\)/" ;; host - "\\(\\(" (replace-in-string host "\\." "/\\|" t) + "\\(\\(" (mapconcat 'regexp-quote + (message-tokenize-header host ".") "/\\|") "/\\|MISC/\\)*\\)" ;; user "\\(" (regexp-quote user) "\\|unknown\\)/" @@ -662,8 +613,9 @@ none, and whose CDR is the corresponding element of DOMAINS." ;;; search job functions (defun gnus-picons-display-bar-p () - (and (not (eq gnus-picons-display-where 'article)) - gnus-picons-display-as-address)) + (if (eq gnus-picons-display-where 'article) + gnus-picons-display-article-move-p + gnus-picons-display-as-address)) (defun gnus-picons-network-search-internal (user addrs dbs sym-ann right-p marker &optional fnames) @@ -744,8 +696,8 @@ none, and whose CDR is the corresponding element of DOMAINS." (defun gnus-picons-network-search (user addrs dbs sym-ann right-p marker) (let* ((host (mapconcat 'identity addrs ".")) (key (list (or user "unknown") host (if user - gnus-picons-user-directories - dbs))) + gnus-picons-user-directories + dbs))) (cache (assoc key gnus-picons-url-alist))) (if (null cache) (gnus-picons-url-retrieve