StrBufAppendTemplate(Target, TP, Msg->from, 0);
}
-
-
void examine_subj(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
{
FreeStrBuf(&Msg->subj);
StrBuf_RFC822_to_Utf8(Msg->subj, HdrLine, WC->DefaultCharset, FoundCharset);
}
void tmplput_MAIL_SUMM_SUBJECT(StrBuf *Target, WCTemplputParams *TP)
-{/*////TODO: Fwd: and RE: filter!!*/
-
+{
message_summary *Msg = (message_summary*) CTX;
+
+ if (TP->Tokens->nParameters == 4)
+ {
+ const char *pch;
+ long len;
+
+ GetTemplateTokenString(Target, TP, 3, &pch, &len);
+ if ((len > 0)&&
+ (strstr(ChrPtr(Msg->subj), pch) == NULL))
+ {
+ GetTemplateTokenString(Target, TP, 2, &pch, &len);
+ StrBufAppendBufPlain(Target, pch, len, 0);
+ }
+ }
StrBufAppendTemplate(Target, TP, Msg->subj, 0);
}
int Conditional_MAIL_SUMM_SUBJECT(StrBuf *Target, WCTemplputParams *TP)
{
message_summary *Msg = (message_summary*) CTX;
+
+
return StrLength(Msg->subj) > 0;
}
}
/* In all cases, display the full card */
- display_vcard(Buf, Mime->Data, 0, 1, NULL, Mime->msgnum);
+ display_vcard(Buf, Mime, 0, 1, NULL, -1);
FreeStrBuf(&Mime->Data);
Mime->Data = Buf;
}
void examine_mime_part(message_summary *Msg, StrBuf *HdrLine, StrBuf *FoundCharset)
{
+ const char *Ptr = NULL;
wc_mime_attachment *Mime;
StrBuf *Buf;
Buf = NewStrBuf();
Mime->Name = NewStrBuf();
- StrBufExtract_token(Buf, HdrLine, 0, '|');
+ StrBufExtract_NextToken(Buf, HdrLine, &Ptr, '|');
StrBuf_RFC822_to_Utf8(Mime->Name, Buf, WC->DefaultCharset, FoundCharset);
StrBufTrim(Mime->Name);
- StrBufExtract_token(Buf, HdrLine, 1, '|');
+ StrBufExtract_NextToken(Buf, HdrLine, &Ptr, '|');
Mime->FileName = NewStrBuf();
StrBuf_RFC822_to_Utf8(Mime->FileName, Buf, WC->DefaultCharset, FoundCharset);
StrBufTrim(Mime->FileName);
Mime->PartNum = NewStrBuf();
- StrBufExtract_token(Mime->PartNum, HdrLine, 2, '|');
+ StrBufExtract_NextToken(Mime->PartNum, HdrLine, &Ptr, '|');
StrBufTrim(Mime->PartNum);
if (strchr(ChrPtr(Mime->PartNum), '.') != NULL)
Mime->level = 2;
Mime->level = 1;
Mime->Disposition = NewStrBuf();
- StrBufExtract_token(Mime->Disposition, HdrLine, 3, '|');
+ StrBufExtract_NextToken(Mime->Disposition, HdrLine, &Ptr, '|');
Mime->ContentType = NewStrBuf();
- StrBufExtract_token(Mime->ContentType, HdrLine, 4, '|');
+ StrBufExtract_NextToken(Mime->ContentType, HdrLine, &Ptr, '|');
StrBufTrim(Mime->ContentType);
StrBufLowerCase(Mime->ContentType);
-
if (!strcmp(ChrPtr(Mime->ContentType), "application/octet-stream")) {
StrBufPlain(Mime->ContentType,
GuessMimeByFilename(SKEY(Mime->FileName)), -1);
}
- Mime->length = StrBufExtract_int(HdrLine, 5, '|');
+
+ Mime->length = StrBufExtractNext_int(HdrLine, &Ptr, '|');
+
+ StrBufSkip_NTokenS(HdrLine, &Ptr, '|', 1); /* cbid?? */
+
+ Mime->Charset = NewStrBuf();
+ StrBufExtract_NextToken(Mime->Charset, HdrLine, &Ptr, '|');
+
if ( (StrLength(Mime->FileName) == 0) && (StrLength(Mime->Name) > 0) ) {
StrBufAppendBuf(Mime->FileName, Mime->Name, 0);
long msgnum;
StrBuf *Buf;
- msgnum = locate_message_by_uid(BSTR("page"));
- if (msgnum >= 0L) {
- Buf = NewStrBuf();
- read_message(Buf, HKEY("view_message_wikiedit"), msgnum, NULL, &Mime);
- StrBufAppendTemplate(Target, TP, Buf, 1);
- FreeStrBuf(&Buf);
+ /* Insert the existing content of the wiki page into the editor. But we only want
+ * to do this the first time -- if the user is uploading an attachment we don't want
+ * to do it again.
+ */
+ if (!havebstr("attach_button")) {
+ msgnum = locate_message_by_uid(BSTR("page"));
+ if (msgnum >= 0L) {
+ Buf = NewStrBuf();
+ read_message(Buf, HKEY("view_message_wikiedit"), msgnum, NULL, &Mime);
+ StrBufAppendTemplate(Target, TP, Buf, 1);
+ FreeStrBuf(&Buf);
+ }
}
}
}
+/* DO NOT REORDER OR REMOVE ANY OF THESE */
readloop_struct rlid[] = {
{ {HKEY("do_search")}, servcmd_do_search },
{ {HKEY("headers")}, servcmd_headers },
*/
StrBufSkip_NTokenS(Line, pos, '|', 1);
Msg->subj = NewStrBufPlain(NULL, StrLength(Line));
+
+ FlushStrBuf(ConversionBuffer);
+ /* we assume the subject is the last parameter inside of the list;
+ * thus we don't use the tokenizer to fetch it, since it will hick up
+ * on tokenizer chars inside of the subjects
StrBufExtract_NextToken(ConversionBuffer, Line, pos, '|');
+ */
+ if (*pos != StrBufNOTNULL) {
+ StrBufPlain(ConversionBuffer, *pos,
+ StrLength(Line) - (*pos - ChrPtr(Line)));
+ *pos = StrBufNOTNULL;
+ if ((StrLength(ConversionBuffer) > 0) &&
+ (*(ChrPtr(ConversionBuffer) +
+ StrLength(ConversionBuffer) - 1) == '|'))
+ StrBufCutRight(ConversionBuffer, 1);
+ }
+
if (StrLength(ConversionBuffer) == 0)
StrBufAppendBufPlain(Msg->subj, _("(no subject)"), -1,0);
else {
StrBuf_RFC822_to_Utf8(Msg->subj, ConversionBuffer, WCC->DefaultCharset, NULL);
- if ((StrLength(Msg->subj) > 75) &&
- (StrBuf_Utf8StrLen(Msg->subj) > 75)) {
- StrBuf_Utf8StrCut(Msg->subj, 72);
- StrBufAppendBufPlain(Msg->subj, HKEY("..."), 0);
- }
}
- if ((StrLength(Msg->from) > 25) &&
- (StrBuf_Utf8StrLen(Msg->from) > 25)) {
- StrBuf_Utf8StrCut(Msg->from, 23);
- StrBufAppendBufPlain(Msg->from, HKEY("..."), 0);
- }
return 1;
}