# HG changeset patch # User Richard M. Stallman # Date 897550703 0 # Node ID 98b909125b87dfe19687f83d13d4f08df581a718 # Parent e283153313b67bf7588f8132d430c5e0fd1779d3 (rmail-toggle-header): Fix previous change. diff -r e283153313b6 -r 98b909125b87 lisp/mail/rmail.el --- a/lisp/mail/rmail.el Thu Jun 11 04:33:37 1998 +0000 +++ b/lisp/mail/rmail.el Thu Jun 11 07:38:23 1998 +0000 @@ -530,9 +530,8 @@ (not enable-multibyte-characters)) (set-buffer-multibyte t)) (goto-char (point-max))) - ;; Unconditionally rescan to find all the messages. - ;; It is useful to have M-x rmail as a way to do that. - (rmail-set-message-counters) + ;; If necessary, scan to find all the messages. + (rmail-maybe-set-message-counters) (unwind-protect (unless (and (not file-name-arg) (rmail-get-new-mail)) @@ -1797,20 +1796,30 @@ (match-string 0)))) (old-screen-line (rmail-count-screen-lines (window-start) (point)))) (save-excursion - (narrow-to-region (rmail-msgbeg rmail-current-message) (point-max)) - (if pruned - (progn (goto-char (point-min)) - (forward-line 1) - (delete-char 1) - (insert ?0) - (forward-line 1) - (let ((case-fold-search t)) - (while (looking-at "Summary-Line:\\|Mail-From:") - (forward-line 1))) - (insert "*** EOOH ***\n") - (forward-char -1) - (search-forward "\n*** EOOH ***\n") - (narrow-to-region (point) (point-max))) + (narrow-to-region (rmail-msgbeg rmail-current-message) (point-max)) + (if pruned + (let (new-start) + (goto-char (point-min)) + (forward-line 1) + ;; Change 1 to 0. + (delete-char 1) + (insert ?0) + ;; Insert new EOOH line at the proper place. + (forward-line 1) + (let ((case-fold-search t)) + (while (looking-at "Summary-Line:\\|Mail-From:") + (forward-line 1))) + (insert "*** EOOH ***\n") + (setq new-start (point)) + ;; Delete the old reformatted header. + (forward-char -1) + (search-forward "\n*** EOOH ***\n") + (forward-line -1) + (let ((start (point))) + (search-forward "\n\n") + (delete-region start (point))) + ;; Narrow to after the new EOOH line. + (narrow-to-region new-start (point-max))) (rmail-reformat-message (point-min) (point-max)))) (cond (at-point-min (goto-char (point-min)))