On Wednesday, May 21, 2008 7:00 AM -0400 Charles Marcus <[EMAIL PROTECTED]> wrote:

On 5/20/2008 9:53 PM, Kenneth Porter wrote:
It might be nice to have a mode that disallows deletion of *non-empty*
folders. In order for a user to delete the folder, the folder must first
be emptied and purged.

Alas, deleting messages can be undone, but folders can't be, and the UI
of a client doesn't necessarily make this obvious.

Actually, a properly configured client will simply move the folder to the
Trash - where the user can recover it if it was a mistake, unless/until
the trash is empty.

This depends on the storage type. mbox can't hold a folder in a folder, so where do you put a deleted folder if Trash is an mbox?

I looked at the 1.0.13 source and found that deleting a non-empty mbox folder-to-hold-folders will fail (see mbox_mailbox_delete() in mbox-storage.c), but a non-empty folder-to-hold-messages will succeed.

I think adding this to cmd-delete.c after the client workaround part should prevent this. The message is taken from mbox_mailbox_delete but without the folder name.

struct mailbox_status status;
if (mailbox_get_status(mailbox, 0, &status) < 0) {
       return FALSE;
}
if (status.messages > 0)
{
       client_send_tagline(cmd, "NO Folder isn't empty, can't delete it.");
       return TRUE;
}


Reply via email to