Commit Graph

397 Commits (9b7875c0236f50352f1f495317b2b2ddbdd57553)

Author SHA1 Message Date
Manos Pitsidianakis 9616fbb544
melib/maildir: fix wrong subscription status in folders
MaildirFolder::new() was checking for subscribed status though that is
supposed to be done in MaildirType::new()
4 years ago
Manos Pitsidianakis b107424258
melib: update GlobMatch algorithm
Taken from https://research.swtch.com/glob
4 years ago
Manos Pitsidianakis 6b7dea35dc
melib/parser: fix minor encoded word error 4 years ago
Manos Pitsidianakis 6afac835e0
melib/datetime: fix overflow panic on early date input 4 years ago
Manos Pitsidianakis f131e01bfc
Fix drawing getting stuck in empty terminal
Fix drawing getting stuck in loops when terminal is too small by
checking for it.
4 years ago
Manos Pitsidianakis f5e694cf5a
Make small cosmetic fixes 4 years ago
Manos Pitsidianakis f208948651
melib: add mailbox delete/create to IMAP 4 years ago
Manos Pitsidianakis 05b91f1c02
Remove text_processing
Unwrap text_processing into melib

In preparation for uploading meli as a separate crate on crates.io.
4 years ago
Manos Pitsidianakis 8b6ea8de9a
Remove ui crate
Merge ui crate with root crate.

In preparation for uploading `meli` as a separate crate on crates.io.

Workspace crates will need to be published as well and having a separate
`ui` crate and binary perhaps doesn't make sense anymore.
4 years ago
Manos Pitsidianakis cd1ed5ef40
melib/mbox: replace unimplemented!() with Error 4 years ago
Manos Pitsidianakis 51d9405c72
melib/mbox: fix parse error
First line of an mbox message is a "From ..." header without the colon
required in RFC822. Skip it when parsing the actual e-mail.

This was lost somewhere in the commit history when mbox was added,
weird.
4 years ago
Manos Pitsidianakis 6a096dd405
Add missing copyright preambles 4 years ago
Manos Pitsidianakis 5dc477bcd5
Fix some unused etc warnings 4 years ago
Manos Pitsidianakis 77d9cef6fc
melib/imap: small fixes
- Ignore final line ("M__ OK ...") when parsing FETCH response.

- Remove unnecessary import and reword some error messages
4 years ago
Manos Pitsidianakis 254028fa47
melib/threads: fix thread splintering case when inserting reply
When inserting reply, its thread group was re-inserted with the reply as
the root. This is a mistake as threads should never be re-inserted, only
modified.
4 years ago
Manos Pitsidianakis dc63e1f657
Minor changes 5 years ago
Manos Pitsidianakis 1e2acd3b29
melib: add complete() method to ShellExpandTrait
complete(force: bool) returns String path segments that when appended to
the path will form a valid location. Example:

  - User types: save-attachment 1 /t
  - User presses <TAB>.
  - complete() returns the suggestion: "mp/"
  - User sees: save-attachment 1 /tmp/

complete() uses openat() and getdents64 syscalls hoping it's faster than
using stdlib.
5 years ago
Manos Pitsidianakis 6d9f584de3
Update nix to 0.16.1 5 years ago
Manos Pitsidianakis a9842cacee
ui: add theming support
Configuration flag "terminal.themes" has two default theme entries,
"dark" and "light".

This commit alters only CompactListing for theme support.
5 years ago
Manos Pitsidianakis e07b5faf6e
melib/threads: already-exists check in threads insert 5 years ago
Manos Pitsidianakis 350fafb515
melib/thread: add attachments field to Thread 5 years ago
Manos Pitsidianakis 5e68d600b9
melib/threads: Split ThreadGroup::Group to Thread
Create Thread struct.
5 years ago
Manos Pitsidianakis d9269335a1
melib/threads: rename thread hashes
- Rename ThreadHash to ThreadNodeHash
- Rename ThreadGroupHash to ThreadHash
5 years ago
Manos Pitsidianakis 47a69f8eb9
melib: add ThreadGroup
Instead of using Union/Find to gather mail that belongs in the same
e-mail thread together, add a new entity ThreadGroup that ThreadNodes
point to. ThreadGroup represents an actual Thread: A thread root
ThreadGroup::Group or a reply ThreadGroup::Node.

To make semantics more accurate:

- ThreadNode hash should be renamed to ThreadNodeHash
- ThreadGroupHash should be renamed to ThreadHash
- ThreadGroup::Group should be a struct named Thread instead
- move ThreadGroup::Node logic to ThreadNode akin to Union/Find
- rename ThreaddGroup::Group to Thread
5 years ago
Manos Pitsidianakis 1eb49efb22
melib/threads: use all References in thread building
WIP
5 years ago
Manos Pitsidianakis 56e3ea1548
melib/imap: refactor early error exit 5 years ago
Manos Pitsidianakis 7f8c638361
melib/imap: add mailbox creation ability 5 years ago
Manos Pitsidianakis 853fe14128
melib: fix two minor email parsing bugs
- windows-1250 encoding not being recognized
- spaces in Message-ID header messing up parsing '<' + msg-id + '>'
structure
5 years ago
Manos Pitsidianakis 6835968d9a
melib/datetime: convert date to utc before converting to unix epoch 5 years ago
Manos Pitsidianakis a365a846b8
Replace StackVec with smallvec::SmallVec
SmallVec has a less buggy and better implementation.
5 years ago
Manos Pitsidianakis ca7d72e732
melib: Replace String with Cow<'static, str> 5 years ago
Manos Pitsidianakis 9fcc868acd
remove chrono 5 years ago
Manos Pitsidianakis c0ac643f05
melib: add datetime module
Datetime module adds POSIX time functions interface
5 years ago
Manos Pitsidianakis 6671fe926e
melib: don't treat missing end boundary as error
Don't treat missing end boundary as error in multipart attachments.

python3's nntplib seems to return MIME attachments with this property
5 years ago
Manos Pitsidianakis 8694278369
ui: add auto_choose_multipart_alternative
Choose text/html by default if text/plain is empty in
multipart/alternative attachments

This happens in some newsletters I've come upon
5 years ago
Manos Pitsidianakis 3d84f3b9ad
notmuch: remove needless clones 5 years ago
Manos Pitsidianakis 21526b5faf
melib: make Work use FnOnce closures
There was no need to use Fn() instead of FnOnce()
5 years ago
Manos Pitsidianakis 92826f982f
melib/attachments: add MultipartType::Related kind 5 years ago
Manos Pitsidianakis 9211913405
meli/backends: honor mailbox subscriptions in IMAP/JMAP 5 years ago
Manos Pitsidianakis 7eceef93e9
melib/backends: remove folder_operation
folder_operation functionalities will go to BackendFolder trait
5 years ago
Manos Pitsidianakis 9080e0fd96
melib: rename FolderConf `rename` field to alias 5 years ago
Manos Pitsidianakis c23cc45edd
melib: fix test import not found 5 years ago
Manos Pitsidianakis 2b6f6ab42c
melib: Add BackendFolder methods, move special usage logic to backend
- add count() method to return (unseen, total) counts
- add is_subscribed()
- add set_special_usage() and set_is_subscribed()

concerns #8
5 years ago
Manos Pitsidianakis 8f63572584
Small refactors to avoid implicit unwrap() panics 5 years ago
Manos Pitsidianakis 0201241786
melib/backends: MailBackend::refresh() returns Result
Handle cases were refresh() would fail properly. Fixes a crash reported in #13
5 years ago
Manos Pitsidianakis 65efb23f14
melib/MailBackend: add refresh() method
Initiate refresh manually.
5 years ago
Manos Pitsidianakis d2b4057b7b
melib/MailBackend: add connect() method 5 years ago
Manos Pitsidianakis 2e38ea11e2
melib: make MailBackend::is_online() return Result<()>
Return Result<()> instead of bool to indicate connection status in order
to be able to show errors to user.
5 years ago
Manos Pitsidianakis 2ed9ffb145
melib/jmap: construct session resource url from user settings 5 years ago
Manos Pitsidianakis da8cd4e85f
Remove jmap from default features 5 years ago