+ int crlf, /* 0=LF, 1=CRLF */
+ char *section /* output a message/rfc822 section */
+);
+int CtdlOutputPreLoadedMsg(struct CtdlMessage *,
+ 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 */
+);
+int CtdlCopyMsgsToRoom(long *msgnum, int num_msgs, char *dest);
+int CtdlCopyMsgToRoom(long msgnum, char *dest);
+int CtdlDoIHavePermissionToDeleteMessagesFromThisRoom(void);
+int CtdlDoIHavePermissionToPostInThisRoom(char *errmsgbuf, size_t n);
+
+
+/* values for which_set */
+enum {
+ ctdlsetseen_seen,
+ ctdlsetseen_answered
+};
+void CtdlSetSeen(long *target_msgnums, int num_target_msgnums,
+ int target_setting, int which_set,
+ struct ctdluser *which_user, struct ctdlroom *which_room);
+void CtdlGetSeen(char *buf, int which_set);
+
+struct recptypes *validate_recipients(char *recipients);
+struct CtdlMessage *CtdlMakeMessage(
+ struct ctdluser *author, /* author's user structure */
+ char *recipient, /* NULL if it's not mail */
+ char *recp_cc, /* NULL if it's not mail */
+ char *room, /* room where it's going */
+ int type, /* see MES_ types in header file */
+ int format_type, /* variformat, plain text, MIME... */
+ char *fake_name, /* who we're masquerading as */
+ char *subject, /* Subject (optional) */
+ char *supplied_euid, /* ...or NULL if this is irrelevant */
+ char *preformatted_text /* ...or NULL to read text from client */
+);
+int CtdlCheckInternetMailPermission(struct ctdluser *who);
+int CtdlIsMe(char *addr, int addr_buf_len);