- mime->FileName = NewStrBuf();
- StrBuf_RFC822_to_Utf8(mime->FileName, Buf, WC->DefaultCharset, FoundCharset);
-
- mime->PartNum = NewStrBuf();
- StrBufExtract_token(mime->PartNum, HdrLine, 2, '|');
- IsSubSub = (strchr(ChrPtr(mime->PartNum), '.') != NULL);
-
- mime->Disposition = NewStrBuf();
- StrBufExtract_token(mime->Disposition, HdrLine, 3, '|');
-
- mime->ContentType = NewStrBuf();
- StrBufExtract_token(mime->ContentType, HdrLine, 4, '|');
-
- mime->length = StrBufExtract_int(HdrLine, 5, '|');
-
- StrBufTrim(mime->Name);
- StrBufTrim(mime->FileName);
+ 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, '|');
+ StrBufTrim(Mime->PartNum);
+ if (strchr(ChrPtr(Mime->PartNum), '.') != NULL)
+ Mime->level = 2;
+ else
+ Mime->level = 1;
+
+ Mime->Disposition = NewStrBuf();
+ StrBufExtract_token(Mime->Disposition, HdrLine, 3, '|');
+
+ Mime->ContentType = NewStrBuf();
+ StrBufExtract_token(Mime->ContentType, HdrLine, 4, '|');
+ StrBufTrim(Mime->ContentType);
+ StrBufLowerCase(Mime->ContentType);
+
+ Mime->length = StrBufExtract_int(HdrLine, 5, '|');
+
+ if ( (StrLength(Mime->FileName) == 0) && (StrLength(Mime->Name) > 0) ) {
+ StrBufAppendBuf(Mime->FileName, Mime->Name, 0);
+ }