New Rmail option 'rmail-show-message-set-modified'

* lisp/mail/rmail.el (rmail-show-message-set-modified): New
option.
(rmail-show-message-1): If 'rmail-show-message-set-modified' is
non-nil, don't reset the buffer's modified state.  (Bug#45941)

* etc/NEWS: Announce the new option.
This commit is contained in:
Eli Zaretskii 2021-01-30 11:26:07 +02:00
parent 32dc433dbb
commit bb652f68fd
2 changed files with 13 additions and 0 deletions

View file

@ -1138,6 +1138,11 @@ bindings, will be aborted, and Emacs will not ask you whether to
enlarge 'max-specpdl-size' to complete the rendering. The default is
t, which preserves the original behavior.
---
*** New user option 'rmail-show-message-set-modified'.
If set non-nil, showing an unseen message will set the Rmail buffer's
modified flag.
** Apropos
*** New commands 'apropos-next-symbol' and 'apropos-previous-symbol'.

View file

@ -2723,6 +2723,12 @@ See also `unrmail-mbox-format'."
:version "24.4"
:group 'rmail-files)
(defcustom rmail-show-message-set-modified nil
"If non-nil, displaying an unseen message marks the Rmail buffer as modified."
:type 'boolean
:group 'rmail
:version "28.1")
(defun rmail-show-message-1 (&optional msg)
"Show message MSG (default: current message) using `rmail-view-buffer'.
Return text to display in the minibuffer if MSG is out of
@ -2750,6 +2756,8 @@ The current mail message becomes the message displayed."
;; Mark the message as seen, but preserve buffer modified flag.
(let ((modiff (buffer-modified-p)))
(rmail-set-attribute rmail-unseen-attr-index nil)
(and rmail-show-message-set-modified
(setq modiff t))
(unless modiff
(restore-buffer-modified-p modiff)))
;; bracket the message in the mail