summaryrefslogtreecommitdiffabout
path: root/kmicromail/libetpan
Side-by-side diff
Diffstat (limited to 'kmicromail/libetpan') (more/less context) (show whitespace changes)
-rw-r--r--kmicromail/libetpan/mime/mailmime_decode.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/kmicromail/libetpan/mime/mailmime_decode.c b/kmicromail/libetpan/mime/mailmime_decode.c
index dbaeb68..b2ab0f7 100644
--- a/kmicromail/libetpan/mime/mailmime_decode.c
+++ b/kmicromail/libetpan/mime/mailmime_decode.c
@@ -118,6 +118,7 @@ int mailmime_encoded_phrase_parse(const char * default_fromcode,
type = TYPE_ERROR; /* XXX - removes a gcc warning */
-
- while (1) {
+ // LUTZ add
+ int appendNewLine = FALSE;
+ while (1) { //while
r = mailmime_encoded_word_parse(message, length, &cur_token, &word);
@@ -200,5 +201,15 @@ int mailmime_encoded_phrase_parse(const char * default_fromcode,
goto free;
}
-
+ // LUTZ add
+ if ( appendNewLine ) {
+ appendNewLine = FALSE;
+ if (mmap_string_append(gphrase, "\n") == NULL) {
+ free(wordutf8);
+ free(raw_word);
+ res = MAILIMF_ERROR_MEMORY;
+ goto free;
+ }
+ }
+ //fprintf(stderr,"append *%s* \n",wordutf8 );
if (mmap_string_append(gphrase, wordutf8) == NULL) {
free(wordutf8);
@@ -213,5 +224,9 @@ int mailmime_encoded_phrase_parse(const char * default_fromcode,
}
else if (r == MAILIMF_ERROR_PARSE) {
+ // LUTZ add
+ if ( cur_token >= length )
break;
+ ++cur_token;
+ appendNewLine = TRUE;
}
else {