X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fmsg_renderers.c;h=c925c58ee971160ac8d6a2ebbacf08703083be46;hb=c73091a2ae896b6be5aa94b911c1c89d76a85688;hp=15abfddf5a67cd3d8e8fb7976fad4cfd4fab2ff3;hpb=4d0a622d2d3ae20770258981c6062f58c9fc01a3;p=citadel.git diff --git a/webcit/msg_renderers.c b/webcit/msg_renderers.c index 15abfddf5..c925c58ee 100644 --- a/webcit/msg_renderers.c +++ b/webcit/msg_renderers.c @@ -377,11 +377,17 @@ int Conditional_MAIL_SUMM_SUBJECT(StrBuf *Target, WCTemplputParams *TP) void examine_msgn(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { wcsession *WCC = WC; + long Offset = 0; + const char *pOffset; CheckConvertBufs(WCC); FreeStrBuf(&Msg->reply_inreplyto); Msg->reply_inreplyto = NewStrBufPlain(NULL, StrLength(HdrLine)); - Msg->reply_inreplyto_hash = ThreadIdHash(HdrLine); + pOffset = strchr(ChrPtr(HdrLine), '/'); + if (pOffset != NULL) { + Offset = pOffset - ChrPtr(HdrLine); + } + Msg->reply_inreplyto_hash = ThreadIdHashOffset(HdrLine, Offset); StrBuf_RFC822_2_Utf8(Msg->reply_inreplyto, HdrLine, WCC->DefaultCharset, @@ -404,11 +410,17 @@ int Conditional_MAIL_SUMM_UNREAD(StrBuf *Target, WCTemplputParams *TP) void examine_wefw(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset) { wcsession *WCC = WC; + long Offset = 0; + const char *pOffset; CheckConvertBufs(WCC); FreeStrBuf(&Msg->reply_references); Msg->reply_references = NewStrBufPlain(NULL, StrLength(HdrLine)); - Msg->reply_references_hash = ThreadIdHash(HdrLine); + pOffset = strchr(ChrPtr(HdrLine), '/'); + if (pOffset != NULL) { + Offset = pOffset - ChrPtr(HdrLine); + } + Msg->reply_references_hash = ThreadIdHashOffset(HdrLine, Offset); StrBuf_RFC822_2_Utf8(Msg->reply_references, HdrLine, WCC->DefaultCharset, @@ -1016,11 +1028,11 @@ void tmplput_EDIT_WIKI_BODY(StrBuf *Target, WCTemplputParams *TP) * to do it again. */ if (!havebstr("attach_button")) { - char *wikipage = strdup(bstr("page")); + StrBuf *wikipage = NewStrBufDup(sbstr("page")); putbstr("format", NewStrBufPlain(HKEY("plain"))); str_wiki_index(wikipage); - msgnum = locate_message_by_uid(wikipage); - free(wikipage); + msgnum = locate_message_by_uid(ChrPtr(wikipage)); + FreeStrBuf(&wikipage); if (msgnum >= 0L) { Buf = NewStrBuf(); read_message(Buf, HKEY("view_message_wikiedit"), msgnum, NULL, &Mime, TP); @@ -1197,40 +1209,6 @@ void render_MAIL_html(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset Mime->Data = Buf; } -#ifdef HAVE_MARKDOWN -/* -char * MarkdownHandleURL(const char* SourceURL, const int len, void* something) -{ - -} -*/ -void render_MAIL_markdown(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) -{ -#include - wc_mime_attachment *Mime = (wc_mime_attachment *) CTX(CTX_MIME_ATACH); - MMIOT *doc; - char *md_as_html = NULL; - const char *format; - - if (StrLength(Mime->Data) == 0) - return; - - format = bstr("format"); - - if ((format == NULL) || - strcmp(format, "plain")) - { - doc = mkd_string(ChrPtr(Mime->Data), StrLength(Mime->Data), 0); - mkd_basename(doc, "/wiki?page="); - mkd_compile(doc, 0); - if (mkd_document(doc, &md_as_html) != EOF) { - FreeStrBuf(&Mime->Data); - Mime->Data = NewStrBufPlain(md_as_html, -1); - } - mkd_cleanup(doc); - } -} -#endif void render_MAIL_UNKNOWN(StrBuf *Target, WCTemplputParams *TP, StrBuf *FoundCharset) { @@ -1574,9 +1552,6 @@ InitModule_MSGRENDERERS RegisterMimeRenderer(HKEY("text/plain"), render_MAIL_text_plain, 1, 3); RegisterMimeRenderer(HKEY("text"), render_MAIL_text_plain, 1, 1); RegisterMimeRenderer(HKEY("text/html"), render_MAIL_html, 1, 100); -#ifdef HAVE_MARKDOWN - RegisterMimeRenderer(HKEY("text/x-markdown"), render_MAIL_markdown, 1, 30); -#endif RegisterMimeRenderer(HKEY(""), render_MAIL_UNKNOWN, 0, 0); /* these headers are citserver replies to MSG4 and friends. one evaluator for each */