Browse Source

melib/email: add flags arg to Mail::new

master
Manos Pitsidianakis 2 years ago
parent
commit
be57b65dae
Signed by: epilys GPG Key ID: 73627C2F690DF710
  1. 4
      melib/src/email.rs
  2. 2
      melib/src/email/attachments.rs
  3. 2
      src/bin.rs
  4. 31
      src/components/mail/view.rs

4
melib/src/email.rs

@ -94,9 +94,9 @@ impl Deref for Mail {
}
impl Mail {
pub fn new(bytes: Vec<u8>) -> Result<Self> {
pub fn new(bytes: Vec<u8>, flags: Option<Flag>) -> Result<Self> {
Ok(Mail {
envelope: Envelope::from_bytes(&bytes, None)?,
envelope: Envelope::from_bytes(&bytes, flags)?,
bytes,
})
}

2
melib/src/email/attachments.rs

@ -362,7 +362,7 @@ impl fmt::Display for Attachment {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self.content_type {
ContentType::MessageRfc822 => {
match Mail::new(self.body.display_bytes(&self.raw).to_vec()) {
match Mail::new(self.body.display_bytes(&self.raw).to_vec(), None) {
Ok(wrapper) => write!(
f,
"message/rfc822: {} - {} - {}",

2
src/bin.rs

@ -309,7 +309,7 @@ fn run_app(opt: Opt) -> Result<()> {
if let Some(SubCommand::View { path }) = opt.subcommand {
let bytes = std::fs::read(&path)
.chain_err_summary(|| format!("Could not read from `{}`", path.display()))?;
let wrapper = Mail::new(bytes)
let wrapper = Mail::new(bytes, Some(Flag::SEEN))
.chain_err_summary(|| format!("Could not parse `{}`", path.display()))?;
state = State::new(
Some(Settings::without_accounts().unwrap_or_default()),

31
src/components/mail/view.rs

@ -481,20 +481,25 @@ impl MailView {
}
} else {
match u.content_type() {
ContentType::MessageRfc822 => match Mail::new(u.body().to_vec()) {
Ok(wrapper) => {
context
.replies
.push_back(UIEvent::Action(Tab(New(Some(Box::new(
EnvelopeView::new(wrapper, None, None, self.coordinates.0),
))))));
}
Err(e) => {
context.replies.push_back(UIEvent::StatusEvent(
StatusEvent::DisplayMessage(format!("{}", e)),
));
ContentType::MessageRfc822 => {
match Mail::new(u.body().to_vec(), Some(Flag::SEEN)) {
Ok(wrapper) => {
context.replies.push_back(UIEvent::Action(Tab(New(Some(
Box::new(EnvelopeView::new(
wrapper,
None,
None,
self.coordinates.0,
)),
)))));
}
Err(e) => {
context.replies.push_back(UIEvent::StatusEvent(
StatusEvent::DisplayMessage(format!("{}", e)),
));
}
}
},
}
ContentType::Text { .. } | ContentType::PGPSignature => {
self.mode = ViewMode::Attachment(lidx);

Loading…
Cancel
Save