2002-01-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
+ * gnus-msg.el (gnus-summary-send-map): Fix binding for very-wide.
+
+2002-01-03 Reiner Steib <reiner.steib@gmx.de>
+
+ * gnus-sum.el (gnus-summary-make-menu-bar): Menu bar entries for
+ very wide reply.
+
+2002-01-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-picon.el (gnus-picon-transform-address): Cache stuff.
+ (gnus-picon-cache): New variable.
+ (gnus-picon-transform-newsgroups): Cache stuff.
+
* gnus-art.el (gnus-article-reply-with-original): New command.
(gnus-article-followup-with-original): New command.
(defvar gnus-picon-glyph-alist nil
"Picon glyphs cache.
List of pairs (KEY . GLYPH) where KEY is either a filename or an URL.")
+(defvar gnus-picon-cache nil)
;;; Functions:
(gnus-with-article-headers
(let ((addresses
(mail-header-parse-addresses (mail-fetch-field header)))
- spec file point)
+ spec file point cache)
(dolist (address addresses)
(setq address (car address))
(when (and (stringp address)
(setq spec (gnus-picon-split-address address)))
- (when (setq file (or (gnus-picon-find-face
- address gnus-picon-user-directories)
- (gnus-picon-find-face
+ (if (setq cache (cdr (assoc address gnus-picon-cache)))
+ (setq spec cache)
+ (when (setq file (or (gnus-picon-find-face
+ address gnus-picon-user-directories)
+ (gnus-picon-find-face
+ (concat "unknown@"
+ (mapconcat
+ 'identity (cdr spec) "."))
+ gnus-picon-user-directories)))
+ (setcar spec (cons (gnus-picon-create-glyph file)
+ (car spec))))
+
+ (dotimes (i (1- (length spec)))
+ (when (setq file (gnus-picon-find-face
(concat "unknown@"
(mapconcat
- 'identity (cdr spec) "."))
- gnus-picon-user-directories)))
- (setcar spec (cons (gnus-picon-create-glyph file)
- (car spec))))
-
- (dotimes (i (1- (length spec)))
- (when (setq file (gnus-picon-find-face
- (concat "unknown@"
- (mapconcat
- 'identity (nthcdr (1+ i) spec) "."))
- gnus-picon-domain-directories t))
- (setcar (nthcdr (1+ i) spec)
- (cons (gnus-picon-create-glyph file)
- (nth (1+ i) spec)))))
+ 'identity (nthcdr (1+ i) spec) "."))
+ gnus-picon-domain-directories t))
+ (setcar (nthcdr (1+ i) spec)
+ (cons (gnus-picon-create-glyph file)
+ (nth (1+ i) spec)))))
+ (setq spec (nreverse spec))
+ (push (cons address spec) gnus-picon-cache))
(gnus-article-goto-header header)
(mail-header-narrow-to-field)
(when (search-forward address nil t)
(delete-region (match-beginning 0) (match-end 0))
- (setq spec (nreverse spec))
(setq point (point))
(while spec
(goto-char point)
(let ((groups (message-tokenize-header (mail-fetch-field header)))
spec file point)
(dolist (group groups)
- (setq spec (nreverse (split-string group "[.]")))
- (dotimes (i (length spec))
- (when (setq file (gnus-picon-find-face
- (concat "unknown@"
- (mapconcat
- 'identity (nthcdr i spec) "."))
- gnus-picon-news-directories t))
- (setcar (nthcdr i spec)
- (cons (gnus-picon-create-glyph file)
- (nth i spec)))))
+ (unless (setq spec (cdr (assoc group gnus-picon-cache)))
+ (setq spec (nreverse (split-string group "[.]")))
+ (dotimes (i (length spec))
+ (when (setq file (gnus-picon-find-face
+ (concat "unknown@"
+ (mapconcat
+ 'identity (nthcdr i spec) "."))
+ gnus-picon-news-directories t))
+ (setcar (nthcdr i spec)
+ (cons (gnus-picon-create-glyph file)
+ (nth i spec)))))
+ (push (cons group spec) gnus-picon-cache))
(when (search-forward group nil t)
(delete-region (match-beginning 0) (match-end 0))
(save-restriction
["Wide reply and yank" gnus-summary-wide-reply-with-original
,@(if (featurep 'xemacs) '(t)
'(:help "Mail a reply, quoting this article"))]
+ ["Very wide reply" gnus-summary-very-wide-reply t]
+ ["Very wide reply and yank" gnus-summary-very-wide-reply-with-original
+ ,@(if (featurep 'xemacs) '(t)
+ '(:help "Mail a very wide reply, quoting this article"))]
["Mail forward" gnus-summary-mail-forward t]
["Post forward" gnus-summary-post-forward t]
["Digest and mail" gnus-uu-digest-mail-forward t]
(let (force raw current-handles)
(cond
((null arg))
- ((eq arg 1) (setq raw t))
- ((eq arg 2) (setq raw t
- force t))
- ((eq arg 3) (setq current-handles
- (and (gnus-buffer-live-p gnus-article-buffer)
- (with-current-buffer gnus-article-buffer
- (prog1
- gnus-article-mime-handles
- (setq gnus-article-mime-handles nil))))))
- (t (setq force t)))
- (if (and raw (not force) (equal gnus-newsgroup-name "nndraft:drafts"))
- (error "Can't edit the raw article in group nndraft:drafts"))
+ ((eq arg 1)
+ (setq raw t))
+ ((eq arg 2)
+ (setq raw t
+ force t))
+ ((eq arg 3)
+ (setq current-handles
+ (and (gnus-buffer-live-p gnus-article-buffer)
+ (with-current-buffer gnus-article-buffer
+ (prog1
+ gnus-article-mime-handles
+ (setq gnus-article-mime-handles nil))))))
+ (t
+ (setq force t)))
+ (when (and raw (not force) (equal gnus-newsgroup-name "nndraft:drafts"))
+ (error "Can't edit the raw article in group nndraft:drafts"))
(save-excursion
(set-buffer gnus-summary-buffer)
(let ((mail-parse-charset gnus-newsgroup-charset)