- (cond ((symbolp variable) (let ((newvar (cdr (assq variable
- gnus-window-to-buffer))))
- (cond ((symbolp newvar)
- (symbol-value newvar))
- ((stringp newvar) newvar))))
- ((stringp variable) variable)))
+ (let ((buf (get-buffer-create (gnus-window-to-buffer-helper
+ (cdr
+ (assq variable gnus-window-to-buffer))))))
+ (and buf
+ (buffer-name buf))))
+
+(defun gnus-picons-buffer-name ()
+ (cond ((or (stringp gnus-picons-display-where)
+ (bufferp gnus-picons-display-where))
+ gnus-picons-display-where)
+ ((eq gnus-picons-display-where 'picons)
+ (if gnus-single-article-buffer
+ "*Picons*"
+ (concat "*Picons " gnus-newsgroup-name "*")))
+ (t
+ (gnus-get-buffer-name gnus-picons-display-where))))
+
+(defun gnus-picons-kill-buffer ()
+ (let ((buf (get-buffer (gnus-picons-buffer-name))))
+ (if (buffer-live-p buf)
+ (kill-buffer buf))))
+
+(defun gnus-picons-setup-buffer ()
+ (let ((name (gnus-picons-buffer-name)))
+ (save-excursion
+ (if (get-buffer name)
+ (set-buffer name)
+ (set-buffer (get-buffer-create name))
+ (buffer-disable-undo)
+ (setq buffer-read-only t)
+ (gnus-add-current-to-buffer-list)
+ (add-hook 'gnus-summary-prepare-exit-hook 'gnus-picons-kill-buffer))
+ (current-buffer))))