diff options
Diffstat (limited to 'imap/imapscanclient.h')
| -rw-r--r-- | imap/imapscanclient.h | 94 | 
1 files changed, 94 insertions, 0 deletions
| diff --git a/imap/imapscanclient.h b/imap/imapscanclient.h new file mode 100644 index 0000000..2b01180 --- /dev/null +++ b/imap/imapscanclient.h @@ -0,0 +1,94 @@ +#ifndef	imapscanclient_h +#define	imapscanclient_h + +#include "config.h" +#include "maildir/maildirkeywords.h" + +/* +** Copyright 1998 - 2003 Double Precision, Inc. +** See COPYING for distribution information. +*/ + +/* +** Stuff we want to know about an individual message in the maildir. +*/ + +struct imapscanmessageinfo { +	unsigned long uid;	/* See RFC 2060 */ +	char *filename; +	struct libmail_kwMessage *keywordMsg; /* If not NULL - keywords */ +	char recentflag; +	char changedflags;	/* Set by imapscan_open */ +	char copiedflag;	/* This message was copied to another folder */ + +	char storeflag;  /* Used by imap_addRemoveKeywords() */ + +	/* When reading keywords, hash messages by filename */ + +	struct imapscanmessageinfo *firstBucket, *nextBucket; + +	} ; + +/* +** Stuff we want to know about the maildir. +*/ + +struct imapscaninfo { +	unsigned long nmessages;	/* # of messages */ +	unsigned long uidv;		/* See RFC 2060 */ +	unsigned long left_unseen; +	unsigned long nextuid; + +	struct libmail_kwHashtable *keywordList; /* All defined keywords */ + +	struct imapscanmessageinfo *msgs; +	struct maildirwatch *watcher; +	} ; + +/* +** In imapscan_maildir, move the following msgs to cur. +*/ + +struct uidplus_info { +	struct uidplus_info *next; +	char *tmpfilename; +	char *curfilename; + +	char *tmpkeywords; +	char *newkeywords; + +	unsigned long uid; /* Initialized by imapscan_maildir2 */ +	unsigned long old_uid; /* Initialized by do_copy() */ +	 +	time_t mtime; +} ; + + +void imapscan_init(struct imapscaninfo *p); +void imapscan_copy(struct imapscaninfo *a, +		   struct imapscaninfo *b); + +int imapscan_maildir(struct imapscaninfo *, const char *, int, int, +		     struct uidplus_info *); +void imapscan_free(struct imapscaninfo *); + +int imapscan_openfile(const char *, struct imapscaninfo *, unsigned); + + +struct libmail_kwMessage *imapscan_createKeyword(struct imapscaninfo *, +					      unsigned long n); + +int imapscan_updateKeywords(const char *filename, +			    struct libmail_kwMessage *newKeywords); + +int imapscan_restoreKeywordSnapshot(FILE *, struct imapscaninfo *); +int imapscan_saveKeywordSnapshot(FILE *fp, struct imapscaninfo *); + +int imapmaildirlock(struct imapscaninfo *scaninfo, +		    const char *maildir, +		    int (*func)(void *), +		    void *void_arg); + +char *readline(unsigned, FILE *); + +#endif | 
