private bool parse()
{
bool error = false;
if ( this.headers.Count>0 ) {
return !error;
}
System.String line = System.String.Empty;
this.message.SeekPoint ( this.startpoint );
this.message.Encoding = anmar.SharpMimeTools.SharpMimeHeader.default_encoding;
for ( line=this.message.ReadUnfoldedLine(); line!=null ; line=this.message.ReadUnfoldedLine() ) {
if ( line.Length == 0 ) {
this.endpoint = this.message.Position_preRead;
this.startbody = this.message.Position;
this.message.ReadLine_Undo(line);
break;
} else {
String [] headerline = line.Split ( new Char[] {':'}, 2);
if ( headerline.Length == 2 ) {
headerline[1] = headerline[1].TrimStart(new Char[] {' '});
if ( this.headers.Contains ( headerline[0]) ) {
this.headers[headerline[0]] = System.String.Concat(this.headers[headerline[0]], "\r\n", headerline[1]);
} else {
this.headers.Add (headerline[0].ToLower(), headerline[1]);
}
}
}
}
this.mt = new HeaderInfo ( this.headers );
return !error;
}