* Remove leading '|' from references if present
[citadel.git] / webcit / messages.h
blob904e6b9d1e8177f3cd0df44d877b6993e2477ab9
2 extern HashList *MsgHeaderHandler;
3 extern HashList *MimeRenderHandler;
5 typedef struct wc_mime_attachment wc_mime_attachment;
6 typedef void (*RenderMimeFunc)(wc_mime_attachment *Mime, StrBuf *RawData, StrBuf *FoundCharset);
7 typedef struct _RenderMimeFuncStruct {
8 RenderMimeFunc f;
9 } RenderMimeFuncStruct;
11 struct wc_mime_attachment {
12 int level;
13 StrBuf *Name;
14 StrBuf *FileName;
15 StrBuf *PartNum;
16 StrBuf *Disposition;
17 StrBuf *ContentType;
18 StrBuf *Charset;
19 StrBuf *Data;
20 size_t length; /* length of the mimeatachment */
21 long size_known;
22 long lvalue; /* if we put a long... */
23 long msgnum; /**< the message number on the citadel server derived from message_summary */
24 const RenderMimeFuncStruct *Renderer;
26 void DestroyMime(void *vMime);
30 * \brief message summary structure. ???
32 typedef struct _message_summary {
33 time_t date; /**< its creation date */
34 long msgnum; /**< the message number on the citadel server */
35 int nhdr;
36 int format_type;
37 StrBuf *from; /**< the author */
38 StrBuf *to; /**< the recipient */
39 StrBuf *subj; /**< the title / subject */
40 StrBuf *reply_inreplyto;
41 StrBuf *reply_references;
42 StrBuf *reply_to;
43 StrBuf *cccc;
44 StrBuf *hnod;
45 StrBuf *AllRcpt;
46 StrBuf *Room;
47 StrBuf *Rfca;
48 StrBuf *OtherNode;
49 const StrBuf *PartNum;
51 HashList *Attachments; /**< list of Accachments */
52 HashList *Submessages;
53 HashList *AttachLinks;
55 HashList *AllAttach;
57 int is_new; /**< is it yet read? */
58 int hasattachments; /* does it have atachments? */
61 /** The mime part of the message */
62 wc_mime_attachment *MsgBody;
63 } message_summary;
64 void DestroyMessageSummary(void *vMsg);
65 inline message_summary* GetMessagePtrAt(int n, HashList *Summ);
67 typedef void (*ExamineMsgHeaderFunc)(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset);
69 void evaluate_mime_part(message_summary *Msg, wc_mime_attachment *Mime);
71 enum {
72 do_search,
73 headers,
74 readfwd,
75 readnew,
76 readold
79 typedef void (*readloop_servcmd)(char *buf, long bufsize);
81 typedef struct _readloopstruct {
82 ConstStr name;
83 readloop_servcmd cmd;
84 } readloop_struct;
87 void readloop(long oper);
88 int read_message(StrBuf *Target, const char *tmpl, long tmpllen, long msgnum, int printable_view, const StrBuf *section);
91 int load_msg_ptrs(char *servcmd, int with_headers);