On Wednesday, May 21, 2008 7:00 AM -0400 Charles Marcus CMarcus@Media-Brokers.com 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; }