void CM_FreeContents (struct CtdlMessage *msg);
int CM_IsValidMsg (struct CtdlMessage *msg);
+#define CM_KEY(Message, Which) Message->cm_fields[Which], Message->cm_lengths[Which]
+#define CM_RANGE(Message, Which) Message->cm_fields[Which], \
+ Message->cm_fields[Which] + Message->cm_lengths[Which]
+
void CtdlSerializeMessage(struct ser_ret *, struct CtdlMessage *);
void ReplicationChecks(struct CtdlMessage *);
int CtdlSaveMsgPointersInRoom(char *roomname, long newmsgidlist[], int num_newmsgs,
);
int CtdlOutputMsg(long msg_num, /* message number (local) to fetch */
- int mode, /* how would you like that message? */
- int headers_only, /* eschew the message body? */
- int do_proto, /* do Citadel protocol responses? */
- int crlf, /* 0=LF, 1=CRLF */
- char *section, /* output a message/rfc822 section */
- int flags, /* should the bessage be exported clean? */
- char **Author, /* if you want to know the author of the message... */
- char **Address /* if you want to know the sender address of the message... */
+ int mode, /* how would you like that message? */
+ int headers_only, /* eschew the message body? */
+ int do_proto, /* do Citadel protocol responses? */
+ int crlf, /* 0=LF, 1=CRLF */
+ char *section, /* output a message/rfc822 section */
+ int flags, /* should the bessage be exported clean? */
+ char **Author, /* if you want to know the author of the message... */
+ char **Address, /* if you want to know the sender address of the message... */
+ char **MessageID /* if you want to know the Message-ID of the message... */
);
/* Flags which may be passed to CtdlOutputMsg() and CtdlOutputPreLoadedMsg() */