summaryrefslogtreecommitdiffstats
path: root/melib/src
AgeCommit message (Collapse)Author
2019-06-18Fix warnings, lints, and 2018 errorsManos Pitsidianakis
2019-06-10don't add newlines in encoded wordsManos Pitsidianakis
2019-06-10wcwidth: add emoji tableManos Pitsidianakis
2019-06-10parser: fix empty header value when header is last or when prefixed withManos Pitsidianakis
'\n' when an empty header is last, the rest of the body keeps getting parsed as headers. when header starts with '\n' because the value is long, the value gets parsed as a name and the header parser fails. closes #100 closes #101 closes #122
2019-06-10add testing crate with emailparse binManos Pitsidianakis
2019-06-10merge FirstName/LastName fields in ContactsManos Pitsidianakis
First names and Last names are an anglocentric concept and do not apply cleanly to the rest of the world's cultures.
2019-06-10melib: add has_attachments property to EnvelopeManos Pitsidianakis
Check subattachments in has_attachments check. Instead of getting a flattened attachment view of multipart/mixed (eg [multipart/mixed, text/plain, text/plain]) get only the subattachments (eg [text/plain, text/plain]). Don't count text-only multipart/mixed as attachments
2019-06-10melib: correct out of bounds accessManos Pitsidianakis
2019-06-10melib: unwrap mailbox moduleManos Pitsidianakis
2019-06-10move StackVec to melibManos Pitsidianakis
closes #120
2019-06-10ui: move Collection to AccountManos Pitsidianakis
Each account had one mailbox per folder, which had one associated collection. Now each Account has one Collection for all folders and each Mailbox object holds only the hashes of each message. Collection also gets Threads for each folder in order to mix messages (ie from/to Sent folder). Insert Sent emails in chronological order if inserted unsorted, mails a, b with a happened-before b, might never get added. Fix multiple insertions in ThreadTree upon insert_reply insert_reply was creating multiple copies in threading
2019-06-10melib: track modified paths in maildirManos Pitsidianakis
Keep modified path status in maildir to prevent not-found panics
2019-06-10End of line in grapheme_clusters?Manos Pitsidianakis
2019-06-10move grapheme stuff to melibManos Pitsidianakis
2019-06-10melib: dont allocate new stringManos Pitsidianakis
2019-06-10ui: toggle thread snooze flagManos Pitsidianakis
snooze field translated to whether the user wants to be notified of new email in the thread or not. This is toggled with an (temp) EX cmd: `toggle_thread_snooze` closes #112
2019-06-10save Account to diskManos Pitsidianakis
closes #114
2019-06-10fix warnings and lintsManos Pitsidianakis
2019-06-10ui: draw thread arrows correctly in other sortingsManos Pitsidianakis
thread arrows in ThreadListing weren't drawn correctly when subsorting was changed (eg date -> subject) has_sibling was delegated to ThreadsIterator.
2019-06-10melib: return $val in debug!Manos Pitsidianakis
2019-06-10ui: add "application/pgp-signature" content typeManos Pitsidianakis
2019-06-10melib: format maildir/backend.rsManos Pitsidianakis
2019-06-10melib: drop MutexGuard before calling add_path_to_indexManos Pitsidianakis
In some cases add_path_to_index was called with the mutex already held, and a deadlock occurred.
2019-06-10melib: detect plain text in multipart/alternativeManos Pitsidianakis
2019-06-10melib: link threads with empty intermediatesManos Pitsidianakis
A thread's chain link would get broken when empty intermediate ThreadNodes exist. The pruning of the empty node did not properly chain the empty node's parent with the empty node's children. Old behaviour: - [A] /* [B] is missing */ - [C] /* [D] is missing */ - [E] New behaviour (`x` represents deleted links) - [A] | |xxx> [empty node of B] | x | x | \/ |_______>[C] | |xxx> [empty node of D] | x | x | \/ |_______>[E]
2019-06-10melib: fix address_spec parse without displaynameManos Pitsidianakis
addresses like "<user@domain.tld>" were parsed as "ser@domain.tld". Fix this by checking for displayname length.
2019-06-10melib: keep old_hash in Collection temporarilyManos Pitsidianakis
When renaming envelopes, keep old_hash in collection until we receive an EnvelopeRename event in ui
2019-06-10add literal print to debug!Manos Pitsidianakis
2019-06-10melib: fix typo and unused valManos Pitsidianakis
2019-06-10melib: multipart/mixed with html messages not displayed as htmlManos Pitsidianakis
2019-06-10add name in single var print in debug!Manos Pitsidianakis
2019-06-10add debug! macro to replace eprintlnsManos Pitsidianakis
2019-06-10ui: watch root_folder instead of every folderManos Pitsidianakis
2019-06-10ui: file_name() does not return full file_nameManos Pitsidianakis
move_to_cur doesn't retain the full envelope name when moving
2019-06-10ui: Refer to child/parents with FolderHash in BackendFolderManos Pitsidianakis
- use a stack to build folder order list in conf/accounts.rs - update side menu print
2019-06-10melib: fix debug prints not debug-build onlyManos Pitsidianakis
2019-06-10melib: encode header valuesManos Pitsidianakis
closes #102
2019-06-10melib: add fqdn to MIDManos Pitsidianakis
2019-06-10melib/ui: refer to Folders by FolderHashManos Pitsidianakis
2019-06-10ui: remove debug_log feature, add log positionsManos Pitsidianakis
2019-06-10ui: fix `editing messages duplicates headers`Manos Pitsidianakis
closes #94
2019-06-10melib: create new threadnode if it's missing inside rebuild_threadManos Pitsidianakis
2019-06-10ui: make Composer account specificManos Pitsidianakis
2019-06-10ui: make html filter optional in configManos Pitsidianakis
closes #92
2019-06-10Run clippy for 2018 editionManos Pitsidianakis
2019-06-10run cargo fmtManos Pitsidianakis
2019-06-10update to 2018 editionManos Pitsidianakis
2019-06-10melib: fix invalid folder hierarchy in Backend::folders()Manos Pitsidianakis
2019-06-10melib: fix crash in node_build(Manos Pitsidianakis
2019-06-10melib: fix duplication of thread nodes in update envelope eventManos Pitsidianakis