SUBST: Dynamicaly generate contexts
[citadel.git] / webcit / msg_renderers.c
index d2de1f4bdf89313408ce64e2eff38ed9169b9876..8de9f45d53be633716ea8ad3daf4c5ff730c6479 100644 (file)
@@ -2,7 +2,8 @@
 #include "webserver.h"
 #include "dav.h"
 
-
+CtxType CTX_MAILSUM = CTX_NONE;
+CtxType CTX_MIME_ATACH = CTX_NONE;
 
 inline void CheckConvertBufs(struct wcsession *WCC)
 {
@@ -45,6 +46,7 @@ void DestroyMessageSummary(void *vMsg)
        FreeStrBuf(&Msg->reply_inreplyto);
        FreeStrBuf(&Msg->reply_references);
        FreeStrBuf(&Msg->cccc);
+       FreeStrBuf(&Msg->ReplyTo);
        FreeStrBuf(&Msg->hnod);
        FreeStrBuf(&Msg->AllRcpt);
        FreeStrBuf(&Msg->Room);
@@ -247,7 +249,7 @@ void examine_nhdr(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 }
 int Conditional_ANONYMOUS_MESSAGE(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return Msg->nhdr != 0;
 }
 
@@ -273,7 +275,7 @@ void examine_from(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 }
 void tmplput_MAIL_SUMM_FROM(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendTemplate(Target, TP, Msg->from, 0);
 }
 
@@ -293,7 +295,7 @@ void examine_subj(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 }
 void tmplput_MAIL_SUMM_SUBJECT(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
 
        if (TP->Tokens->nParameters == 4)
        {
@@ -312,7 +314,7 @@ void tmplput_MAIL_SUMM_SUBJECT(StrBuf *Target, WCTemplputParams *TP)
 }
 int Conditional_MAIL_SUMM_SUBJECT(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
 
 
        return StrLength(Msg->subj) > 0;
@@ -335,13 +337,13 @@ void examine_msgn(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 }
 void tmplput_MAIL_SUMM_INREPLYTO(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendTemplate(Target, TP, Msg->reply_inreplyto, 0);
 }
 
 int Conditional_MAIL_SUMM_UNREAD(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return (Msg->Flags & MSGFLAG_READ) != 0;
 }
 
@@ -361,10 +363,35 @@ void examine_wefw(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 }
 void tmplput_MAIL_SUMM_REFIDS(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendTemplate(Target, TP, Msg->reply_references, 0);
 }
 
+void examine_replyto(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
+{
+       wcsession *WCC = WC;
+
+       CheckConvertBufs(WCC);
+       FreeStrBuf(&Msg->ReplyTo);
+       Msg->ReplyTo = NewStrBufPlain(NULL, StrLength(HdrLine));
+       StrBuf_RFC822_2_Utf8(Msg->ReplyTo, 
+                            HdrLine, 
+                            WCC->DefaultCharset, 
+                            FoundCharset,
+                            WCC->ConvertBuf1,
+                            WCC->ConvertBuf2);
+       if (Msg->AllRcpt == NULL)
+               Msg->AllRcpt = NewStrBufPlain(NULL, StrLength(HdrLine));
+       if (StrLength(Msg->AllRcpt) > 0) {
+               StrBufAppendBufPlain(Msg->AllRcpt, HKEY(", "), 0);
+       }
+       StrBufAppendBuf(Msg->AllRcpt, Msg->ReplyTo, 0);
+}
+void tmplput_MAIL_SUMM_REPLYTO(StrBuf *Target, WCTemplputParams *TP)
+{
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
+       StrBufAppendTemplate(Target, TP, Msg->ReplyTo, 0);
+}
 
 void examine_cccc(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 {
@@ -388,7 +415,7 @@ void examine_cccc(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 }
 void tmplput_MAIL_SUMM_CCCC(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendTemplate(Target, TP, Msg->cccc, 0);
 }
 
@@ -403,7 +430,7 @@ void examine_room(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 }
 void tmplput_MAIL_SUMM_ORGROOM(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendTemplate(Target, TP, Msg->Room, 0);
 }
 
@@ -415,19 +442,24 @@ void examine_rfca(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 }
 void tmplput_MAIL_SUMM_RFCA(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendTemplate(Target, TP, Msg->Rfca, 0);
 }
 int Conditional_MAIL_SUMM_RFCA(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return StrLength(Msg->Rfca) > 0;
 }
 int Conditional_MAIL_SUMM_CCCC(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return StrLength(Msg->cccc) > 0;
 }
+int Conditional_MAIL_SUMM_REPLYTO(StrBuf *Target, WCTemplputParams *TP)
+{
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
+       return StrLength(Msg->ReplyTo) > 0;
+}
 
 void examine_node(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 {
@@ -443,12 +475,12 @@ void examine_node(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 }
 void tmplput_MAIL_SUMM_OTHERNODE(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendTemplate(Target, TP, Msg->OtherNode, 0);
 }
 int Conditional_MAIL_SUMM_OTHERNODE(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return StrLength(Msg->OtherNode) > 0;
 }
 
@@ -475,22 +507,22 @@ void examine_rcpt(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 }
 void tmplput_MAIL_SUMM_TO(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendTemplate(Target, TP, Msg->to, 0);
 }
 int Conditional_MAIL_SUMM_TO(StrBuf *Target, WCTemplputParams *TP) 
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return StrLength(Msg->to) != 0;
 }
 int Conditional_MAIL_SUMM_SUBJ(StrBuf *Target, WCTemplputParams *TP) 
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return StrLength(Msg->subj) != 0;
 }
 void tmplput_MAIL_SUMM_ALLRCPT(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendTemplate(Target, TP, Msg->AllRcpt, 0);
 }
 
@@ -513,27 +545,27 @@ void examine_time(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 void tmplput_MAIL_SUMM_DATE_BRIEF(StrBuf *Target, WCTemplputParams *TP)
 {
        char datebuf[64];
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        webcit_fmt_date(datebuf, 64, Msg->date, DATEFMT_BRIEF);
        StrBufAppendBufPlain(Target, datebuf, -1, 0);
 }
 
 void tmplput_MAIL_SUMM_EUID(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendTemplate(Target, TP, Msg->euid, 0);
 }
 
 void tmplput_MAIL_SUMM_DATE_FULL(StrBuf *Target, WCTemplputParams *TP)
 {
        char datebuf[64];
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        webcit_fmt_date(datebuf, 64, Msg->date, DATEFMT_FULL);
        StrBufAppendBufPlain(Target, datebuf, -1, 0);
 }
 void tmplput_MAIL_SUMM_DATE_NO(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendPrintf(Target, "%ld", Msg->date, 0);
 }
 
@@ -587,40 +619,6 @@ void render_MIME_VCard(wc_mime_attachment *Mime, StrBuf *RawData, StrBuf *FoundC
 
 }
 
-void render_MIME_VNote(wc_mime_attachment *Mime, StrBuf *RawData, StrBuf *FoundCharset)
-{
-       if (StrLength(Mime->Data) == 0)
-               MimeLoadData(Mime);
-       if (StrLength(Mime->Data) > 0) {
-               struct vnote *v;
-               StrBuf *Buf;
-               char *vcard;
-
-               Buf = NewStrBuf();
-               vcard = SmashStrBuf(&Mime->Data);
-               v = vnote_new_from_str(vcard);
-               free (vcard);
-               if (v) {
-                       WCTemplputParams TP;
-                       
-                       memset(&TP, 0, sizeof(WCTemplputParams));
-                       TP.Filter.ContextType = CTX_VNOTE;
-                       TP.Context = v;
-                       DoTemplate(HKEY("mail_vnoteitem"),
-                                  Buf, &TP);
-                       
-                       vnote_free(v);
-                       Mime->Data = Buf;
-               }
-               else {
-                       if (Mime->Data == NULL)
-                               Mime->Data = NewStrBuf();
-                       else
-                               FlushStrBuf(Mime->Data);
-               }
-       }
-}
-
 void render_MIME_ICS(wc_mime_attachment *Mime, StrBuf *RawData, StrBuf *FoundCharset)
 {
        if (StrLength(Mime->Data) == 0) {
@@ -755,7 +753,7 @@ void evaluate_mime_part(message_summary *Msg, wc_mime_attachment *Mime)
 
 void tmplput_MAIL_SUMM_NATTACH(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendPrintf(Target, "%ld", GetCount(Msg->Attachments));
 }
 
@@ -776,12 +774,12 @@ void examine_hnod(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
 }
 void tmplput_MAIL_SUMM_H_NODE(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendTemplate(Target, TP, Msg->hnod, 0);
 }
 int Conditional_MAIL_SUMM_H_NODE(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return StrLength(Msg->hnod) > 0;
 }
 
@@ -860,14 +858,14 @@ void examine_content_type(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCh
 
 void tmplput_MAIL_SUMM_N(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendPrintf(Target, "%ld", Msg->msgnum);
 }
 
 
 void tmplput_MAIL_SUMM_PERMALINK(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        char perma_link[1024];
 
        strcpy(perma_link, "/readfwd?go=");
@@ -879,25 +877,25 @@ void tmplput_MAIL_SUMM_PERMALINK(StrBuf *Target, WCTemplputParams *TP)
 
 int Conditional_MAIL_MIME_ALL(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return GetCount(Msg->Attachments) > 0;
 }
 
 int Conditional_MAIL_MIME_SUBMESSAGES(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return GetCount(Msg->Submessages) > 0;
 }
 
 int Conditional_MAIL_MIME_ATTACHLINKS(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return GetCount(Msg->AttachLinks) > 0;
 }
 
 int Conditional_MAIL_MIME_ATTACH(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return GetCount(Msg->AllAttach) > 0;
 }
 
@@ -953,7 +951,7 @@ void tmplput_EDIT_WIKI_BODY(StrBuf *Target, WCTemplputParams *TP)
 
 void tmplput_MAIL_BODY(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        StrBufAppendTemplate(Target, TP, Msg->MsgBody->Data, 0);
 }
 
@@ -1127,58 +1125,58 @@ void render_MAIL_UNKNOWN(wc_mime_attachment *Mime, StrBuf *RawData, StrBuf *Foun
 
 HashList *iterate_get_mime_All(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return Msg->Attachments;
 }
 HashList *iterate_get_mime_Submessages(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return Msg->Submessages;
 }
 HashList *iterate_get_mime_AttachLinks(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return Msg->AttachLinks;
 }
 HashList *iterate_get_mime_Attachments(StrBuf *Target, WCTemplputParams *TP)
 {
-       message_summary *Msg = (message_summary*) CTX;
+       message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
        return Msg->AllAttach;
 }
 
 void tmplput_MIME_Name(StrBuf *Target, WCTemplputParams *TP)
 {
-       wc_mime_attachment *mime = (wc_mime_attachment*) CTX;
+       wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH);
        StrBufAppendTemplate(Target, TP, mime->Name, 0);
 }
 
 void tmplput_MIME_FileName(StrBuf *Target, WCTemplputParams *TP)
 {
-       wc_mime_attachment *mime = (wc_mime_attachment*) CTX;
+       wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH);
        StrBufAppendTemplate(Target, TP, mime->FileName, 0);
 }
 
 void tmplput_MIME_PartNum(StrBuf *Target, WCTemplputParams *TP)
 {
-       wc_mime_attachment *mime = (wc_mime_attachment*) CTX;
+       wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH);
        StrBufAppendTemplate(Target, TP, mime->PartNum, 0);
 }
 
 void tmplput_MIME_MsgNum(StrBuf *Target, WCTemplputParams *TP)
 {
-       wc_mime_attachment *mime = (wc_mime_attachment*) CTX;
+       wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH);
        StrBufAppendPrintf(Target, "%ld", mime->msgnum);
 }
 
 void tmplput_MIME_Disposition(StrBuf *Target, WCTemplputParams *TP)
 {
-       wc_mime_attachment *mime = (wc_mime_attachment*) CTX;
+       wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH);
        StrBufAppendTemplate(Target, TP, mime->Disposition, 0);
 }
 
 void tmplput_MIME_ContentType(StrBuf *Target, WCTemplputParams *TP)
 {
-       wc_mime_attachment *mime = (wc_mime_attachment*) CTX;
+       wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH);
        StrBufAppendTemplate(Target, TP, mime->ContentType, 0);
 }
 
@@ -1189,13 +1187,13 @@ void examine_charset(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset
 
 void tmplput_MIME_Charset(StrBuf *Target, WCTemplputParams *TP)
 {
-       wc_mime_attachment *mime = (wc_mime_attachment*) CTX;
+       wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH);
        StrBufAppendTemplate(Target, TP, mime->Charset, 0);
 }
 
 void tmplput_MIME_Data(StrBuf *Target, WCTemplputParams *TP)
 {
-       wc_mime_attachment *mime = (wc_mime_attachment*) CTX;
+       wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH);
        if (mime->Renderer != NULL)
                mime->Renderer->f(mime, NULL, NULL);
        StrBufAppendTemplate(Target, TP, mime->Data, 0);
@@ -1205,7 +1203,7 @@ void tmplput_MIME_Data(StrBuf *Target, WCTemplputParams *TP)
 void tmplput_MIME_LoadData(StrBuf *Target, WCTemplputParams *TP)
 {
        wcsession *WCC = WC;    
-       wc_mime_attachment *mime = (wc_mime_attachment*) CTX;
+       wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH);
        wc_mime_attachment *att;
        
        if (( (!strcasecmp(ChrPtr(mime->Disposition), "inline"))||
@@ -1233,7 +1231,7 @@ void tmplput_MIME_LoadData(StrBuf *Target, WCTemplputParams *TP)
 
 void tmplput_MIME_Length(StrBuf *Target, WCTemplputParams *TP)
 {
-       wc_mime_attachment *mime = (wc_mime_attachment*) CTX;
+       wc_mime_attachment *mime = (wc_mime_attachment*) CTX(CTX_MIME_ATACH);
        StrBufAppendPrintf(Target, "%ld", mime->length);
 }
 
@@ -1430,10 +1428,7 @@ int json_RenderView_or_Tail(SharedMessageStatus *Stat,
                            void **ViewSpecific, 
                            long oper)
 {
-       WCTemplputParams SubTP;
-
-       memset(&SubTP, 0, sizeof(WCTemplputParams));
-       DoTemplate(HKEY("mailsummary_json"),NULL, &SubTP);
+       DoTemplate(HKEY("mailsummary_json"),NULL, NULL);
        
        return 0;
 }
@@ -1453,6 +1448,8 @@ void
 InitModule_MSGRENDERERS
 (void)
 {
+       RegisterCTX(CTX_MAILSUM);
+       RegisterCTX(CTX_MIME_ATACH);
        RegisterReadLoopHandlerset(
                VIEW_MAILBOX,
                mailview_GetParamsGetServerCall,
@@ -1508,6 +1505,7 @@ InitModule_MSGRENDERERS
        RegisterNamespace("MAIL:SUMM:SUBJECT", 0, 4, tmplput_MAIL_SUMM_SUBJECT,  NULL, CTX_MAILSUM);
        RegisterNamespace("MAIL:SUMM:NTATACH", 0, 0, tmplput_MAIL_SUMM_NATTACH,  NULL, CTX_MAILSUM);
        RegisterNamespace("MAIL:SUMM:CCCC", 0, 2, tmplput_MAIL_SUMM_CCCC, NULL, CTX_MAILSUM);
+       RegisterNamespace("MAIL:SUMM:REPLYTO", 0, 2, tmplput_MAIL_SUMM_REPLYTO, NULL, CTX_MAILSUM);
        RegisterNamespace("MAIL:SUMM:H_NODE", 0, 2, tmplput_MAIL_SUMM_H_NODE,  NULL, CTX_MAILSUM);
        RegisterNamespace("MAIL:SUMM:ALLRCPT", 0, 2, tmplput_MAIL_SUMM_ALLRCPT,  NULL, CTX_MAILSUM);
        RegisterNamespace("MAIL:SUMM:ORGROOM", 0, 2, tmplput_MAIL_SUMM_ORGROOM,  NULL, CTX_MAILSUM);
@@ -1521,6 +1519,7 @@ InitModule_MSGRENDERERS
        RegisterNamespace("MAIL:EDITWIKI", 1, 2, tmplput_EDIT_WIKI_BODY,  NULL, CTX_NONE);
        RegisterConditional(HKEY("COND:MAIL:SUMM:RFCA"), 0, Conditional_MAIL_SUMM_RFCA,  CTX_MAILSUM);
        RegisterConditional(HKEY("COND:MAIL:SUMM:CCCC"), 0, Conditional_MAIL_SUMM_CCCC,  CTX_MAILSUM);
+       RegisterConditional(HKEY("COND:MAIL:SUMM:REPLYTO"), 0, Conditional_MAIL_SUMM_REPLYTO,  CTX_MAILSUM);
        RegisterConditional(HKEY("COND:MAIL:SUMM:UNREAD"), 0, Conditional_MAIL_SUMM_UNREAD, CTX_MAILSUM);
        RegisterConditional(HKEY("COND:MAIL:SUMM:H_NODE"), 0, Conditional_MAIL_SUMM_H_NODE, CTX_MAILSUM);
        RegisterConditional(HKEY("COND:MAIL:SUMM:OTHERNODE"), 0, Conditional_MAIL_SUMM_OTHERNODE, CTX_MAILSUM);
@@ -1564,7 +1563,6 @@ InitModule_MSGRENDERERS
 
        /* mime renderers translate an attachment into webcit viewable html text */
        RegisterMimeRenderer(HKEY("message/rfc822"), render_MAIL, 0, 150);
-       RegisterMimeRenderer(HKEY("text/vnote"), render_MIME_VNote, 1, 300);
        RegisterMimeRenderer(HKEY("text/x-vcard"), render_MIME_VCard, 1, 201);
        RegisterMimeRenderer(HKEY("text/vcard"), render_MIME_VCard, 1, 200);
        RegisterMimeRenderer(HKEY("text/calendar"), render_MIME_ICS, 1, 501);
@@ -1583,6 +1581,7 @@ InitModule_MSGRENDERERS
        RegisterMsgHdr(HKEY("msgn"), examine_msgn, 0);
        RegisterMsgHdr(HKEY("wefw"), examine_wefw, 0);
        RegisterMsgHdr(HKEY("cccc"), examine_cccc, 0);
+       RegisterMsgHdr(HKEY("rep2"), examine_replyto, 0);
        RegisterMsgHdr(HKEY("hnod"), examine_hnod, 0);
        RegisterMsgHdr(HKEY("room"), examine_room, 0);
        RegisterMsgHdr(HKEY("rfca"), examine_rfca, 0);