Manos Pitsidianakis
34ed9e2014
conf: set mailbox autoload default to false
4 years ago
Manos Pitsidianakis
1db2c16f95
mbox: add support for multiple mbox mailboxes in config
...
Concerns #9
4 years ago
Manos Pitsidianakis
674073899d
mbox: Add different readers for mbox{o,rd,cl,cl2}
4 years ago
Manos Pitsidianakis
01d83d8088
email/parser: do not set has_colon newline
...
When parsing a field-name, and expecting a colon (:) if a newline is
first encountered do not set `has_colon` flag to true.
4 years ago
Manos Pitsidianakis
8bfdce6658
melib/error: do not discard old summary in set_summary
4 years ago
Manos Pitsidianakis
75f9256a50
email/parser: change Error type to include error location
...
Add ParsingError type that includes a string with the location and
possibly an explanation for the error.
4 years ago
Manos Pitsidianakis
40f66f3333
imap: modify connection timeouts
4 years ago
Manos Pitsidianakis
34d782f16f
imap: Remove panic from fetch_flags
4 years ago
Manos Pitsidianakis
c7fbc5cafb
imap: remove redundant passing of AccountHash
4 years ago
Manos Pitsidianakis
2d862e39f4
imap: off by one error in iteration
4 years ago
Manos Pitsidianakis
2d3f49d64d
imap: index by (MailboxHash, UID) instead of just UID
...
Mailboxes can share UIDs.
4 years ago
Manos Pitsidianakis
ca9d4fde58
Discard EnvelopeRename event if envelope is missing from Collection
4 years ago
Manos Pitsidianakis
f3d5edfe14
Add copy/move to other account operations
4 years ago
Manos Pitsidianakis
5435a4615e
imap: don't try to connect in is_online()
...
Attempting to connect to the server when calling imap's is_online()
blocks the UI process, so don't.
4 years ago
Manos Pitsidianakis
b4dfc1f89d
imap: add experimental header caching with sqlite3
...
Add support for header caching. It is currently unstable and should not
be used. It can be turned on by specifying "X_header_caching" to true in
the IMAP account's configuration.
The header cache is saved in a sqlite3 database in your XDG_DATA_DIR,
for example:
/home/epilys/.local/share/meli/17328072387188469646_header_cache.db
Concerns #31 https://git.meli.delivery/meli/meli/issues/31
4 years ago
Manos Pitsidianakis
6ec249dd7f
melib: update nom dependency from 3.2.0 to 5.1.1
...
That was hecking exhausting
4 years ago
Manos Pitsidianakis
db4c401828
melib/error: add chain_err_summary() method
4 years ago
Manos Pitsidianakis
e4d4cd55d3
melib: skip mbox `From ` header if present
...
mbox messages might end up in the parser by mistake, for example by
being present in a Maildir store.
4 years ago
Manos Pitsidianakis
8c1c628c2c
melib: fix non-unicode encode_header() char boundary issue
4 years ago
Manos Pitsidianakis
84976b1dc9
Update libloading dependency to 0.6.2
4 years ago
Manos Pitsidianakis
b3b9563db0
LineBreakCandidateIter: make iter non-recursive
...
A line with lots of graphemes without any breaks can overflow the stack,
so make the recursion into a loop.
4 years ago
Manos Pitsidianakis
6ceed3cae9
sqlite3: move module to melib
4 years ago
Manos Pitsidianakis
815ff98acc
imap: add smarter untagged reply detection
4 years ago
Manos Pitsidianakis
2c45c39048
ShellExpandTrait: fix for non-linux targets
4 years ago
Manos Pitsidianakis
e4a1ab8a09
Fix rustfmt suggestions
4 years ago
Manos Pitsidianakis
0a83b99e7c
Update nix, linkify, uuid dependencies
4 years ago
Manos Pitsidianakis
b8261ee36a
Overhaul input thread
...
Remove raw/non raw distinction.
Use a pipe for input thread commands and poll stdin/pipe for events
4 years ago
Manos Pitsidianakis
bea0ca61f5
maildir: conditionally accept invalid subdirs
...
If directory is invalid (i.e. has no {cur,new,tmp} subfolders), accept
it ONLY if it contains subdirs of any depth that are valid maildir
paths.
For example, this change will accept the following directory tree:
```
invalid_maildir
└── valid_maildir
├── cur
├── new
└── tmp
```
4 years ago
Manos Pitsidianakis
bd404e6937
Execute user shell commands with /bin/sh
...
Execute user provided command invocations $CMD such as `editor_cmd` with
`/bin/sh` as `/bin/sh -c "$CMD"
Previously, user commands were split by whitespace which must trigger
erroneous behavior if quotes are involved.
4 years ago
Manos Pitsidianakis
bfff0e4feb
conf: add options for logging
...
Add options for log file location and maximum log level. Also add
manpage entries for these options in `meli.conf.5`
4 years ago
Manos Pitsidianakis
671d473894
email/parser: avoid slice index panic if slice is empty
4 years ago
Manos Pitsidianakis
fb2bb74c5c
Remove std::dbg! use
4 years ago
Manos Pitsidianakis
3ce4772251
datetime: fix unupdated tests
4 years ago
Manos Pitsidianakis
38893a77bd
notmuch: fix invalid flag setting
4 years ago
Manos Pitsidianakis
595fa8ab95
notmuch: add total message count for mailboxes
4 years ago
Manos Pitsidianakis
68b1feb6c8
melib: add timestamp to debug trace logs
4 years ago
Manos Pitsidianakis
c5fe511d95
notmuch: don't remove tags from tag_index
...
When removing a tag, we shouldn't also remove it from the tag index.
4 years ago
Manos Pitsidianakis
b2857955e4
notmuch: add NewFlags, Remove and Create events
4 years ago
Manos Pitsidianakis
8648b229ad
Add AccountHash to RefreshEvent
...
Different accounts might have same inboxes with same MailboxHashes. Use
the hash of the account's name to differentiate.
4 years ago
Manos Pitsidianakis
eb701695f7
Remove fnv crate
4 years ago
Manos Pitsidianakis
b5b9982d9e
notmuch: cache messages by msg-id, not path
4 years ago
Manos Pitsidianakis
3ea1ce5454
errors: add `source` field to MeliError
4 years ago
Manos Pitsidianakis
d915c4a7c8
text_processing: remove invalid unreachable!()
4 years ago
Manos Pitsidianakis
2c549f5fcb
Refactor comments in notmuch/bindings.rs
4 years ago
Manos Pitsidianakis
2230e5705d
notmuch: LOCK database only when needed
...
Reported in https://git.meli.delivery/meli/meli/issues/24
4 years ago
Manos Pitsidianakis
b00d3c28c5
parser: fix panic on invalid encoded_word, display_addr
...
found by cargo-fuzz
4 years ago
Manos Pitsidianakis
5981f98f17
parser: fix panic on invalid message id
4 years ago
Manos Pitsidianakis
f2ecb81612
parser: fix panic on invalid input
...
Found with cargo-fuzz
4 years ago
Manos Pitsidianakis
5d07a5147b
datetime: fix panic on invalid cstr conversion
4 years ago
Manos Pitsidianakis
330134af5a
maildir: update mailbox unread count on file rename event
4 years ago
Manos Pitsidianakis
e9a935dbf7
melib: add search method in mail backends
5 years ago
Manos Pitsidianakis
3d7b9ff7cb
Move Query to melib
5 years ago
Manos Pitsidianakis
c37d8bd331
imap: add mutex timeout lock and remove unwraps
5 years ago
Manos Pitsidianakis
5842a63e37
melib: ignore Draft body if empty for multipart mail
5 years ago
Manos Pitsidianakis
ad2a51891b
melib: print attachment name in Display for text/*
5 years ago
Manos Pitsidianakis
6ccb9d3d75
melib/src/email/address.rs: Fix invalid UTF8 panic
...
In StrBuilder::display there's an assumption that the string is valid utf-8 but if an email contains an invalid string inside the MIME encoded word part the conversion panics. Change it to a lossy UTF-8 conversion instead. Fixes #19
Reported-By: cycomanic
5 years ago
Manos Pitsidianakis
9afb636894
melib/email: fix whitespace duplication in mime encoding
5 years ago
Manos Pitsidianakis
8eca8b34ed
jmap: fix two error messages
5 years ago
Manos Pitsidianakis
c77af98b26
imap: prevent deadlock in operations.rs
...
imap/operations.rs could deadlock with imap/watch.rs when both lock the
main IMAP connection but both also need to lock UIDStore
5 years ago
Manos Pitsidianakis
5c2b93ee18
jmap: add parser for rfc3339 dates
...
Reported-by:cycomanic
Concerns #18 https://git.meli.delivery/meli/meli/issues/18
5 years ago
Manos Pitsidianakis
61be6e4c96
notmuch: fix wrong mailbox path in save()
...
mailbox path was passed to save_to_mailbox() with a cur/ tail and
save_to_mailbox() added an extra cur/ tail
5 years ago
Manos Pitsidianakis
7a770c7f7b
imap: fetch RFC822 instead of RFC822.HEADER
...
RFC822.HEADER is not parsed in imap/protocol_parser.rs
5 years ago
Manos Pitsidianakis
a8c1016f37
Add various logic checks
5 years ago
Manos Pitsidianakis
6ca8c3b964
imap: add server_password_command
5 years ago
Manos Pitsidianakis
1811fb51cb
Fix unused imports/code compiler warnings
5 years ago
Manos Pitsidianakis
651dda67cf
Respect autoload mailbox setting
5 years ago
Manos Pitsidianakis
a3600c0cd2
Add `filter` option in mail list
...
Filter mail in mail list.
Example:
[listing]
filter = "not flags:seen" # show only unseen messages
5 years ago
Manos Pitsidianakis
6c76db2063
Add delete, copy actions for envelopes
5 years ago
Manos Pitsidianakis
6079909f9c
imap: add managesieve connection
...
So far only the connection is implemented, and using the
testing/manage_sieve binary you can get a shell to a managesieve server.
The managesieve interface will be used in the UI from a plugin, but the
plugin's interface isn't implemented yet.
5 years ago
Manos Pitsidianakis
6b2a1f7757
imap: Don't fail on WouldBlock on ImapBlockingConnection
5 years ago
Manos Pitsidianakis
ca51077f53
imap: Add support for untagged FETCH (FLAG.. messages
...
IDLE connection can get untagged "* FETCH (FLAGS ({flag_list))" messages
if any client has changed flags. Support this refresh event.
5 years ago
Manos Pitsidianakis
c1a64d6c33
Add imports in tag_hash macro
5 years ago
Manos Pitsidianakis
33c1bf6558
Add consume newlines flag to phrase()
5 years ago
Manos Pitsidianakis
303c530488
Load libnotmuch dynamically
5 years ago
Manos Pitsidianakis
ac71d627f1
Implement search for CellBuffer
5 years ago
Manos Pitsidianakis
4ac52d9d5b
Replace every use of Folder with Mailbox
...
Use Mailbox for consistency.
5 years ago
Manos Pitsidianakis
1245eae0be
Add Knuth–Morris–Pratt to pager
5 years ago
Manos Pitsidianakis
45c0160cb6
Fix ThreadListing
...
ThreadListing was broken after the ThreadGroup introduction
5 years ago
Manos Pitsidianakis
68007a0842
View decoded email source by default
...
Toggle between decoded/raw source with view_raw_source shortcut, default
M-r
5 years ago
Manos Pitsidianakis
499fd59c6e
melib/imap: implement refresh()
5 years ago
Manos Pitsidianakis
bbdc9d69b4
melib/imap: add ImapConnection::connect()
5 years ago
Manos Pitsidianakis
f38d03e43a
melib: {create,delete}_folder returns updated folders
...
Potential parent folders will have their children fields updated, so
just return all folders.
5 years ago
Manos Pitsidianakis
9a46e58029
imap: don't retry command on reconnection
...
If a command fails and connection is restarted, don't try the command
again; it only made sense in the previous connection's context.
5 years ago
Manos Pitsidianakis
b6efb14824
melib: remove Mailbox
...
Refactor Collection from melib to hold what folders have what envelopes.
Frontend accounts will now have a FolderEntry for each logical folder
and will unify many Account fields into one and eliminate a lot of
duplicate/dead code.
5 years ago
Manos Pitsidianakis
e26ed83331
Update native-tls to 0.2.3
5 years ago
Manos Pitsidianakis
c678b16711
melib/jmap: fix macro path
5 years ago
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()
5 years ago
Manos Pitsidianakis
b107424258
melib: update GlobMatch algorithm
...
Taken from https://research.swtch.com/glob
5 years ago
Manos Pitsidianakis
6b7dea35dc
melib/parser: fix minor encoded word error
5 years ago
Manos Pitsidianakis
6afac835e0
melib/datetime: fix overflow panic on early date input
5 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.
5 years ago
Manos Pitsidianakis
f5e694cf5a
Make small cosmetic fixes
5 years ago
Manos Pitsidianakis
f208948651
melib: add mailbox delete/create to IMAP
5 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.
5 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.
5 years ago
Manos Pitsidianakis
cd1ed5ef40
melib/mbox: replace unimplemented!() with Error
5 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.
5 years ago
Manos Pitsidianakis
6a096dd405
Add missing copyright preambles
5 years ago
Manos Pitsidianakis
5dc477bcd5
Fix some unused etc warnings
5 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
5 years ago