On Sat, Feb 02, 2013 at 11:44:09AM -0600, Derek Martin wrote:
First, let me say that I believe the reason you have what you have today is precisely because the mail store was never completely treated as an abstraction, and is not treated consistently regardless of the format, as it should be. Instead, the user interface and related behaviors have always implicitly acknowledged the properties of the mail store as a file or set of files, depending on what you use. This
This is nice in theory, but forces you into an abstraction which supports only the lowest common denominator that every mailbox format provides. Witness all the complains about how Mutt's IMAP support is poor because all the other mailbox formats require a complete parse of the entire mailbox before you can do anything (and to support threading, you need to download the message headers from the IMAP server, unless it supports SORT=THREADS, but oh wait, the most popular IMAP server, gmail, doesn't support that...)
Now, I will grant you, this feature is a bit schizophrenic. It also assumes that once it has done whatever it's going to do, that you no longer want the existing copy of the message, and marks it for deletion. At which point I have to go and undelete it, which I've always found annoying. Because when I use this feature, I do in fact want a separate copy of the message. Pretty much always. I suspect that it behaves this way because ME (I'm assuming) decided that the two operations, moving a message to another folder, and saving a message to a file, were functionally equivalent, and therefore elected for the economy of only implementing one. Trouble is, in neither case
It was implemented that way because save-message in ELM and MUSH behaved that way, and it was what users expected at the time.