#define HEADERS_ALL 0 /* Headers and body */
#define HEADERS_ONLY 1 /* Headers only */
#define HEADERS_NONE 2 /* Body only */
+#define HEADERS_FAST 3 /* Headers only with no MIME info */
struct ma_info {
void cmd_msg4 (char *cmdbuf);
void cmd_msgp (char *cmdbuf);
void cmd_opna (char *cmdbuf);
-long send_message (struct CtdlMessage *, FILE *);
+long send_message (struct CtdlMessage *);
void loadtroom (void);
long CtdlSubmitMsg(struct CtdlMessage *, struct recptypes *, char *);
void quickie_message (char *, char *, char *, char *, int, char *);
void (*CallBack) (long, void *),
void *userdata);
int CtdlDeleteMessages(char *, long, char *);
-void CtdlWriteObject(char *, char *, char *, struct usersupp *,
+void CtdlWriteObject(char *, char *, char *, struct ctdluser *,
int, int, unsigned int);
struct CtdlMessage *CtdlFetchMessage(long msgnum);
void CtdlFreeMessage(struct CtdlMessage *msg);
int is_valid_message(struct CtdlMessage *);
int ReplicationChecks(struct CtdlMessage *);
int CtdlSaveMsgPointerInRoom(char *roomname, long msgid, int flags);
-char *CtdlReadMessageBody(char *terminator, size_t maxlen, char *exist);
+char *CtdlReadMessageBody(char *terminator, size_t maxlen, char *exist, int crlf);
char *CtdlGetSysConfig(char *sysconfname);
void CtdlPutSysConfig(char *sysconfname, char *sysconfdata);
int CtdlOutputMsg(long msg_num, /* message number (local) to fetch */
int CtdlCopyMsgToRoom(long msgnum, char *dest);
int CtdlDoIHavePermissionToDeleteMessagesFromThisRoom(void);
int CtdlDoIHavePermissionToPostInThisRoom(char *errmsgbuf, size_t n);
-void CtdlSetSeen(long target_msgnum, int target_setting);
+
+
+/* values for which_set */
+enum {
+ ctdlsetseen_seen,
+ ctdlsetseen_answered
+};
+void CtdlSetSeen(long target_msgnum, int target_setting, int which_set);
+void CtdlGetSeen(char *buf, int which_set);
+
struct recptypes *validate_recipients(char *recipients);
-void CtdlGetSeen(char *buf);
struct CtdlMessage *CtdlMakeMessage(
- struct usersupp *author, /* author's usersupp structure */
+ struct ctdluser *author, /* author's user structure */
char *recipient, /* NULL if it's not mail */
char *room, /* room where it's going */
int type, /* see MES_ types in header file */
char *subject, /* Subject (optional) */
char *preformatted_text /* ...or NULL to read text from client */
);
-int CtdlCheckInternetMailPermission(struct usersupp *who);
+int CtdlCheckInternetMailPermission(struct ctdluser *who);
+int CtdlIsMe(char *addr);