+++ /dev/null
-/*
-** $Id: imaprefs.h,v 1.4 2003/07/09 21:33:20 mrsam Exp $
-*/
-#ifndef imaprefs_h
-#define imaprefs_h
-
-/*
-** Copyright 2000-2003 Double Precision, Inc.
-** See COPYING for distribution information.
-*/
-
-#if HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-** Implement REFERENCES threading.
-*/
-
-/* The data structures */
-
-struct imap_refmsg {
- struct imap_refmsg *next, *last; /* Link list of all msgs */
- struct imap_refmsg *parent; /* my parent */
- struct imap_refmsg *firstchild, *lastchild; /* Children link list */
- struct imap_refmsg *prevsib, *nextsib; /* Link list of siblings */
-
- char isdummy; /* this is a dummy node (for now) */
- char flag2; /* Additional flag */
-
- char *msgid; /* msgid of this message */
-
- char *subj; /* dynalloced subject of this msg */
- time_t timestamp; /* Timestamp */
- unsigned long seqnum; /* Sequence number */
-} ;
-
-struct imap_refmsgtable {
- struct imap_refmsg *firstmsg, *lastmsg; /* Link list of all msgs */
-
- /* hash table message id lookup */
-
- struct imap_refmsghash *hashtable[512];
-
- struct imap_subjlookup *subjtable[512];
-
- struct imap_refmsg *rootptr; /* The root */
-} ;
-
-struct imap_refmsgtable *rfc822_threadalloc(void);
-void rfc822_threadfree(struct imap_refmsgtable *);
-struct imap_refmsg *rfc822_threadmsg(struct imap_refmsgtable *mt,
- const char *msgidhdr,
- const char *refhdr,
- const char *subjheader,
-
- const char *dateheader,
- time_t dateheader_tm,
- /* Set one or other */
-
- unsigned long seqnum);
-
-struct imap_refmsg *rfc822_threadmsgrefs(struct imap_refmsgtable *mt,
- const char *msgid_s,
- const char * const * msgidList,
- const char *subjheader,
- const char *dateheader,
- time_t dateheader_tm,
- unsigned long seqnum);
-
-struct imap_refmsg *rfc822_thread(struct imap_refmsgtable *mt);
-
- /* INTERNAL FUNCTIONS FOLLOW */
-
-
-struct imap_refmsghash {
- struct imap_refmsghash *nexthash;
- struct imap_refmsg *msg;
-} ;
-
-struct imap_subjlookup {
- struct imap_subjlookup *nextsubj;
- char *subj;
- struct imap_refmsg *msg;
- int msgisrefwd;
-} ;
-
-struct imap_refmsg *rfc822_threadallocmsg(struct imap_refmsgtable *mt,
- const char *msgid);
-void rfc822_threadprune(struct imap_refmsgtable *mt);
-struct imap_refmsg *rfc822_threadgetroot(struct imap_refmsgtable *mt);
-struct imap_refmsg *rfc822_threadsearchmsg(struct imap_refmsgtable *mt,
- const char *msgid);
-int rfc822_threadsortsubj(struct imap_refmsg *root);
-int rfc822_threadgathersubj(struct imap_refmsgtable *mt,
- struct imap_refmsg *root);
-int rfc822_threadmergesubj(struct imap_refmsgtable *mt,
- struct imap_refmsg *root);
-int rfc822_threadsortbydate(struct imap_refmsgtable *mt);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif