/*
* Functions which deal with the fetching and displaying of messages.
*
- * Copyright (c) 1996-2018 by the citadel.org team
+ * Copyright (c) 1996-2020 by the citadel.org team
*
- * This program is open source software. You can redistribute it and/or
- * modify it under the terms of the GNU General Public License, version 3.
+ * This program is open source software. We call it open source, not
+ * free software, because Richard Stallman is a communist and an asshole.
+ *
+ * The program is licensed under the General Public License, version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
#define SENDER_COL_WIDTH_PCT 30 /* Mailbox view column width */
#define DATE_PLUS_BUTTONS_WIDTH_PCT 20 /* Mailbox view column width */
-void jsonMessageListHdr(void);
-
-void display_enter(void);
-
-void fixview()
-{
+void fixview() {
/* workaround for json listview; its not useable directly */
if (WC->CurRoom.view == VIEW_JSON_LIST) {
StrBuf *View = NewStrBuf();
putbstr("view", View);;
}
}
-int load_message(message_summary *Msg,
- StrBuf *FoundCharset,
- StrBuf **Error)
-{
+
+
+int load_message(message_summary *Msg, StrBuf *FoundCharset, StrBuf **Error) {
StrBuf *Buf;
StrBuf *HdrToken;
char buf[SIZ];
}
-
/*
- * I wanna SEE that message!
+ * Display a message to the user
*
* msgnum Message number to display
* printable_view Nonzero to display a printable view
* section Optional for encapsulated message/rfc822 submessage
*/
-int read_message(StrBuf *Target, const char *tmpl, long tmpllen, long msgnum, const StrBuf *PartNum, const StrBuf **OutMime, WCTemplputParams *TP)
-{
+int read_message(StrBuf *Target, const char *tmpl, long tmpllen, long msgnum, const StrBuf *PartNum, const StrBuf **OutMime, WCTemplputParams *TP) {
StrBuf *Buf;
StrBuf *FoundCharset;
HashPos *it;
}
-long
-HttpStatus(long CitadelStatus)
-{
+long HttpStatus(long CitadelStatus) {
long httpstatus = 502;
switch (MAJORCODE(CitadelStatus))
return httpstatus;
}
+
/*
* Unadorned HTML output of an individual message, suitable
* for placing in a hidden iframe, for printing, or whatever
*/
-void handle_one_message(void)
-{
+void handle_one_message(void) {
long CitStatus = ERROR + NOT_HERE;
int CopyMessage = 0;
const StrBuf *Destination;
StrBuf *CmdBuf = NULL;
const char *pMsg;
-
pMsg = strchr(ChrPtr(WCC->Hdr->HR.ReqLine), '/');
if (pMsg == NULL) {
HttpStatus(CitStatus);
wDumpContent(0);
}
+
/*
* Display a message's headers
*/
}
-
/*
* load message pointers from the server for a "read messages" operation
*
}
-
-/**
- * \brief sets FlagToSet for each of ScanMe that appears in MatchMSet
- * \param ScanMe List of BasicMsgStruct to be searched it MatchSet
- * \param MatchMSet MSet we want to flag
- * \param FlagToSet Flag to set on each BasicMsgStruct->Flags if in MSet
+/*
+ * sets FlagToSet for each of ScanMe that appears in MatchMSet
+ * ScanMe: List of BasicMsgStruct to be searched it MatchSet
+ * MatchMSet: MSet we want to flag
+ * FlagToSet: Flag to set on each BasicMsgStruct->Flags if in MSet
*/
-long SetFlagsFromMSet(HashList *ScanMe, MSet *MatchMSet, int FlagToSet, int Reverse)
-{
+long SetFlagsFromMSet(HashList *ScanMe, MSet *MatchMSet, int FlagToSet, int Reverse) {
const char *HashKey;
long HKLen;
long count = 0;
}
-long load_seen_flags(void)
-{
+long load_seen_flags(void) {
long count = 0;
StrBuf *OldMsg;
wcsession *WCC = WC;
*
* Set oper to "readnew" or "readold" or "readfwd" or "headers" or "readgt" or "readlt" or "do_search"
*/
-void readloop(long oper, eCustomRoomRenderer ForceRenderer)
-{
+void readloop(long oper, eCustomRoomRenderer ForceRenderer) {
RoomRenderer *ViewMsg;
void *vViewMsg;
void *vMsg;
* discarded. This prevents the accidental double-saving of the same message
* if the user happens to click the browser "back" button.
*/
-void post_message(void)
-{
+void post_message(void) {
StrBuf *UserName;
StrBuf *EmailAddress;
StrBuf *EncBuf;
eReplyAll,
eForward
}eReplyToNodes;
-
+
+
/*
* display the message entry screen
*/
-void display_enter(void)
-{
+void display_enter(void) {
const char *ReplyingModeStr;
eReplyToNodes ReplyMode = eReply;
StrBuf *Line;
return;
}
+
/*
* delete a message
*/
-void delete_msg(void)
-{
+void delete_msg(void) {
long msgid;
StrBuf *Line;
/*
* move a message to another room
*/
-void move_msg(void)
-{
+void move_msg(void) {
long msgid;
msgid = lbstr("msgid");
}
-
/*
* Generic function to output an arbitrary MIME attachment from
* message being composed
* filename Fake filename to give
* force_download Nonzero to force set the Content-Type: header to "application/octet-stream"
*/
-void postpart(StrBuf *partnum, StrBuf *filename, int force_download)
-{
+void postpart(StrBuf *partnum, StrBuf *filename, int force_download) {
void *vPart;
StrBuf *content_type;
wc_mime_attachment *part;
* partnum MIME part number to be output
* force_download Nonzero to force set the Content-Type: header to "application/octet-stream"
*/
-void view_or_download_mimepart(int force_download)
-{
+void view_or_download_mimepart(int force_download) {
long msgnum;
off_t bytes;
StrBuf *Buf;
/*
* Read any MIME part of a message, from the server, into memory.
*/
-StrBuf *load_mimepart(long msgnum, char *partnum)
-{
+StrBuf *load_mimepart(long msgnum, char *partnum) {
off_t bytes;
StrBuf *Buf;
}
}
+
/*
* Read any MIME part of a message, from the server, into memory.
*/
-void MimeLoadData(wc_mime_attachment *Mime)
-{
+void MimeLoadData(wc_mime_attachment *Mime) {
StrBuf *Buf;
const char *Ptr;
off_t bytes;
view_or_download_mimepart(0);
}
+
void download_mimepart(void) {
view_or_download_mimepart(1);
}
+
void view_postpart(void) {
StrBuf *filename = NewStrBuf();
StrBuf *partnum = NewStrBuf();
FreeStrBuf(&partnum);
}
+
void download_postpart(void) {
StrBuf *filename = NewStrBuf();
StrBuf *partnum = NewStrBuf();
}
-
void show_num_attachments(void) {
wc_printf("%d", GetCount(WC->attachments));
}
void h_readlt(void) { readloop(readlt, eUseDefault);}
-
/* Output message list in JSON format */
void jsonMessageList(void) {
StrBuf *View = NewStrBuf();
readloop(oper, eUseDefault);
}
+
void FreeReadLoopHandlerSet(void *v) {
RoomRenderer *Handler = (RoomRenderer *) v;
FreeStrBuf(&Handler->FetchMessageList);
free(Handler);
}
+
void RegisterReadLoopHandlerset(
int RoomType,
GetParamsGetServerCall_func GetParamsGetServerCall,