diff options
author | Kartikaya Gupta <kgupta@mozilla.com> | 2016-06-06 21:34:57 -0400 |
---|---|---|
committer | Kartikaya Gupta <kgupta@mozilla.com> | 2016-06-08 08:39:15 -0400 |
commit | bdf19c2739bfce263daafbf4df50d375f84d13b7 (patch) | |
tree | d5ad1c267d76ca2fdcbcd7ef4efb6ad46b51e9d7 | |
parent | 9e679d454a313af6e8127994e24de1c072fced51 (diff) |
Allow tab characters in header value overhangs
-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(); |