diff options
Diffstat (limited to 'src/core/rfc822/MCMessageParser.cc')
-rw-r--r-- | src/core/rfc822/MCMessageParser.cc | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/core/rfc822/MCMessageParser.cc b/src/core/rfc822/MCMessageParser.cc index 0366d597..d5bf84e7 100644 --- a/src/core/rfc822/MCMessageParser.cc +++ b/src/core/rfc822/MCMessageParser.cc @@ -30,6 +30,25 @@ void MessageParser::init() MessageParser::MessageParser(Data * data) { init(); + + const char * start = NULL; + unsigned int length = 0; + if (data->length() > 5) { + if (strncmp(data->bytes(), "From ", 5) == 0) { + start = data->bytes(); + for(unsigned int i = 0 ; i < data->length() ; i ++) { + if (start[i] == '\n') { + start = start + i + 1; + length = data->length() - (i + 1); + break; + } + } + } + } + if (start != NULL) { + data = Data::dataWithBytes(start, length); + } + mData = (Data *) data->retain(); mailmessage * msg; |