X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fmsg_renderers.c;h=10e20e90d2f2bfda4cf5baf2be49bf54f83bc62e;hb=5dd116cf07d991263431624a735698374c6fb692;hp=7d21cf7a15f619a6da5493932fa2e40a55c03c20;hpb=358d851f0ef8dbee3ad77f56ebd1046af1b15fa5;p=citadel.git
diff --git a/webcit/msg_renderers.c b/webcit/msg_renderers.c
index 7d21cf7a1..10e20e90d 100644
--- a/webcit/msg_renderers.c
+++ b/webcit/msg_renderers.c
@@ -51,9 +51,7 @@ void DestroyMessageSummary(void *vMsg)
FreeStrBuf(&Msg->Rfca);
FreeStrBuf(&Msg->OtherNode);
- FreeStrBuf(&Msg->reply_to);
-
- DeleteHash(&Msg->Attachments); /**< list of Accachments */
+ DeleteHash(&Msg->Attachments); /* list of Attachments */
DeleteHash(&Msg->Submessages);
DeleteHash(&Msg->AttachLinks);
DeleteHash(&Msg->AllAttach);
@@ -867,6 +865,21 @@ void tmplput_MAIL_SUMM_N(StrBuf *Target, WCTemplputParams *TP)
}
+void tmplput_MAIL_SUMM_PERMALINK(StrBuf *Target, WCTemplputParams *TP)
+{
+ message_summary *Msg = (message_summary*) CTX;
+ char perma_link[1024];
+ char encoded_link[1024];
+
+ strcpy(perma_link, "/readfwd?go=");
+ urlesc(&perma_link[12], sizeof(perma_link) - 12, (char *)ChrPtr(WC->CurRoom.name) );
+ sprintf(&perma_link[strlen(perma_link)], "?start_reading_at=%ld#%ld", Msg->msgnum, Msg->msgnum);
+
+
+ CtdlEncodeBase64(encoded_link, perma_link, strlen(perma_link), 0);
+ StrBufAppendPrintf(Target, "/B64%s", encoded_link);
+}
+
int Conditional_MAIL_MIME_ALL(StrBuf *Target, WCTemplputParams *TP)
{
@@ -963,7 +976,8 @@ void render_MAIL_text_plain(wc_mime_attachment *Mime, StrBuf *RawData, StrBuf *F
StrBuf *Line1;
StrBuf *Line2;
StrBuf *Target;
-
+ long Linecount;
+ long nEmptyLines;
int bn = 0;
int bq = 0;
int i;
@@ -1009,7 +1023,8 @@ void render_MAIL_text_plain(wc_mime_attachment *Mime, StrBuf *RawData, StrBuf *F
Line1 = NewStrBufPlain(NULL, SIZ);
Line2 = NewStrBufPlain(NULL, SIZ);
Target = NewStrBufPlain(NULL, StrLength(Mime->Data));
-
+ Linecount = 0;
+ nEmptyLines = 0;
if (StrLength(Mime->Data) > 0)
do
{
@@ -1032,10 +1047,14 @@ void render_MAIL_text_plain(wc_mime_attachment *Mime, StrBuf *RawData, StrBuf *F
if (i > 0) StrBufCutLeft(Line, i);
if (StrLength(Line) == 0) {
+ if (Linecount == 0)
+ continue;
StrBufAppendBufPlain(Target, HKEY("
\n"), 0);
+
+ nEmptyLines ++;
continue;
}
-
+ nEmptyLines = 0;
for (i = bn; i < bq; i++)
StrBufAppendBufPlain(Target, HKEY("
"), 0); for (i = bq; i < bn; i++) @@ -1051,10 +1070,13 @@ void render_MAIL_text_plain(wc_mime_attachment *Mime, StrBuf *RawData, StrBuf *F StrEscAppend(Target, Line1, NULL, 0, 0); StrBufAppendBufPlain(Target, HKEY(""), 0); @@ -1411,9 +1433,9 @@ InitModule_MSGRENDERERS RegisterReadLoopHandlerset( VIEW_MAILBOX, mailview_GetParamsGetServerCall, - NULL, /// TODO: is this right? + NULL, /* TODO: is this right? */ ParseMessageListHeaders_Detail, - NULL, //// "" + NULL, mailview_RenderView_or_Tail, mailview_Cleanup); @@ -1446,6 +1468,7 @@ InitModule_MSGRENDERERS RegisterNamespace("MAIL:SUMM:DATEFULL", 0, 0, tmplput_MAIL_SUMM_DATE_FULL, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:DATENO", 0, 0, tmplput_MAIL_SUMM_DATE_NO, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:N", 0, 0, tmplput_MAIL_SUMM_N, NULL, CTX_MAILSUM); + RegisterNamespace("MAIL:SUMM:PERMALINK", 0, 0, tmplput_MAIL_SUMM_PERMALINK, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:FROM", 0, 2, tmplput_MAIL_SUMM_FROM, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:TO", 0, 2, tmplput_MAIL_SUMM_TO, NULL, CTX_MAILSUM); RegisterNamespace("MAIL:SUMM:SUBJECT", 0, 4, tmplput_MAIL_SUMM_SUBJECT, NULL, CTX_MAILSUM);
\n"), 0); bn = bq; + Linecount ++; } while ((BufPtr != StrBufNOTNULL) && (BufPtr != NULL)); + if (nEmptyLines > 0) + StrBufCutRight(Target, nEmptyLines * (sizeof ("
\n") - 1)); for (i = 0; i < bn; i++) StrBufAppendBufPlain(Target, HKEY("