Re: [Evolution-hackers] EDS: Trying to implement expunge function in camel-spool-folder.c



On Mon, 2007-06-25 at 14:25 +0100, Seb James wrote:
> Hi Jeffrey,
> 
> On Mon, 2007-06-25 at 08:59 -0400, Jeffrey Stedfast wrote:
> > On Sun, 2007-06-24 at 23:24 +0100, Seb James wrote:
> [snip]
> > from your description, it sounds like you tried to Empty the "Local
> > Folders" Trash folder instead of the Trash folder attached to your
> > "spool".
> 
> Yes, that's what I think has happened.
> 
> > You should also note that since the Trash folder is a virtual folder,
> > unless both of the following conditions are met, you might not get an
> > expunge call on the spool folder:
> 
> Useful to know that trash is virtual. That will help me I think. I can
> look at the logic that the vTrash folder goes through to select expunges
> and syncs to call.

Ok, now that I am debugging the right code... Yes, the expunge function
registered for the Trash folder is vee_expunge in camel-vee-folder.c.
vee_expunge has one line:

((CamelFolderClass *)((CamelObject *)folder)->klass)->sync(folder, TRUE,
ex);

So, it calls the sync function. Correct me if I'm wrong, but it looks
like any folder which is to implement message expunging when the user
clicks "Empty Trash" needs to implement the _sync_ function in such as
way that deleted messages really can be expunged. Writing an mbox or
spool expunge function won't work as it won't get called via a vTrash
folder expunge.

Seb




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]