summaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 229e226..3dd4d23 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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();