-int ParseMessageListHeaders_Detail(StrBuf *Line,
- const char **pos,
- message_summary *Msg,
- StrBuf *ConversionBuffer)
-{
- wcsession *WCC = WC;
-
- Msg->from = NewStrBufPlain(NULL, StrLength(Line));
- StrBufExtract_NextToken(ConversionBuffer, Line, pos, '|');
- if (StrLength(ConversionBuffer) != 0) {
- /* Handle senders with RFC2047 encoding */
- StrBuf_RFC822_to_Utf8(Msg->from, ConversionBuffer, WCC->DefaultCharset, NULL);
- }
-
- /* node name */
- StrBufExtract_NextToken(ConversionBuffer, Line, pos, '|');
- if ((StrLength(ConversionBuffer) !=0 ) &&
- ( ((WCC->CurRoom.QRFlags & QR_NETWORK)
- || ((strcasecmp(ChrPtr(ConversionBuffer), ChrPtr(WCC->serv_info->serv_nodename))
- && (strcasecmp(ChrPtr(ConversionBuffer), ChrPtr(WCC->serv_info->serv_fqdn))))))))
- {
- StrBufAppendBufPlain(Msg->from, HKEY(" @ "), 0);
- StrBufAppendBuf(Msg->from, ConversionBuffer, 0);
- }
-
- /* Internet address (not used)
- * StrBufExtract_token(Msg->inetaddr, Line, 4, '|');
- */
- StrBufSkip_NTokenS(Line, pos, '|', 1);
- Msg->subj = NewStrBufPlain(NULL, StrLength(Line));
- StrBufExtract_NextToken(ConversionBuffer, Line, pos, '|');
- 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);
- }
- }