Commit 72f69d0f authored by Karl Heuer's avatar Karl Heuer
Browse files

(rmail-toggle-header): Preserve point

and window-start (more or less) when reverting to original header.
parent 8a8147d6
......@@ -1780,36 +1780,42 @@ Otherwise, delete all header fields whose names match `rmail-ignored-headers'."
With argument ARG, show the message header pruned if ARG is greater than zero;
otherwise, show it in full."
(interactive "P")
(let* ((buffer-read-only nil)
(pruned (rmail-msg-is-pruned))
(prune (if arg
(> (prefix-numeric-value arg) 0)
(not pruned))))
(if (eq pruned prune)
t
(rmail-maybe-set-message-counters)
(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")
(forward-line -1)
(let ((temp (point)))
(and (search-forward "\n\n" nil t)
(delete-region temp (point))))
(goto-char (point-min))
(search-forward "\n*** EOOH ***\n")
(narrow-to-region (point) (point-max)))
(rmail-reformat-message (point-min) (point-max)))
(rmail-highlight-headers))))
(save-excursion
(let* ((buffer-read-only nil)
(pruned (rmail-msg-is-pruned))
(prune (if arg
(> (prefix-numeric-value arg) 0)
(not pruned))))
(if (eq pruned prune)
t
(rmail-maybe-set-message-counters)
(narrow-to-region (rmail-msgbeg rmail-current-message) (point-max))
(if pruned
(let (window-at-top)
(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")
(forward-line -1)
(let ((temp (point)))
(when (search-forward "\n\n" nil t)
(if (< (window-start) (point))
(setq window-at-top t))
(delete-region temp (point))))
(goto-char (point-min))
(search-forward "\n*** EOOH ***\n")
(if window-at-top
(set-window-start (selected-window) (point) t))
(narrow-to-region (point) (point-max)))
(rmail-reformat-message (point-min) (point-max)))
(rmail-highlight-headers)))))
;;;; *** Rmail Attributes and Keywords ***
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment