Subject: Re: bug#28331: [gnus] Articles loose read status on expiry

From: Nikolaus Rath <[email-masked]>
Date: Sun, 29 Apr 2018 16:13:57 +0100

On Apr 11 2018, Lars Ingebrigtsen <[email-masked]> wrote:
> Nikolaus Rath <[email-masked]> writes:
>
>> When marking an article as read and for expiry, and the expiry target is
>> another group, the article ends up being unread again in the target
>> group.
>>
>> An easy fix is to take `gnus-summary-expire-articles' out of
>> `gnus-summary-prepare-exit-hook', and instead call it explicitly in
>> `gnus-summary-exit' at a later point.
>>
>> However, this results in the article not just being marked read in the
>> target group (as intended), but also still marked for expiry (not
>> good). I could not figure out how to change that.
>>
>> I've observed this with the nnimap backend.
>
> I don't use expiry targets, but this sounds like the right solution
> (only that the expiry mark should be filtered out).  Could you post the
> patch of what you have and I can take a whack at doing the filtering?

"patch" may be exaggerating it a little bit. What I used is

(remove-hook 'gnus-summary-prepare-exit-hook 'gnus-summary-expire-articles)

in my .gnus and

     ;; Remove entries for this group.
     (nnmail-purge-split-history (gnus-group-real-name group))
     ;; Make all changes in this group permanent.
     (unless quit-config
       (gnus-run-hooks 'gnus-exit-group-hook)
       (gnus-summary-update-info))
+    (gnus-summary-expire-articles)
     (gnus-close-group group)
     ;; Make sure where we were, and go to next newsgroup.
     (when (buffer-live-p (get-buffer gnus-group-buffer))
       (set-buffer gnus-group-buffer))
     (unless quit-config

in gnus-summary-exit (gnus-sum.el).

Best,
-Nikolaus

-- 
GPG Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F

             »Time flies like an arrow, fruit flies like a Banana.«