Buf = NewStrBuf();
/** If it's my vCard I can edit it */
if ( (!strcasecmp(ChrPtr(WCC->CurRoom.name), USERCONFIGROOM))
- || (!strcasecmp(&(ChrPtr(WCC->CurRoom.name)[11]), USERCONFIGROOM))
- || (WC->CurRoom.view == VIEW_ADDRESSBOOK)
+ || ((StrLength(WCC->CurRoom.name) > 11) &&
+ (!strcasecmp(&(ChrPtr(WCC->CurRoom.name)[11]), USERCONFIGROOM)))
+ || (WCC->CurRoom.view == VIEW_ADDRESSBOOK)
) {
StrBufAppendPrintf(Buf, "<a href=\"edit_vcard?msgnum=%ld?partnum=%s\">",
Mime->msgnum, ChrPtr(Mime->PartNum));
void tmplput_MAIL_SUMM_PERMALINK(StrBuf *Target, WCTemplputParams *TP)
{
message_summary *Msg = (message_summary*) CTX(CTX_MAILSUM);
- char perma_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);
- StrBufAppendPrintf(Target, "%s", perma_link);
+ StrBuf *perma_link;
+ const StrBuf *View;
+
+ perma_link = NewStrBufPlain(HKEY("/readfwd?go="));
+ StrBufUrlescAppend(perma_link, WC->CurRoom.name, NULL);
+ View = SBSTR("view");
+ if (View != NULL) {
+ StrBufAppendBufPlain(perma_link, HKEY("?view="), 0);
+ StrBufAppendBuf(perma_link, View, 0);
+ }
+ StrBufAppendBufPlain(perma_link, HKEY("?start_reading_at="), 0);
+ StrBufAppendPrintf(perma_link, "%ld#%ld", Msg->msgnum, Msg->msgnum);
+ StrBufAppendBuf(Target, perma_link, 0);
+ FreeStrBuf(&perma_link);
}
FreeStrBuf(&Mime->Data);
Mime->Data = NewStrBufPlain(md_as_html, -1);
}
-// free(md_as_html);
mkd_cleanup(doc);
}
}