summaryrefslogtreecommitdiffstats
path: root/melib
AgeCommit message (Collapse)Author
2020-12-02melib/imap: remove DoubleEndedIterator for ImapLineIteratorManos Pitsidianakis
2020-12-02melib/imap: don't retry watch conn on non-network errorManos Pitsidianakis
2020-12-01melib/text_processing: add LineBreakText iteratorManos Pitsidianakis
A lazy stateful iterator for line breaking text. Useful for very long text where you don't want to linebreak it completely before user requests specific lines.
2020-11-30melib/smtp: implement gmail XOAUTH2 authentication methodManos Pitsidianakis
2020-11-30melib/imap: examine all mailboxes before idleManos Pitsidianakis
2020-11-30melib/threads: prefer local ThreadNode env_hashManos Pitsidianakis
When inserting an envelope in a thread and its Message-ID already exists with an associated envelope, overwrite the association if the previous associated envelope is from a foreign mailbox and current envelope is not. This happens when mail from a sent folder has been inserted in eg your INBOX, but somehow INBOX has a copy of your own message as well. This can happen when mailing lists that send you copies of your own posts. The problem with this was that in IMAP your mailing list copy was unseen and you could not mark it seen because the thread only knew about your Sent mailbox copy.
2020-11-30melib/imap: remove some debug printsManos Pitsidianakis
2020-11-30melib/imap: don't clear mailbox counts before fetchingManos Pitsidianakis
2020-11-30melib/imap: don't use UNSEEN select response for unseen countManos Pitsidianakis
UNSEEN field in SELECT/EXAMINE response is meant to be the message sequence number of the first unseen message, not the count of unseen messages.
2020-11-30melib/imap: don't examine unloaded mailboxes for updatesManos Pitsidianakis
In examine_updates() which is periodically executed in the IMAP watch thread, the mailbox's contents get fetched regardless if the user has fetched the mailbox before. That means eg a large mailbox that was unused by the user might perform a large fetch all of a sudden without the user's knowledge/touch. Add `warm` property in ImapMailbox that states whether the mailbox has been loaded before in current execution. Closes #88 IMAP: don't examine unloaded mailboxes for updates, just for message count stats
2020-11-30melib/imap: don't fetch RFC822 except when requestedManos Pitsidianakis
In some cases when handling new server events, the entire body message was unnecessarily fetched. Closes #87 IMAP: don't fetch RFC822 except when requested
2020-11-28Update xdg-util dependency to 0.4.0Manos Pitsidianakis
2020-11-24melib/imap: implement OAUTH2 authenticationManos Pitsidianakis
2020-11-24widgets: allow text overflow in text fieldsManos Pitsidianakis
Show text content of a text field that exceeds the visible width properly.
2020-11-24imap: fix untrimmed query str resulting in invalid search criteria in cyrusManos Pitsidianakis
2020-11-24melib/imap: fix some LazyCountSet logic errors in syncManos Pitsidianakis
2020-11-22Update smallvec dependency to 1.5.0Manos Pitsidianakis
Fixes panicking when loading cached serialized email from older versions of meli. https://github.com/servo/rust-smallvec/pull/238
2020-11-21melib/text_processing: fix CodePointsIterator implementationManos Pitsidianakis
Old implementation was redundant and broken.
2020-11-21melib/text_processing: add new wcwidth implementationManos Pitsidianakis
Download and parse Unicode data files to judge code point width. Inspired by https://github.com/ridiculousfish/widecharwidth/
2020-11-21Fix test errors and warningsManos Pitsidianakis
2020-11-15melib/smtp: impl AUTH LOGINManos Pitsidianakis
AUTH LOGIN is deprecated but predictably still around.
2020-11-10melib/smtp: fix SMTP syntax error on DSN notify useManos Pitsidianakis
2020-11-10melib/compose: prevent bare newlines in finalised draftsManos Pitsidianakis
2020-11-09melib/maildir: make MaildirOp return Result<PathBuf>Manos Pitsidianakis
2020-11-09melib: fix bincode serializationManos Pitsidianakis
Previous commit changed bincode deserializes in maildir and sqlite3.rs from bincode::deserialize_from to using bincode::config::DefaultOptions and bincode::Options trait's method deserialize_from. However, these two different deserializes use a different default settings: https://github.com/servo/bincode/issues/348 Specifically, varint encoding for integers is the default for DefaultOptions but not when using bincode::{de,}serialize_* functions. That means that serialized structs were not able to be deserialized. This commit makes all {de,}serializations use the DefaultOptions interface rather than the top level functions.
2020-11-06melib: set upper limit for bincode deserializeManos Pitsidianakis
If struct memory layout changes, bincode deserialize fails with memory allocation error of an obscene amount of bytes. Set upper limit to deserialized bytes in each place deserialize happens.
2020-11-06Update bincode dependency to 1.3.1Manos Pitsidianakis
2020-11-04melib/jmap: add HTTP redirect policy to clientRudi Horn
Meli currently uses the .well-known/jmap URL and the RFC8620 requires that any redirects are followed (https://tools.ietf.org/html/rfc8620#section-2.2). This small change allows redirects to happen.
2020-10-26melib: add more encodingsManos Pitsidianakis
Add more encodings already supported by `encoding` crate: - iso-8859-3, - iso-8859-4, - iso-8859-5, - iso-8859-6, - iso-8859-8, - iso-8859-10, - iso-8859-13, - iso-8859-14, - iso-8859-16, - gb-2312 - big-5 - iso-2022-jp - euc-jp - koi8-r - koi8-u - utf-16
2020-10-20melib/line_break: add segment tree implManos Pitsidianakis
The widths of subslices of a line are calculated in each call to `binary_search_by` when reflowing long lines. This can be done in Ologn queries with a segment tree.
2020-10-20melib: Remove unused crossbeam dependencyManos Pitsidianakis
2020-10-20melib/maildir: split parsing into big chunksManos Pitsidianakis
2020-10-20melib/README: update feature tableManos Pitsidianakis
2020-10-20melib: remove memmap dependencyManos Pitsidianakis
It's unmaintained, and the IO performance gains are negligible
2020-10-20melib/imap: add suggestion on STARTTLS errorManos Pitsidianakis
If server port is 993 (IMAPS) and starttls is enabled, suggest turning it off if starttls fails.
2020-10-18melib/imap: fetch References header along with ENVELOPEManos Pitsidianakis
Threading was broken if information was needed from References header. For example, mailman might alter some Message-IDs when using its NNTP bridge and the complete references are necessary to rebuild the thread, which is only available in References whereas ENVELOPE has only In-Reply-To.
2020-10-18melib/sqlite3: reset db on version mismatchManos Pitsidianakis
2020-10-18melib/build.rs: remove unnecessary file creationManos Pitsidianakis
2020-10-16melib/attachments: add SMIME signature variantManos Pitsidianakis
2020-10-15Fix minor warningsManos Pitsidianakis
2020-10-14melib/gpgme: trim header fileManos Pitsidianakis
2020-10-13melib/imap: change byte cache String -> Vec<u8>Manos Pitsidianakis
2020-10-13melib/imap/untagged: handle EXPUNGE if our MSNs invalidManos Pitsidianakis
2020-10-13melib/imap/untagged: lower mbox count on EXPUNGE eventsManos Pitsidianakis
2020-10-13melib: Implement delete_messages for IMAP, MaildirManos Pitsidianakis
2020-10-11compose: add key selection state for gpg operationsManos Pitsidianakis
Closes #81
2020-10-11gpgme: add PartialEq impl for KeyManos Pitsidianakis
2020-10-11melib/compose: don't base64 encode unless it's not asciiManos Pitsidianakis
2020-10-11gpgme: add context flag set/getManos Pitsidianakis
2020-10-11melib/compose: fix wrong Content-Type on PGP signatures and message/rfc822Manos Pitsidianakis