struct calview *calv
)
{
+ StrBuf *Buf;
+ size_t BufLen;
char buf[1024];
char from[128] = "";
char mime_partnum[256];
serv_getln(buf, sizeof buf);
if (buf[0] != '1') return;
- while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
- if (!strncasecmp(buf, "part=", 5)) {
- extract_token(mime_filename, &buf[5], 1, '|', sizeof mime_filename);
- extract_token(mime_partnum, &buf[5], 2, '|', sizeof mime_partnum);
- extract_token(mime_disposition, &buf[5], 3, '|', sizeof mime_disposition);
- extract_token(mime_content_type, &buf[5], 4, '|', sizeof mime_content_type);
- mime_length = extract_int(&buf[5], 5);
+ Buf = NewStrBuf();
+ while (BufLen = StrBuf_ServGetlnBuffered(Buf), strcmp(ChrPtr(Buf), "000")) {
+ if (!strncasecmp(ChrPtr(Buf), "part=", 5)) {
+ extract_token(mime_filename, &ChrPtr(Buf)[5], 1, '|', sizeof mime_filename);
+ extract_token(mime_partnum, &ChrPtr(Buf)[5], 2, '|', sizeof mime_partnum);
+ extract_token(mime_disposition, &ChrPtr(Buf)[5], 3, '|', sizeof mime_disposition);
+ extract_token(mime_content_type, &ChrPtr(Buf)[5], 4, '|', sizeof mime_content_type);
+ mime_length = extract_int(&ChrPtr(Buf)[5], 5);
if ( (!strcasecmp(mime_content_type, "text/calendar"))
|| (!strcasecmp(mime_content_type, "application/ics"))
strcpy(relevant_partnum, mime_partnum);
}
}
- else if (!strncasecmp(buf, "from=", 4)) {
- extract_token(from, buf, 1, '=', sizeof(from));
+ else if (!strncasecmp(ChrPtr(Buf), "from=", 4)) {
+ extract_token(from, ChrPtr(Buf), 1, '=', sizeof(from));
}
}
+ FreeStrBuf(&Buf);
if (!IsEmptyStr(relevant_partnum)) {
relevant_source = load_mimepart(msgnum, relevant_partnum);