Re: mutt/2226: POP sometimes tries to DELE -1
The following reply was made to PR mutt/2226; it has been noted by GNATS.
From: Rocco Rutte <pdmef@xxxxxxx>
Subject: Re: mutt/2226: POP sometimes tries to DELE -1
Date: Wed, 10 May 2006 09:58:08 +0000
* tamo@xxxxxxxxxxxxxxxxx [06-05-10 11:19:11 +0200] wrote:
>Sometimes mutt mistakingly deletes POP messages
>even though I haven't used "d" (delete) or "s" (save).
>Sometimes it even tries to delete number "-1".
>This bug appears when the POP box has around 1000 messages or more.
I sometimes saw this, too, but with far less messages.
>Unknown - I'm trying to find, though.
I wasn't successful on this either.
>At least, I suggest you use unsigned type for (*HEADER)->refno.
That would require to refactor the POP code. As I read it, refno==-1 is
used to keep track of deleted messages in pop_fetch_headers().
Before sending UIDL, all present messages get refno=-1. The fetch_uidl()
function then updates all of these with server's numbers so that
afterwards all messages should be properly renumbered. I.e. those which
still have -1 aren't present on the server any longer and get deleted
(as POP doesn't have message upload) in the current session.
Now the real problem is that they don't seem to get removed from the
current session, i.e. the tables are not updated properly.
I may be wrong, of course. But refno is required to be negative as well.