bug-gnu-emacs
[Top][All Lists]
Advanced

[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))
> 
> 
> 
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]