# HG changeset patch # User Chong Yidong # Date 1233238176 0 # Node ID 13e00d6e6541dd92bf382fe9cd80bd555f349ba0 # Parent f462bd5b163738040a8b8265c9f3c5f7ed91f7e9 (rmail-toggle-header): Determine current header style using the buffer-local value of rmail-header-style in the view buffer. (rmail-show-message): Set a buffer-local value of rmail-header-style in the view buffer. diff -r f462bd5b1637 -r 13e00d6e6541 lisp/mail/rmail.el --- a/lisp/mail/rmail.el Thu Jan 29 14:09:23 2009 +0000 +++ b/lisp/mail/rmail.el Thu Jan 29 14:09:36 2009 +0000 @@ -2358,10 +2358,12 @@ otherwise, show it in full." (interactive "P") (let ((rmail-header-style - (cond - ((and (numberp arg) (> arg 0)) 'normal) - ((eq rmail-header-style 'full) 'normal) - (t 'full)))) + (if (numberp arg) + (if (> arg 0) 'normal 'full) + (with-current-buffer (if (rmail-buffers-swapped-p) + rmail-view-buffer + rmail-buffer) + (if (eq rmail-header-style 'full) 'normal 'full))))) (rmail-show-message-maybe))) (defun rmail-beginning-of-message () @@ -2475,7 +2477,8 @@ The current mail message becomes the message displayed." (let ((mbox-buf rmail-buffer) (view-buf rmail-view-buffer) - blurb beg end body-start coding-system character-coding is-text-message) + blurb beg end body-start coding-system character-coding + is-text-message header-style) (if (not msg) (setq msg rmail-current-message)) (unless (setq blurb (rmail-no-mail-p)) @@ -2489,6 +2492,7 @@ blurb "No following message")) (t (setq rmail-current-message msg))) (with-current-buffer rmail-buffer + (setq header-style rmail-header-style) ;; Mark the message as seen, bracket the message in the mail ;; buffer and determine the coding system the transfer encoding. (rmail-set-attribute rmail-unseen-attr-index nil) @@ -2510,6 +2514,11 @@ ;; unibyte temporary buffer where the character decoding takes ;; place. (with-current-buffer rmail-view-buffer + ;; We give the view buffer a buffer-local value of + ;; rmail-header-style based on the binding in effect when + ;; this function is called; `rmail-toggle-headers' can + ;; inspect this value to determine how to toggle. + (set (make-local-variable 'rmail-header-style) header-style) (erase-buffer)) (if (null character-coding) ;; Do it directly since that is fast.