diff options
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -252,7 +252,7 @@ pub fn parse_header(raw_data: &[u8]) -> Result<(MailHeader, usize), MailParseErr } } HeaderParseState::ValueNewline => { - if c == b' ' { + if c == b' ' || c == b'\t' { state = HeaderParseState::Value; continue; } else { @@ -368,6 +368,11 @@ mod tests { assert_eq!(parsed.key, b"Key"); assert_eq!(parsed.value, b"One"); + let (parsed, _) = parse_header(b"Key: One\n\tOverhang").unwrap(); + assert_eq!(parsed.key, b"Key"); + assert_eq!(parsed.value, b"One\n\tOverhang"); + assert_eq!(parsed.get_value().unwrap(), "One Overhang"); + parse_header(b" Leading: Space").unwrap_err(); parse_header(b"Just a string").unwrap_err(); parse_header(b"Key\nBroken: Value").unwrap_err(); |