+ (make-local-variable 'kill-buffer-hook)
+ (add-hook 'kill-buffer-hook
+ (lambda ()
+ (when (get-buffer-window
+ wl-draft-preview-attributes-buffer-name)
+ (select-window (get-buffer-window
+ wl-draft-preview-attributes-buffer-name))
+ (delete-window))
+ (when (get-buffer wl-draft-preview-attributes-buffer-name)
+ (kill-buffer (get-buffer
+ wl-draft-preview-attributes-buffer-name)))))
+ (if (not wl-draft-preview-attributes)
+ (message (concat "Recipients: "
+ (cdr (assq 'recipients attribute-list))))
+ (ignore-errors ; in case when the window is too small
+ (let* ((cur-win (selected-window))
+ (size (min
+ (- (window-height cur-win)
+ window-min-height 1)
+ (- (window-height cur-win)
+ (max
+ window-min-height
+ (1+ wl-draft-preview-attributes-buffer-lines))))))
+ (split-window cur-win (if (> size 0) size window-min-height))
+ (select-window (next-window))
+ (let ((pop-up-windows nil))
+ (switch-to-buffer (get-buffer-create
+ wl-draft-preview-attributes-buffer-name)))
+ (with-current-buffer
+ (get-buffer wl-draft-preview-attributes-buffer-name)
+ (setq buffer-read-only t)
+ (let (buffer-read-only)
+ (erase-buffer)
+ (dolist (pair attribute-list)
+ (insert (capitalize (symbol-name (car pair))) ": "
+ (format "%s" (or (cdr pair) ""))
+ "\n"))
+ (goto-char (point-min))
+ (wl-highlight-headers)))
+ (select-window cur-win))))))