Commit Graph

335 Commits (7432be5aaa0f305c5253908b0d8bc40473041e51)

Author SHA1 Message Date
Manos Pitsidianakis d9b568cfb4
melib/envelope: decode other_headers values 5 years ago
Manos Pitsidianakis 7732b851e6
melib: fix minor header parsing errors
- set_subject checked if last byte was control character instead of last
character. Characters can be multi-byte, duh.
- email::parser::date didn't provide for Date values that had -0000
instead of +0000 (that's a chrono requirement/bug)
5 years ago
Manos Pitsidianakis 81c70b0136
melib: small test cosmetic fixes 5 years ago
Manos Pitsidianakis e79d9aa1c2
melib/parser: parse quote-printable CRLF soft breaks
Check for CRLF soft breaks after checking for LF ones
5 years ago
Manos Pitsidianakis 9fae0f2fa3
melib/imap: prevent minor blocking cases 5 years ago
Manos Pitsidianakis f05a4205f7
melib/ui: small fixes
- melib/imap: accept quoted strings with escaped quotes in
protocol_parser
- ui/accounts: return unavailabity correctly if folder's worker slot is
empty instead of judging only by its vacancy
- ui/MailView: set view as not dirty if envelope loading from backend
fails so that it stops requesting it in every subsequent redraw
5 years ago
Manos Pitsidianakis 6f76cd9acc
melib: add special_usage() method to BackendFolder
Eventually after loading potential usage values from configuration,
backends will be able to change the usage values themselves. IMAP and
JMAP have the ability to set Mailbox roles (IMAP needs LIST-SPECIAL
extension
5 years ago
Manos Pitsidianakis bce97d71bb
testing/imap_conn: update imapconn shell use 5 years ago
Manos Pitsidianakis 504b658f68
melib/imap: add UidFetchResponse struct and parser
Add handwritten parser for UID FETCH responses and use it for all UID
FETCH calls.
5 years ago
Manos Pitsidianakis 569127fac5
melib/imap: detect untagged CAPABILITY responses
Gmail sends an untagged CAPABILITY response before accepting login, so
be smarter when logging in
5 years ago
Manos Pitsidianakis 8235af9237
melib/imap: quote mailbox names on SELECT/EXAMINE 5 years ago
Manos Pitsidianakis a20e08eb43
imap: treat \NoSelect mailboxes as empty
\NoSelect are mailboxes that can't be selected, thus treat them as if
they are empty.
5 years ago
Manos Pitsidianakis 40e928dad3
Push version to 0.4.1 5 years ago
Manos Pitsidianakis 0eaf17871a
melib: add set_tags command in BackendOp 5 years ago
Manos Pitsidianakis dab9b39f4d
melib/imap: detect tag (\* flag) support 5 years ago
Manos Pitsidianakis 46a807eee1
melib: remove control characters from subject 5 years ago
Manos Pitsidianakis d048d8566d
ui: add format=flowed if text/plain att is the only one 5 years ago
Manos Pitsidianakis 9d8d3e09f4
melib: remove unused methods from BackendOp 5 years ago
Manos Pitsidianakis a059e4ad4c
melib: add summary field to MeliError 5 years ago
Manos Pitsidianakis 7010ee7495
melib/mbox: send Finished in Mbox get 5 years ago
Manos Pitsidianakis ef26b03bb6
Add some documentation 5 years ago
Manos Pitsidianakis bca33370cc
Add tag settings in UI config module 5 years ago
Manos Pitsidianakis 258b6c8fe8
melib: add tags() method in MailBackend
Add tags() method that returns Option<Arc<RwLock<BTreeMap<u64, String>>>>.

The BTreeMap holds available tags in a mail backend and uses the tag's
hash as key.

The method returns an Option because not all backends may support
tagging.
5 years ago
Manos Pitsidianakis 6653357d54
melib/notmuch: fix compilation errors 5 years ago
Manos Pitsidianakis bb486ca9d8
melib: Remove quotes from addresses in email/parser.rs 5 years ago
Manos Pitsidianakis 3dfb2f4f2c
melib: fix out-of-bounds parser bug 5 years ago
Manos Pitsidianakis 58209d6f6b
Replace some panics with errors 5 years ago
Manos Pitsidianakis ba52c59859
bin: add backend specific validation functions for --test-config flag 5 years ago
Manos Pitsidianakis 4677f9c6bb
melib/imap: initialise uid_store folders in folders() 5 years ago
Manos Pitsidianakis afff63c781
ui: load vcards to addressbook with vcard_folder account setting 5 years ago
Manos Pitsidianakis 689327651f
melib/vcard: add parser for vcard files 5 years ago
Manos Pitsidianakis 3dc0cb1963
imap: send 'finished' signal when watch thread dies 5 years ago
Manos Pitsidianakis af365fa8d4
Set 600 perm mode to all created files
When creating a data file, set permissions to read/write for the user.
5 years ago
Manos Pitsidianakis eecec551c1
Display watch thread errors to user
Show a proper notification with the error message to the user instead of
just logging it on debug-tracing.
5 years ago
Manos Pitsidianakis b8e4a35963
melib/imap: add default capabilities to SUPPORTED_CAPABILITIES 5 years ago
Manos Pitsidianakis 41a678c6ef
melib: make MailBackend::folders return Result
Change folders() signature:
-    fn folders(&self) -> FnvHashMap<FolderHash, Folder>;
+    fn folders(&self) -> Result<FnvHashMap<FolderHash, Folder>>;

Imap may not be online, therefore we need the ability to return an
error.
5 years ago
Manos Pitsidianakis 424b244bb7
fixup some TODO and FIXMEs 5 years ago
Manos Pitsidianakis 05d9ca6e0d
small fixes 5 years ago
Manos Pitsidianakis ce646abc7a
ui: add send confirmation dialog in compose tab
Confirm before sending mail
5 years ago
Manos Pitsidianakis 51628ac9d2
ui: move list_management mod to melib
list_management module includes some small functions to handle mailing
list metadata (List-* headers)
5 years ago
Manos Pitsidianakis 449a24d075
ui: ListActions changes
- Parse List-Post value like List-Unsubscribe: comma separated angle bracket limited list of <mailto:> or <url> values
- Check if List-Archive value is angle bracket delimited
5 years ago
Manos Pitsidianakis fc2d9a684d
melib/imap: set has_attachments based on BODYSTRUCTURE
fetch BODYSTRUCTURE along with ENVELOPE from server and set
has_attachments based on the MIME structure of the envelope.

Notes: BODYSTRUCTURE returns the MIME structure of the envelope without
the data, so if it includes a multipart/mixed it *should* have
attachments.
ENVELOPE returns basic headers of the message like Sender, Subject, Date
etc.
5 years ago
Manos Pitsidianakis b2cd4f4b7a
melib/imap: put imap folders in RwLock instead of Mutex
This should prevent lockups if the IMAP conn thread gets blocked
5 years ago
Manos Pitsidianakis 953c3aa9d0
melib: Add parameters field in ContentType::Text
Intending to add the option to set the parameter format=flowed in the
next commits
5 years ago
Manos Pitsidianakis f8a1a6caa5
melib: replace find_thread_group with find_root_hash
thread_group property of ThreadNode doesn't yet reflect the actual root
ThreadNode (the root of the thread, that is). So find the root manually
instead.
5 years ago
Manos Pitsidianakis dfa83e486c
melib: add into_iter() for &StackVec<T> 5 years ago
Manos Pitsidianakis 04e1137b36
melib: add "On ${date} ${author} wrote" heading in replies 5 years ago
Manos Pitsidianakis 321be8555f
Cleanup startup error exit paths
Make startup methods return Results so that the main binary can exit
cleanly instead of using std::process::exit from arbitrary positions,
which exits the process immediately and doesn't run destructors.
5 years ago
Manos Pitsidianakis 77936e0cd5
melib: add notmuch backend
Missing:
- Watching for updates functionality
- Using tags
- Search
5 years ago
Manos Pitsidianakis 7463248da8
melib: change BackendOp::set_flag() signature 5 years ago