Re: [Evolution-hackers] camel local provider and Bug 213072



On Thu, 2007-02-22 at 22:52 +0000, Seb James wrote:
> Hi Philip,
> 
> I've not done any work on this recently, but I've not forgotten it; just
> been busy with other things.
> 
> On Tue, 2007-01-16 at 05:44 +0100, Philip Van Hoof wrote:
> [snip]
> > If you want to implement a specialised version for "spool" folders, fill
> > in the function pointer like this:
> 
> (in camel-spool-folder.c)
> 
> > static void
> > camel_spool_folder_class_init(CamelSpoolFolderClass *klass)
> > {
> > 	CamelLocalFolderClass *lklass = (CamelLocalFolderClass *)klass;
> > +	CamelFolderClass *camel_folder_class = CAMEL_FOLDER_CLASS(camel_local_folder_class);
> > 
> > 	parent_class = (CamelFolderClass *)camel_mbox_folder_get_type();
> > 
> > 	lklass->create_summary = spool_create_summary;
> > 	lklass->lock = spool_lock;
> > 	lklass->unlock = spool_unlock;
> > 
> > 	camel_folder_class->expunge = spool_expunge;
> > 
> > }
> > 
> > And implement it:
> > 
> > + static void
> > + spool_expunge(CamelFolder *folder, CamelException *ex)
> > + {
> > +     /* Call the method on super */
> > +     parent_class->expunge (folder, ex);
> > +     return;
> > + }
> 
> Ok, I guess in this function, I'm going to have to get down and dirty
> with the spool file: 
> 
> Call spool_lock()
> Read it in, skipping expunged entries
> Write it out, sans expunged messages
> Call spool_unlock().
> 
> Questions for anyone on the list:
> Is there a formalised way of getting the path to the spool file?

Got it:

CamelLocalFolder* localFolder;
int fd;
/* ..set up localFolder.. */
fd = g_open(localFolder->folder_path, O_LARGEFILE | O_WRONLY | O_BINARY, 0600);

> What are the camel functions for stepping through a mail file, looking
> at each message?
> Is there a "camel read message to data structure" kind of function?

I think the relevant functions are in camel_mime_parser.c

> 
> Seb
> 
> My original posting:
> 
> > On Sun, 2007-01-14 at 21:00 +0000, Seb James wrote:
> > > Hi List,
> > > 
> > > I'm looking at the local provider for camel, written by Michael Zucchi.
> > > It seems to be related to Bug 213072, which is now rather old, and which
> > > affects me.
> > > 
> > > I'm trying to understand the code to begin with.
> > > 
> > > I use a standard unix mail spool as my inbox, and I am wondering why it
> > > is that I can't expunge deleted messages from the spool. The spool just
> > > gets bigger and bigger, filling up with messages, flagged as deleted.
> > > 
> > > So, question one to get me started is: What function in e-d-s carries
> > > out message expunging, as distinct from message deletion?
> > > 
> > > regards,
> > > 
> > > Seb James
> 
> 
> _______________________________________________
> Evolution-hackers mailing list
> Evolution-hackers gnome org
> http://mail.gnome.org/mailman/listinfo/evolution-hackers




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