melib/imap: fix ENVELOPE parsing in untagged responses

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
pull/390/head
Manos Pitsidianakis 4 weeks ago
parent a9c3b151f1
commit a8c7582fa3
No known key found for this signature in database
GPG Key ID: 7729C7707F7E09D0

@ -1334,12 +1334,24 @@ pub fn quoted(input: &[u8]) -> IResult<&[u8], Vec<u8>> {
}
let mut i = 1;
let mut escape_next = false;
while i < input.len() {
if input[i] == b'\"' && input[i - 1] != b'\\' {
return match crate::email::parser::encodings::phrase(&input[1..i], false) {
Ok((_, out)) => Ok((&input[i + 1..], out)),
e => e,
};
match (input[i], escape_next) {
(b'\\', false) => {
escape_next = true;
}
(b'\\', true) => {
escape_next = false;
}
(b'\"', false) => {
return match crate::email::parser::encodings::phrase(&input[1..i], false) {
Ok((_, out)) => Ok((&input[i + 1..], out)),
e => e,
};
}
_ => {
escape_next = false;
}
}
i += 1;
}

Loading…
Cancel
Save