10 FlagNoInferiors = 1<<7,
17 typedef struct Box Box;
18 typedef struct Hdr Hdr;
19 typedef struct Msg Msg;
20 typedef struct Part Part;
24 char* name; /* name of mailbox */
25 char* elem; /* last element in name */
26 uint ix; /* index in box[] array */
27 uint id; /* id shown in file system */
28 uint flags; /* FlagNoInferiors, etc. */
29 uint time; /* last update time */
30 uint msgid; /* last message id used */
32 Msg** msg; /* array of messages (can have nils) */
35 char* imapname; /* name on IMAP server */
36 u32int validity; /* IMAP validity number */
37 uint uidnext; /* IMAP expected next uid */
38 uint recent; /* IMAP first recent message */
39 uint exists; /* IMAP last message in box */
40 uint maxseen; /* maximum IMAP uid seen */
42 uint imapinit; /* up-to-date w.r.t. IMAP */
44 Box* parent; /* in tree */
51 /* LATER: store date as int, reformat for programs */
52 /* order known by fs.c */
68 Box* box; /* mailbox containing msg */
69 uint ix; /* index in box->msg[] array */
70 uint id; /* id shown in file system */
71 uint imapuid; /* IMAP uid */
72 uint imapid; /* IMAP id */
73 uint flags; /* FlagDeleted etc. */
74 uint date; /* smtp envelope date */
77 Part** part; /* message subparts - part[0] is root */
83 Msg* msg; /* msg containing part */
84 uint ix; /* index in msg->part[] */
85 uint pix; /* id in parent->sub[] */
86 Part* parent; /* parent in structure */
87 Part** sub; /* children in structure */
90 /* order known by fs.c */
91 char* type; /* e.g., "text/plain" */
102 /* order known by fs.c */
108 Hdr* hdr; /* RFC822 envelope for message/rfc822 */
112 Box* boxbyname(char*);
114 Box* boxcreate(char*);
116 Box* subbox(Box*, char*);
117 Msg* msgcreate(Box*);
118 Part* partcreate(Msg*, Part*);
122 Msg* msgbyid(Box*, uint);
123 Msg* msgbyimapuid(Box*, uint, int);
125 void msgplumb(Msg*, int);
127 Part* partbyid(Msg*, uint);
128 Part* subpart(Part*, uint);
129 void partfree(Part*);