diff --git a/resources/unstructured.json b/resources/unstructured.json index d68ea06..b5761af 100644 --- a/resources/unstructured.json +++ b/resources/unstructured.json @@ -118,5 +118,9 @@ { "header": "Les Communs - =?utf-8?Q?R=C3=A9capitulatif?= de la\r\n =?utf-8?Q?r=C3=A9servation?= 13510164434879\r\n", "expected": "Les Communs - Récapitulatif de la réservation 13510164434879" + }, + { + "header": "=?utf-8?Q?Peri=C3=B1an?= missing text", + "expected": "Periñan missing text" } ] \ No newline at end of file diff --git a/src/parsers/fields/unstructured.rs b/src/parsers/fields/unstructured.rs index b92367d..0cd1e8f 100644 --- a/src/parsers/fields/unstructured.rs +++ b/src/parsers/fields/unstructured.rs @@ -84,7 +84,13 @@ impl<'x> MessageStream<'x> { parser.token_end = self.offset(); } - HeaderValue::Empty + parser.add_token(self); + + match parser.tokens.len() { + 1 => HeaderValue::Text(parser.tokens.pop().unwrap()), + 0 => HeaderValue::Empty, + _ => HeaderValue::Text(parser.tokens.concat().into()), + } } }