From 24b4c117e7e8c7a4737d1b7e1b461e29734b5c99 Mon Sep 17 00:00:00 2001 From: Manos Pitsidianakis Date: Tue, 12 Jan 2021 18:56:07 +0200 Subject: [PATCH] melib: don't use both {set,push}_references() set_references() already calls push_references() --- melib/src/backends/imap.rs | 12 ----------- melib/src/backends/imap/cache/sync.rs | 24 --------------------- melib/src/backends/imap/protocol_parser.rs | 4 +++- melib/src/backends/imap/untagged.rs | 25 ---------------------- melib/src/backends/imap/watch.rs | 12 ----------- melib/src/backends/jmap/objects/email.rs | 4 +++- melib/src/backends/nntp/protocol_parser.rs | 9 -------- src/plugins/backend.rs | 9 -------- 8 files changed, 6 insertions(+), 93 deletions(-) diff --git a/melib/src/backends/imap.rs b/melib/src/backends/imap.rs index 9aff9b2be..062ac3cca 100644 --- a/melib/src/backends/imap.rs +++ b/melib/src/backends/imap.rs @@ -1760,18 +1760,6 @@ async fn fetch_hlpr(state: &mut FetchState) -> Result> { let env = envelope.as_mut().unwrap(); env.set_hash(generate_envelope_hash(&mailbox_path, &uid)); if let Some(value) = references { - let parse_result = crate::email::parser::address::msg_id_list(value); - if let Ok((_, value)) = parse_result { - let prev_val = env.references.take(); - for v in value { - env.push_references(v); - } - if let Some(prev) = prev_val { - for v in prev.refs { - env.push_references(v); - } - } - } env.set_references(value); } let mut tag_lck = uid_store.collection.tag_index.write().unwrap(); diff --git a/melib/src/backends/imap/cache/sync.rs b/melib/src/backends/imap/cache/sync.rs index a6b628a16..f7fbc9138 100644 --- a/melib/src/backends/imap/cache/sync.rs +++ b/melib/src/backends/imap/cache/sync.rs @@ -157,18 +157,6 @@ impl ImapConnection { let env = envelope.as_mut().unwrap(); env.set_hash(generate_envelope_hash(&mailbox_path, &uid)); if let Some(value) = references { - let parse_result = crate::email::parser::address::msg_id_list(value); - if let Ok((_, value)) = parse_result { - let prev_val = env.references.take(); - for v in value { - env.push_references(v); - } - if let Some(prev) = prev_val { - for v in prev.refs { - env.push_references(v); - } - } - } env.set_references(value); } let mut tag_lck = self.uid_store.collection.tag_index.write().unwrap(); @@ -455,18 +443,6 @@ impl ImapConnection { let env = envelope.as_mut().unwrap(); env.set_hash(generate_envelope_hash(&mailbox_path, &uid)); if let Some(value) = references { - let parse_result = crate::email::parser::address::msg_id_list(value); - if let Ok((_, value)) = parse_result { - let prev_val = env.references.take(); - for v in value { - env.push_references(v); - } - if let Some(prev) = prev_val { - for v in prev.refs { - env.push_references(v); - } - } - } env.set_references(value); } let mut tag_lck = self.uid_store.collection.tag_index.write().unwrap(); diff --git a/melib/src/backends/imap/protocol_parser.rs b/melib/src/backends/imap/protocol_parser.rs index 68a7d4cc6..f3edb613d 100644 --- a/melib/src/backends/imap/protocol_parser.rs +++ b/melib/src/backends/imap/protocol_parser.rs @@ -1318,7 +1318,9 @@ pub fn envelope(input: &[u8]) -> IResult<&[u8], Envelope> { } if let Some(in_reply_to) = in_reply_to { env.set_in_reply_to(&in_reply_to); - env.push_references(env.in_reply_to().unwrap().clone()); + if let Some(in_reply_to) = env.in_reply_to().cloned() { + env.push_references(in_reply_to); + } } if let Some(message_id) = message_id { diff --git a/melib/src/backends/imap/untagged.rs b/melib/src/backends/imap/untagged.rs index 479480821..58d3cb983 100644 --- a/melib/src/backends/imap/untagged.rs +++ b/melib/src/backends/imap/untagged.rs @@ -224,18 +224,6 @@ impl ImapConnection { let env = envelope.as_mut().unwrap(); env.set_hash(generate_envelope_hash(&mailbox.imap_path(), &uid)); if let Some(value) = references { - let parse_result = crate::email::parser::address::msg_id_list(value); - if let Ok((_, value)) = parse_result { - let prev_val = env.references.take(); - for v in value { - env.push_references(v); - } - if let Some(prev) = prev_val { - for v in prev.refs { - env.push_references(v); - } - } - } env.set_references(value); } let mut tag_lck = self.uid_store.collection.tag_index.write().unwrap(); @@ -366,19 +354,6 @@ impl ImapConnection { let env = envelope.as_mut().unwrap(); env.set_hash(generate_envelope_hash(&mailbox.imap_path(), &uid)); if let Some(value) = references { - let parse_result = - crate::email::parser::address::msg_id_list(value); - if let Ok((_, value)) = parse_result { - let prev_val = env.references.take(); - for v in value { - env.push_references(v); - } - if let Some(prev) = prev_val { - for v in prev.refs { - env.push_references(v); - } - } - } env.set_references(value); } let mut tag_lck = self.uid_store.collection.tag_index.write().unwrap(); diff --git a/melib/src/backends/imap/watch.rs b/melib/src/backends/imap/watch.rs index 8dc797f74..2c9c82b61 100644 --- a/melib/src/backends/imap/watch.rs +++ b/melib/src/backends/imap/watch.rs @@ -374,18 +374,6 @@ pub async fn examine_updates( let env = envelope.as_mut().unwrap(); env.set_hash(generate_envelope_hash(&mailbox.imap_path(), &uid)); if let Some(value) = references { - let parse_result = crate::email::parser::address::msg_id_list(value); - if let Ok((_, value)) = parse_result { - let prev_val = env.references.take(); - for v in value { - env.push_references(v); - } - if let Some(prev) = prev_val { - for v in prev.refs { - env.push_references(v); - } - } - } env.set_references(value); } let mut tag_lck = uid_store.collection.tag_index.write().unwrap(); diff --git a/melib/src/backends/jmap/objects/email.rs b/melib/src/backends/jmap/objects/email.rs index 20e821247..a9111c063 100644 --- a/melib/src/backends/jmap/objects/email.rs +++ b/melib/src/backends/jmap/objects/email.rs @@ -266,7 +266,9 @@ impl std::convert::From for crate::Envelope { } if let Some(ref in_reply_to) = t.in_reply_to { env.set_in_reply_to(in_reply_to[0].as_bytes()); - env.push_references(env.in_reply_to().unwrap().clone()); + if let Some(in_reply_to) = env.in_reply_to().cloned() { + env.push_references(in_reply_to); + } } if let Some(v) = t.headers.get("References") { env.set_references(v.as_bytes()); diff --git a/melib/src/backends/nntp/protocol_parser.rs b/melib/src/backends/nntp/protocol_parser.rs index 2bf2a516c..c9d78e476 100644 --- a/melib/src/backends/nntp/protocol_parser.rs +++ b/melib/src/backends/nntp/protocol_parser.rs @@ -144,15 +144,6 @@ pub fn over_article(input: &str) -> IResult<&str, (UID, Envelope)> { } if let Some(references) = references { - { - if let Ok((_, r)) = - crate::email::parser::address::msg_id_list(references.as_bytes()) - { - for v in r { - env.push_references(v); - } - } - } env.set_references(references.as_bytes()); } diff --git a/src/plugins/backend.rs b/src/plugins/backend.rs index 23b3f9e53..897ef4a2e 100644 --- a/src/plugins/backend.rs +++ b/src/plugins/backend.rs @@ -155,15 +155,6 @@ impl MailBackend for PluginBackend { env.set_subject(value); } if !references.is_empty() { - let parse_result = - melib::email::parser::address::references( - references.as_bytes(), - ); - if parse_result.is_ok() { - for v in parse_result.unwrap().1 { - env.push_references(v); - } - } env.set_references(references.as_bytes()); }