[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#31271: 25.2; exported deleted RMAIL emails should have theit deleted
From: |
Eli Zaretskii |
Subject: |
bug#31271: 25.2; exported deleted RMAIL emails should have theit deleted flag reset |
Date: |
Sat, 02 Jun 2018 13:08:00 +0300 |
Ping! I'd like to commit this change and close the bug, please
provide your feedback.
> Date: Sat, 19 May 2018 12:40:14 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 31271@debbugs.gnu.org
>
> > Date: Thu, 26 Apr 2018 14:27:04 +0200
> > From: Francesco Potortì <pot@gnu.org>
> >
> > In Rmail, suppose you want to archive your last received email to two
> > different mboxes. Then you 'o' to the first one, then 'o' to the second
> > one. After the first one, the email is marked as filed, deleted.
> >
> > I argue that the 'deleted' flag should be reset when archiving the email
> > to the second mbox.
>
> Does the patch below give good results? I didn't feel like changing
> the default behavior, on account of it being so old, so I added an
> option one can customize to get the new behavior.
>
> What about invoking 'o' with a prefix argument -- should it stop
> ignoring deleted messages when it looks for the N-1 additional
> messages to output to a file, when this option is set non-nil?
>
> diff --git a/lisp/mail/rmailout.el b/lisp/mail/rmailout.el
> index eee8805..6d91ac5 100644
> --- a/lisp/mail/rmailout.el
> +++ b/lisp/mail/rmailout.el
> @@ -56,6 +56,13 @@ rmail-fields-not-to-output
> regexp)
> :group 'rmail-output)
>
> +(defcustom rmail-output-reset-deleted-flag nil
> + "Non-nil means reset the \"deleted\" flag when outputting a message to a
> file."
> + :type '(choice (const :tag "Output with the \"deleted\" flag reset" t)
> + (const :tag "Output with the \"deleted\" flag intact" nil))
> + :version "27.1"
> + :group 'rmail-output)
> +
> (defun rmail-output-read-file-name ()
> "Read the file name to use for `rmail-output'.
> Set `rmail-default-file' to this name as well as returning it.
> @@ -533,8 +540,12 @@ rmail-output
> (if (zerop rmail-total-messages)
> (error "No messages to output"))
> (let ((orig-count count)
> - beg end)
> + beg end delete-attr-reset-p)
> (while (> count 0)
> + (when (and rmail-output-reset-deleted-flag
> + (rmail-message-deleted-p rmail-current-message))
> + (rmail-set-attribute rmail-deleted-attr-index nil)
> + (setq delete-attr-reset-p t))
> (setq beg (rmail-msgbeg rmail-current-message)
> end (rmail-msgend rmail-current-message))
> ;; All access to the buffer's local variables is now finished...
> @@ -549,6 +560,8 @@ rmail-output
> (if babyl-format
> (rmail-output-as-babyl file-name noattribute)
> (rmail-output-as-mbox file-name noattribute)))))
> + (if delete-attr-reset-p
> + (rmail-set-attribute rmail-deleted-attr-index t))
> (or noattribute ; mark message as "filed"
> (rmail-set-attribute rmail-filed-attr-index t))
> (setq count (1- count))
>
>
>
>
- bug#31271: 25.2; exported deleted RMAIL emails should have theit deleted flag reset,
Eli Zaretskii <=