Manos Pitsidianakis
8dc4465c58
Fix toml value ser after update of toml dependency
...
Update in v0.8.5 required changes to serialization code;
toml::to_string() now serializes TOML documents, not values.
This commit replaces all occurances with toml::Value serializations.
Fixes: 8fff7401
("Update yanked zerocopy dependency")
Closes : #429
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-29 21:15:04 +03:00
Manos Pitsidianakis
5110813e87
melib/maildir: refactor MaildirOp and watch()
...
Refactor to remove unwraps and add None checks with returning errors
where appropriate.
Hopefully addresses #426
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-29 14:58:07 +03:00
Manos Pitsidianakis
a82d1e1ebe
mail/listing.rs: fix RowsState::rename_env stale data
...
RowsState::rename_env was not updating all EnvelopeHash related fields
when a receiving an EnvelopeRename event, which can cause panics if the
listing tries to index it.
Concerns #426
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-29 12:30:33 +03:00
Herby Gillot
dfc2bb4311
readme: add link to MacPorts page for meli
...
Signed-off-by: Herby Gillot <herby.gillot@gmail.com>
2024-06-29 02:22:44 -04:00
Manos Pitsidianakis
84d93d6555
melib/imap: add support for ID extension (opt-in)
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:11 +03:00
Manos Pitsidianakis
af6838c20c
melib: add metadata field to MailBackendCapabilities
...
Add field for arbitrary metadata as a serde_json::Value.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:11 +03:00
Manos Pitsidianakis
d40ee6928f
melib/imap: extract tests mod from protocol_parser
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:11 +03:00
Manos Pitsidianakis
7c47f70217
melib/sieve: extract test and parser modules to files
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:11 +03:00
Manos Pitsidianakis
ebc1fa3b8a
melib/sieve: move module to self dir
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:11 +03:00
Manos Pitsidianakis
fd76df7889
meli/state: use MELI_CONFIG env var in mock tests
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:10 +03:00
Manos Pitsidianakis
5b6c1aa88c
mail/status.rs: don't show all background jobs
...
Information can be retrieved from :manage-jobs tab, so it's redundant to
repeat it here.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:10 +03:00
Manos Pitsidianakis
e96e9789db
melib/imap: don't discard pre-auth capabilities
...
The library user can retrieve capabilities from a mail backend, and they
might want to see pre-auth capabilities as well.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:10 +03:00
Manos Pitsidianakis
e3c1656e05
melib/imap: fix LOGINDISABLED support
...
LOGINDISABLED disables the LOGIN command, not authenticating in general;
doh! 🤦 🤦 🤦 🤦
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:10 +03:00
Manos Pitsidianakis
084a222a51
mail/status.rs: remove subscribed mailboxes list
...
Info is also available in :manage-mailboxes tab, so it's redundant.
Remove it.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:10 +03:00
Manos Pitsidianakis
122a2a4d76
accounts: drain event_queue when mailbox made available
...
RefreshEvents where put into event_queue field, but were never processed
again. Process them when Mailbox becomes available.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:10 +03:00
Manos Pitsidianakis
97aa6a8e6c
meli/docs: replace obsolete .Tn macro with .Em
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:09 +03:00
Manos Pitsidianakis
9fb5bc41b4
melib/imap: impl AUTH=ANONYMOUS (RFC4505)
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:09 +03:00
Manos Pitsidianakis
1cce8c1162
melib/imap: accept invalid "+" CRLF cont req
...
Some servers erroneously send a "+" CRLF sequence instead of "+" SP
CRLF.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:09 +03:00
Manos Pitsidianakis
a9e9d952d5
melib/imap: change termination_string arg to Option
...
Change ImapConnection::read_lines function argument termination_string
from &[u8] to Option<&[u8]>.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:09 +03:00
Manos Pitsidianakis
eb27773b47
meli: add pager.named_filters setting
...
This new setting defines shell commands with names that can be applied
at any time on a text attachment by using the `filter` command without
any arguments.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:09 +03:00
Manos Pitsidianakis
3251e7bd61
meli/config_macros.rs: scrub skip_serializing_if from attributes
...
If a config field has a skip_serializing_if value in the serde
attribute, remove it.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:09 +03:00
Manos Pitsidianakis
6e1fea8059
melib/jmap: show suggestions on Unauthorized error
...
Show suggestions for solving Unauthorized connection errors.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:08 +03:00
Manos Pitsidianakis
15f3a3fba6
meli/view: retry fetch envelope only if err.is_recoverable()
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:08 +03:00
Manos Pitsidianakis
f9a3b33397
melib/imap/operations: return NotFound on empty FETCH
...
If UID FETCH returns an OK response but without untagged fetch
responses, it means the UID was not found. Return a NotFound error in
this case and a ProtocolError in other error cases.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:08 +03:00
Manos Pitsidianakis
dd525bd940
meli/accounts: use Error::is_recoverable
...
Replace IsOnline::is_recoverable(err: &Error) with
new method Error::is_recoverable()
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:08 +03:00
Manos Pitsidianakis
8c880dc747
melib/error: add {Error,ErrorKind}::is_recoverable()
...
Add methods to guess whether the error is transient and can be recovered
from.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:08 +03:00
Manos Pitsidianakis
7200589a9e
melib/error: add ErrorKind::NotFound
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:08 +03:00
Manos Pitsidianakis
430cbdfd42
scripts/make_html_manual_page.py: fix python errors
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:07 +03:00
Manos Pitsidianakis
fe604bf0ea
Update "openssl" dependency to 0.10.64
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:07 +03:00
Manos Pitsidianakis
9fcb0a0451
Add cargo-deny configuration file deny.toml
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:07 +03:00
Manos Pitsidianakis
bbe2cffafe
Add rust-bindgen's friends.sh to scripts/
...
I run something similar to get each releases' contributor names, and
rust-bindgen happens to have this in a script, so let's import it.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:07 +03:00
Manos Pitsidianakis
6da4e2eca6
Replace stringify! in Debug impls with type checked macro
...
Add identify! macro which expands to stringify! but also const type
checks the value to prevent typos/wrong values.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:07 +03:00
Manos Pitsidianakis
e107d613a0
melib/backends: add prelude module for import cleanup
...
Add a prelude module under melib::backends that exports all types needed
to interact with a mail backend. This reduces the number of imports in
every related file.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:05 +03:00
Manos Pitsidianakis
c99633e141
Update futures dependency 0.3.28 -> 0.3.30
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:14:05 +03:00
Manos Pitsidianakis
9ab404c57a
view/filters.rs: add pgp signed attachment support
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:14:05 +03:00
Manos Pitsidianakis
c4f7b77a39
view: rework attachment rendering logic with filters
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:14:05 +03:00
Andrei Zisu
c04b593bdf
Use BODY instead of RFC822
...
RFC3501 seems to prefer BODY attributes as the more modern equivalent
to RFC822. For example, this also allows us to use BODY.PEEK. Since the
fetch methods in melib are tightly coupled with the parser, we have to
add this here if we want to use BODY attributes during fetch.
2024-06-28 11:14:05 +03:00
Manos Pitsidianakis
0ffe7fa5b3
melib: add text/plain or text/html arg for text decoding
...
In the function that decodes attachments to text, the default was
Text::Plain. Now it's passed via an argument so that Text::Html can also
be used.
2024-06-28 11:14:05 +03:00
Andrei Zisu
b4579075a8
melib/imap: Allow XOAUTH2 string passed as string
...
For cases in which the user of melib already knows the token and auth
string and doesn't have to call an outside command.
2024-06-28 11:14:04 +03:00
Andrei Zisu
6f61176a99
Remove unecessary mut modifier
...
This also makes sense semantically since as_bytes shouldn't be
performing any mutations.
2024-06-28 11:14:01 +03:00
Manos Pitsidianakis
7bdc8f52b1
mail/listing: highlight_self also when self is sender
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-15 16:45:10 +03:00
Manos Pitsidianakis
7e8d19afc7
melib/email.rs: add Envelope::sender_any
...
Similar to Envelope::recipient_any, this method searches if its argument
exists in From: or Author: headers.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-15 16:45:09 +03:00
Manos Pitsidianakis
d3a45b3442
melib/notmuch: make default shared lib name a const
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-15 16:45:09 +03:00
Manos Pitsidianakis
27c4876fca
mail/listing: Prevent log flooding when drawing listing entries
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-15 16:45:09 +03:00
Manos Pitsidianakis
ff3fe07758
Fix new 1.79.0 clippy lints
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-15 16:45:09 +03:00
Damian Poddebniak
7856ea33f0
refactor: Transition more to imap-codec
2024-06-08 17:50:35 +03:00
Damian Poddebniak
a8956bafc8
chore: Update to imap-codec
v2.0.0-alpha.1
2024-06-08 17:49:55 +03:00
Manos Pitsidianakis
f1332e82b6
Bump version to 0.8.6
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-08 11:55:13 +03:00
Manos Pitsidianakis
819551876d
view/envelope: fix decryption error not shown
...
Closes #409
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-05 19:46:38 +03:00
Manos Pitsidianakis
01bc62e0ad
melib/attachments: add new_plaintext method
...
Add new convenience method AttachmentBuilder::new_plaintext(Vec<u8>)
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-05 19:46:38 +03:00