X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fmessages.c;h=049b1f10f7cb29adc23d2e46d9c2b8e3bfeb4681;hb=b6909588a983810105144077a936ecdde03ee85c;hp=6d83128d2107041ac388cf19d9e3c0ec4e2a9b48;hpb=6656aef08918a552b006f996ed0032041aac38bc;p=citadel.git diff --git a/webcit/messages.c b/webcit/messages.c index 6d83128d2..049b1f10f 100644 --- a/webcit/messages.c +++ b/webcit/messages.c @@ -1347,6 +1347,62 @@ void display_enter(void) return; } + + /* + * If the "replying_to" variable is set, it refers to a message + * number from which we must extract some header fields... + */ + long replying_to = lbstr("replying_to"); + if (replying_to > 0) { + char wefw[1024] = ""; + char msgn[1024] = ""; + serv_printf("MSG0 %ld|1", replying_to); + serv_getln(buf, sizeof buf); + if (buf[0] == '1') while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { + + if ( (!strncasecmp(buf, "subj=", 5)) && (strlen(buf) > 5) ) { + StrBuf *subj = NewStrBuf(); + if (strncasecmp(&buf[5], "Re:", 3)) { + StrBufAppendBufPlain(subj, HKEY("Re: "), 0); + } + StrBufAppendBufPlain(subj, &buf[5], -1, 0); + PutBstr(HKEY("subject"), subj); + } + + else if (!strncasecmp(buf, "wefw=", 5)) { + safestrncpy(wefw, &buf[5], sizeof wefw); + + /* Trim down excessively long lists of thread references. We eliminate the + * second one in the list so that the thread root remains intact. + */ + int rrtok = num_tokens(wefw, '|'); + int rrlen = strlen(wefw); + if ( ((rrtok >= 3) && (rrlen > 900)) || (rrtok > 10) ) { + remove_token(wefw, 1, '|'); + } + } + + else if (!strncasecmp(buf, "msgn=", 5)) { + safestrncpy(msgn, &buf[5], sizeof msgn); + } + + } + + if (strlen(wefw) + strlen(msgn) > 0) { + StrBuf *refs = NewStrBuf(); + if (!IsEmptyStr(wefw)) { + StrBufAppendBufPlain(refs, wefw, -1, 0); + } + if ( (!IsEmptyStr(wefw)) && (!IsEmptyStr(msgn)) ) { + StrBufAppendBufPlain(refs, HKEY("|"), 0); + } + if (!IsEmptyStr(msgn)) { + StrBufAppendBufPlain(refs, msgn, -1, 0); + } + PutBstr(HKEY("references"), refs); + } + } + /* * Otherwise proceed normally. * Do a custom room banner with no navbar...