diff options
Diffstat (limited to 'src/cmd/remove.rs')
-rw-r--r-- | src/cmd/remove.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/cmd/remove.rs b/src/cmd/remove.rs index 991c835..2779add 100644 --- a/src/cmd/remove.rs +++ b/src/cmd/remove.rs @@ -10,9 +10,14 @@ pub fn remove( if let Some(p) = ms.maildir_path.read().unwrap().clone() { let md = open_submaildir(p, &folder); - md.delete(&mid).map_err(varlink::map_context!())?; - - call.reply() + let res = md.delete(&mid); + match res { + Err(e) if e.kind() == std::io::ErrorKind::NotFound => { + call.reply_invalid_mid(folder, mid) + } + Err(e) => Err(varlink::context!(e, varlink::ErrorKind::from(&e))), + Ok(()) => call.reply(), + } } else { call.reply_not_initialized() } |