summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKartikaya Gupta <kats@seldon.staktrace.com>2016-06-22 09:06:22 -0400
committerKartikaya Gupta <kats@seldon.staktrace.com>2016-06-22 10:10:54 -0400
commitfa2719efb0d164740d49d37a154212ad485dc7b1 (patch)
tree1d611347d3562bb72c03a144871f34fe53bbd52e /src
parent8e8844a5aaba94df32ab037acd3bae028d2e19e8 (diff)
Accept lowercase transfer-codings for the encoded-word
Diffstat (limited to 'src')
-rw-r--r--src/lib.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/lib.rs b/src/lib.rs
index e42b041..5331159 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -172,8 +172,8 @@ impl<'a> MailHeader<'a> {
let input = &encoded[ix_delim2 + 1..];
let decoded = match transfer_coding {
- "B" => try_none!(base64::u8de(input.as_bytes()).ok()),
- "Q" => {
+ "B" | "b" => try_none!(base64::u8de(input.as_bytes()).ok()),
+ "Q" | "q" => {
let d = quoted_printable::decode_str(&input.replace("_", " "),
quoted_printable::ParseMode::Robust);
try_none!(d.ok())
@@ -779,6 +779,12 @@ mod tests {
let (parsed, _) = parse_header(b"Key: \"=?utf-8?Q?value?=\"").unwrap();
assert_eq!(parsed.get_value().unwrap(), "\"value\"");
+
+ let (parsed, _) = parse_header(b"Subject: =?utf-8?q?=5BOntario_Builder=5D_Understanding_home_shopping_=E2=80=93_a_q?=\n \
+ =?utf-8?q?uick_survey?=")
+ .unwrap();
+ assert_eq!(parsed.get_key().unwrap(), "Subject");
+ assert_eq!(parsed.get_value().unwrap(), "[Ontario Builder] Understanding home shopping \u{2013} a q uick survey");
}
#[test]