Manos Pitsidianakis
d7e6b40b7e
accounts: auto re-index sqlite3 database if it's missing
...
Instead of telling user to do it themselves
2 days ago
Manos Pitsidianakis
e0257c9d8d
Run cargo-sort
3 days ago
Manos Pitsidianakis
27a4dcb916
Fix some rustdoc lints
3 days ago
Manos Pitsidianakis
bf615e7d93
melib/thread: check for case when envelope has its own message id in References and In-Reply-To
...
Emails sent from meli's gitea do this, and it makes them invisible in
thread listings.
3 days ago
Manos Pitsidianakis
b92a80a23a
melib/imap: resync even if UIDVALIDITY is missing from cache
...
I think this is related to #98 meli gets stuck on `set seen' for mail (threads) at random
#98
3 days ago
Manos Pitsidianakis
f8623d4b2c
melib/imap: implement more ResponseCode cases
3 days ago
Manos Pitsidianakis
299c8e0f99
meli: restructure pub use melib::* imports
3 days ago
Manos Pitsidianakis
c5ecaceae1
melib/search: fix some search criteria in Query type
3 days ago
Manos Pitsidianakis
6bf1756de8
melib/search: implement more search criteria in Query type
3 days ago
Manos Pitsidianakis
23d95973d4
melib/backends/imap: add search.rs module
...
Add trait to convert melib::search::Query type to an IMAP appropriate
query string (search criteria).
4 days ago
Manos Pitsidianakis
6388bea9a0
melib/email/headers: fix &[u8] index in HeaderMap
4 days ago
Manos Pitsidianakis
f537c24909
utilities/widgets.rs: move text field to its own module
4 days ago
Guillaume Ranquet
daf42fd456
config_macros.rs: fix build error with quote 1.0.28
...
With quote 1.0.28 the TokenTree enum is declared as a private enum
thus causing this error at build time:
error[E0603]: enum `TokenTree` is private
--> config_macros.rs:114:54
|
114 | ... if let quote::__private::TokenTree::Group(g) =
| ^^^^^^^^^ private enum
Use enum definition from proc_macro2 instead.
Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
7 days ago
Manos Pitsidianakis
58889bcadd
pager: Add show_extra_headers option
...
Show custom set headers on pager, if existent.
Quoting meli.conf(5):
> show_extra_headers [String] (optional) Extra headers to
> display, if present, in the
> default header preamble of
> the pager. This setting is
> useful especially when used
> per-folder or per-account.
> For example, if you use
> ‘rss2email’ (See r2e(1)) the
> e-mail you will receive will
> have the ‘X-RSS-Feed’ header
> by default. You can show
> them only in the folder
> where you keep your feed
> items:
>
> [accounts."personal".mailboxes]
> INBOX = {}
> "INBOX/Sent" = { sort_order=0 }
> "INBOX/Feeds" = { pager.show_extra_headers = ["X-RSS-Feed"] }
> (empty)
1 week ago
Manos Pitsidianakis
d332e4578d
melib/headers: add proper Display impl for HeaderName
1 week ago
Manos Pitsidianakis
954329d848
Set file extensions to temp files, use `open` in macos
...
If html_filter fails, meli unwraps it. Also, if it can't find an xdg default app it also fails.
So use xdg-open and open as failsaifes.
But that requires `open` to know it's an html file, so implemented setting temp file extensions as well.
1 week ago
Manos Pitsidianakis
aebff3d3d9
melib: implement mailto RFC properly
...
This allows mailto links with `In-Reply-To` parameters to work properly.
PS Mailto links can be used with the `mailto MAILTO_URI` command
1 week ago
Manos Pitsidianakis
235fceaf21
melib: Add standard heeder constants in email::headers
...
Like `http` crate does
1 week ago
Damian Poddebniak
1eea8bab77
tests: Fix `test_imap_fetch_response`.
2 weeks ago
Damian Poddebniak
30866f752b
chore: Bypass rustfmt bug.
2 weeks ago
Manos Pitsidianakis
1f8ac2287b
docs/external-tools.md: fix ftplugin location and add example mail.vim file
2 weeks ago
Manos Pitsidianakis
c9d26bb415
mail/compose: add configurable custom hooks with shell commands
...
Quoting the docs at meli.conf(5):
```text
custom_compose_hooks [{ name = String, command = String }]
(optional) Custom compose-hooks that run shell scripts.
compose-hooks run before submitting an e-mail.
They perform draft validation and/or transformations.
If a custom hook exits with an error status or prints output to
stdout and stderr, it will show up in the UI as a notification.
Example:
[composing]
editor_cmd = '~/.local/bin/vim +/^$'
embed = true
custom_compose_hooks = [ { name ="spellcheck", command="aspell --mode email --dont-suggest --ignore-case list" }]
```
3 weeks ago
Manos Pitsidianakis
cc27639fca
melib/email/compose: use Envelope attachments when editing and don't add already existing headers
3 weeks ago
Damian Poddebniak
f63f6445ad
chore: Improve error message when `m4` executable is missing.
3 weeks ago
Damian Poddebniak
682ea5547e
chore: Add `.idea` (CLion) to `.gitignore`.
3 weeks ago
Manos Pitsidianakis
24103f3310
docs: add external-tools.md document
3 weeks ago
Manos Pitsidianakis
91557c2c43
mail/listing.rs: prevent list blank when refreshing account
...
Mail list would go blank if the currently focused account received a
Status update event.
3 weeks ago
Manos Pitsidianakis
428f752b20
Remove obsolete crate::components::mail::get_display_name()
3 weeks ago
Manos Pitsidianakis
77020e0c19
Update CHANGELOG.md
3 weeks ago
Manos Pitsidianakis
8c671935f9
Add compose (pre-submission) hooks for validation/linting
...
compose-hooks run before submitting an e-mail.
They perform draft validation and/or transformations.
If a hook encounters an error or warning, it will show up as a notification.
The currently available hooks are:
- past-date-warn
Warn if Date header value is far in the past or future.
- important-header-warn
Warn if important headers (From, Date, To, Cc, Bcc) are missing or invalid.
- missing-attachment-warn
Warn if Subject, draft body mention attachments but they are missing.
- empty-draft-warn
Warn if draft has no subject and no body.
They can be disabled with [composing.disabled_compose_hooks] setting.
3 weeks ago
Manos Pitsidianakis
1f1ea30769
components/mail/view: on draw() set dirty on return
1 month ago
Manos Pitsidianakis
85d4316a6a
Replace old logging module with the `log` create
1 month ago
Manos Pitsidianakis
30cc5d3d02
docs: add edit-config in manpages
1 month ago
Manos Pitsidianakis
b1a7188771
Clippy fixes
1 month ago
Manos Pitsidianakis
3a02b6fb80
README.md: mention how to override w3m with html_filter
1 month ago
3nt3
34bb532e8d
Mention w3m dependency
...
Fixes #181
Signed-off-by: 3nt3 <gott@3nt3.de>
1 month ago
Manos Pitsidianakis
47e6d5d935
meli: add edit-config CLI subcommand that opens config files on EDITOR
1 month ago
Manos Pitsidianakis
39d9c2af3b
melib/smtp: fix test smtp server logic
1 month ago
Manos Pitsidianakis
d679a74450
melib/jmap: Implement Bearer token authentication
...
Fastmail now uses an API token in a http header for authentication.
This can be used either as a server_password or provided by a
server_password_command like oauth2.
2 months ago
Manos Pitsidianakis
d9c07def0f
Add command to select charset encoding for email
...
Open dialog to select charset with `d`.
2 months ago
Manos Pitsidianakis
939dc15e28
Fix melib tests
2 months ago
Manos Pitsidianakis
3adf72aed0
Add support for utf-7 encoding
...
Closes #175
2 months ago
Johannes Schilling
2447a2cbfe
melib/jmap: avoid relying on hardcoded hash values
...
The hash values seem to have changed in the meantime, or aren't the same
on all environments.
3 months ago
Manos Pitsidianakis
d7ec97f03b
Small rustfmt change
3 months ago
Johannes Schilling
fbc1007ff4
jmap: deserialize `null` to empty vec for messageId
...
The spec says MessageId can be `null`, handle that case and deserialize
it to an empty Vec.
3 months ago
cos
256a3e252e
Update minimum supported rust version
...
Code requires label_break_value feature, which was [stabilized][0] in
release 1.65.0 of the toolchain.
[0]: https://github.com/rust-lang/rust/pull/99332
3 months ago
Manos Pitsidianakis
3a10953f05
debian/: update fix-prefix-for-debian.patch
3 months ago
Manos Pitsidianakis
11140b4a76
Fix test output
...
test_compose_reply_subject_prefix requires access to / path, and fails
when building with deb-dist
3 months ago
cos
671ce9f694
debian/: add missing build dependencies
...
quilt has unconditionally been used in debian/rules since the initial
addition of debian packaging support in commit bb80de.
sqlite3 has been a default feature since at least commit 6ceed3,
possibly longer through rusqlite.
3 months ago
Johannes Schilling
12cb717bda
melib: add server_password_command to jmap
...
Move the handling of either `server_password` or
`server_password_command` from the imap backend to the common
`AccountSettings` struct and add it for jmap as well.
3 months ago
Manos Pitsidianakis
f9ac9b607a
Temporarily disable libgpgme functions because of a bug
...
`Possible incorrect libgpgme API usage causes a SIGABRT when verifying
signatures #176`
<#176 >
4 months ago
Manos Pitsidianakis
660bacb926
Add `mailto` command to open composer with initial values from mailto template
5 months ago
Manos Pitsidianakis
de2f46fe61
rustfmt changes
5 months ago
Manos Pitsidianakis
5443b7e8f3
melib/sieve: remove literal_map() parse combinator
5 months ago
Manos Pitsidianakis
3c847ad26a
melib/sieve.rs: add beginning of sieve parser
...
Concerns #153
Support filtering rules to move mails to folders #153 <#153 >
5 months ago
Manos Pitsidianakis
2878bbb8c8
melib/addressbook: add parser for mutt alias file
6 months ago
Manos Pitsidianakis
40c6647db8
Fix multipart/related with main text/html part not displayed correctly
6 months ago
Manos Pitsidianakis
f63ce388f7
commands: move ManageMailboxes to Tab Actions
6 months ago
Manos Pitsidianakis
c06c3f5893
mail/listing/conversations: draw gap between list and mail view
6 months ago
Manos Pitsidianakis
abc56eae43
mail/listing: fix SEEN flag update hiding mail view momentarily
6 months ago
Manos Pitsidianakis
7606317f24
melib/notmuch: add support for virtual mailbox hierarchy
...
Add optional "parent" property to notmuch mailbox configuration.
Closes #167
#167
6 months ago
Manos Pitsidianakis
4f45b10974
mail/listing: fix tag updates not showing up right away
...
Closes #132
Closes #133
6 months ago
Manos Pitsidianakis
5634f95553
Rename MeliError struct to Error
6 months ago
Manos Pitsidianakis
259aeb0087
Convert {Account,Mailbox}Hash from typedef to wrapper struct
6 months ago
Manos Pitsidianakis
7382e30160
Convert EnvelopeHash from typedef to wrapper struct
6 months ago
Manos Pitsidianakis
2427b097c5
themes: make tag_default background lighter on light theme
...
Closes #164
6 months ago
Manos Pitsidianakis
252d2bdf2f
Replace hardcoded /bin/false with 'false'
...
Credits to http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/mail/meli/patches/patch-src_conf_rs?rev=1.1.1.1&content-type=text/x-cvsweb-markup
6 months ago
Manos Pitsidianakis
eaecc5ea12
melib/notmuch: remove hardcoded major .so version for non linux/macos target_os
...
Credits to http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/mail/meli/patches/patch-melib_src_backends_notmuch_rs?rev=1.1&content-type=text/x-cvsweb-markup for discovering this.
6 months ago
Manos Pitsidianakis
4b96bd591f
mail/listing: add ColorCache constructor to deduplicate code
6 months ago
Manos Pitsidianakis
b9030a684c
listings: fix selection not appearing immediately and invalid motions
6 months ago
Manos Pitsidianakis
2224a7100f
melib/imap: reset imap cache on init error
6 months ago
Manos Pitsidianakis
7924aa8bfe
melib/jmap: fix compilation
6 months ago
Manos Pitsidianakis
7af893597f
conf/shortcuts.rs: replace use of Self::DESCRIPTION with Shortcuts struct consts
6 months ago
Manos Pitsidianakis
7d9cabb023
Add mailbox manager tab
6 months ago
Manos Pitsidianakis
ee9d458b05
accounts.rs: implement mailbox {un,}sub actions
6 months ago
Manos Pitsidianakis
5ba7b2cd7b
meli: fix clippy lints for meli binary
7 months ago
Manos Pitsidianakis
104352e595
Add table UI widget
7 months ago
Manos Pitsidianakis
bd22f986f0
melib: fix clippy lints
7 months ago
_
ded9adde61
More descriptive "Unimplemented" messages
7 months ago
Manos Pitsidianakis
6317984136
Makefile: add --bin flag to meli cargo build target
7 months ago
Manos Pitsidianakis
db227dea34
build.rs: add error messages if `mandoc`,`man` binaries are missing
7 months ago
Manos Pitsidianakis
282af86e83
docs: fix NAME sections manual pages for correct whatis(1) parsing
...
Reference used was WHATIS PARSING section in lexgrog(1).
This change enables the manual page to be returned with a whatis(1)
query:
$ whatis meli
meli (1) - terminal e-mail client
7 months ago
Manos Pitsidianakis
cc439b239a
mail/listing.rs: add RowsState struct
...
Keep state of rows in lists in this struct to reduce code duplication in
list implementations
7 months ago
Manos Pitsidianakis
b776409d6c
melib/thread.rs: add thread, env hash index fields
7 months ago
Manos Pitsidianakis
56fc43bcf8
melib: add As{Ref,Mut} impls for RwRef{,Mut}
7 months ago
spike
59b95f83d2
fix docs
7 months ago
Manos Pitsidianakis
88a1f0d4bc
melib/imap/parser: fix FETCH response parsing bug
...
Closes #160
Closes #128
8 months ago
Manos Pitsidianakis
64346dd3fe
melib/parsec: add map_res, quoted_slice, is_a, alt, take, take_literal
8 months ago
Manos Pitsidianakis
17b42b1a6c
melib/parsec: add json deserialization tests
8 months ago
Manos Pitsidianakis
6d20abdde7
melib/gpgme: add #[allow(deref_nullptr)] in bindgen tests
8 months ago
Manos Pitsidianakis
803d3414fd
melib/imap/managesieve: implement some rfc5804 commands
...
Try with managesieve REPL in src/managesieve.rs:
cargo run --bin managesieve-client ~/.config/meli/config.toml
"accountname"
rfc5804 <https://www.rfc-editor.org/rfc/rfc5804.html >
8 months ago
Manos Pitsidianakis
3697b7d960
melib/datetime: don't use LC_ category in place of LC_ masks in libc calls
...
LC_ masks are bit masks, whereas category values are not.
Concerns #159
[imap] all mail timestamps are zero/epoch #159
#159
8 months ago
Manos Pitsidianakis
dd0baa82e9
Spawn user-given command strings with sh -c ".."
...
If given string contains arguments, Command::new(string) will fail.
Reported in #159 #159
8 months ago
Manos Pitsidianakis
0ef4dde939
melib/jmap: wrap serde_json deserialize errors in human readable errors
8 months ago
Manos Pitsidianakis
55ed962425
melib/jmap: use server_url instead of server_hostname + server_port in config
8 months ago
Manos Pitsidianakis
46a038dc68
conf.rs: remove interactive messages when #[cfg(test)]
8 months ago
Manos Pitsidianakis
16646976d7
compose: fix reply subject prefixes stripping original prefix
...
Unintelligent heuristic but should cover most cases?
Configurable subject response prefix #142
#142
Closes #142
8 months ago
Manos Pitsidianakis
ffb12c6d1a
conf.rs: make all public struct fields public
8 months ago
Manos Pitsidianakis
7e09b1807f
melib/collection: replace _Ref deref unwraps with expect()
8 months ago
Manos Pitsidianakis
129573e0fd
melib/maildir: rename root_path to root_mailbox
8 months ago
Manos Pitsidianakis
0c08cb737c
melib/jmap: mark mailboxes as subscribed on personal accounts
...
The spec https://jmap.io/spec-mail.html#mailboxes says a mailbox property `isSubscribed` should be considered true if the account is marked as `isPersonal`.
Closes #157
JMAP incompatible with Stalwart server #157 #157
8 months ago
Manos Pitsidianakis
117d7fbe04
melib/jmap/rfc8620.rs: make private fields public
8 months ago
Manos Pitsidianakis
347be54305
melib/error: add NetworkErrorKind enum
8 months ago
Manos Pitsidianakis
7935e49a00
conf/accounts.rs: check properly if mailbox request is an error
8 months ago
Manos Pitsidianakis
c54a31f7cc
listing/offline.rs: break line for error messages
8 months ago
Manos Pitsidianakis
c3fdafde3b
Documentation touchups
8 months ago
Manos Pitsidianakis
c6bdda03cf
melib/backends.rs: fix notmuch error shown on any missing backend
9 months ago
Manos Pitsidianakis
e450ad0f9c
types.rs: remove unused struct
9 months ago
Manos Pitsidianakis
0ed10711ef
notifications: add new_mail_script option
...
Preferred over `script` option for new email notifications
9 months ago
Manos Pitsidianakis
d8d43a16fe
HtmlView: add html_open config setting
...
Add config setting in case xdg query default app for text/html mime type
doesn't yield results.
9 months ago
Manos Pitsidianakis
b87d54ea3f
melib/backends.rs: impl Into<BTreeSet<EnvelopeHash>> for EnvelopeHashBatch
9 months ago
Manos Pitsidianakis
a7a50d3078
src/: Box<_> some large fields in biggest types
...
As reported by `cargo +nightly typesize`
9 months ago
Manos Pitsidianakis
b138d9bc61
melib: fix some clippy lints
9 months ago
Manos Pitsidianakis
787c64c2da
conf.rs: remove expect()s from create_config_file()
...
No reason to expect(), just return the error.
9 months ago
Manos Pitsidianakis
0df46a63ec
Show error if sqlite3 search backend is set but doesn't exist
...
Closes #114
9 months ago
Manos Pitsidianakis
94bd84b45d
Fix clippy lints for `meli` crate
9 months ago
Manos Pitsidianakis
388d4e35d6
listing/offline.rs: add in-progress messages while connecting in IMAP
9 months ago
Manos Pitsidianakis
9cbbf71e0f
melib/email/attachments: Add DecodeOptions struct for decoding
9 months ago
Manos Pitsidianakis
3688369278
melib/smtp: add smtp test
9 months ago
Manos Pitsidianakis
3c0f5d8274
melib/smtp: add BINARYMIME support to smtp client
...
Concerns #49
IMAP: Lemonade profile tracking issue
9 months ago
Manos Pitsidianakis
a72c96a26a
melib/smtp: add 8BITMIME support to smtp client
...
Concerns #49
IMAP: Lemonade profile tracking issue
9 months ago
Manos Pitsidianakis
8c7b001aa5
listing/conversations.rs: add `thread_subject_pack` command to pack different inner thread subjects in entry title
9 months ago
Manos Pitsidianakis
9dc4d4055c
listing: add focus_{left,right} shortcuts to switch focus
...
This allows you to make the mail entry column occupy the whole screen if
you press focus_right (Right key) twice.
9 months ago
Manos Pitsidianakis
3d92b41075
Add cli-docs feature to the default set
9 months ago
Manos Pitsidianakis
7c7115427d
docs/meli.7: complete guide document
9 months ago
Manos Pitsidianakis
5fa4b6260c
docs/meli.7: add more screenshots
9 months ago
Manos Pitsidianakis
4a20fc42e1
Update CHANGELOG.md
9 months ago
Manos Pitsidianakis
f76f4ea3f7
docs: add meli.7, a general tutorial document
...
This commit also changes some shortcut names.
9 months ago
Manos Pitsidianakis
2de69d17f1
melib/compose: fix erroneous placement of newlnes for wrap_header_preamble suffix
9 months ago
Manos Pitsidianakis
cbe593cf31
mail/compose: add configurable header preample suffix and prefix for editing
...
This commit adds a new configuration value for the composing section of
settings. Quoting the documentation:
wrap_header_preamble: Option<(String, String)>
optional
Wrap header preample when editing a draft in an editor. This allows you
to write non-plain text email without the preamble creating syntax
errors. They are stripped when you return from the editor. The values
should be a two element array of strings, a prefix and suffix. This can
be useful when for example you're writing Markdown; you can set the
value to ["<!--",\ "-->"] which wraps the headers in an HTML comment.
9 months ago
Manos Pitsidianakis
a484b397c6
melib/notmuch: show informative error messages if libloading fails
...
Add instructions on how to solve this, and also a config setting
`library_file_path` to set the path manually if necessary.
9 months ago
Manos Pitsidianakis
eb5949dc9b
melib/error.rs: switch summary<->details identifiers
...
They are more intuitive like this.
9 months ago
Manos Pitsidianakis
aa99b0d787
compose: implement configurable subject prefix stripping when replying
...
Introduce functionality to strip email subject from a set list of
prefixes or from a user set list.
Also, added a setting for the reply prefix (default is "Re:").
Closes #142
9 months ago
Manos Pitsidianakis
da9c80ccfd
melib: Enhance SubjectPrefix with strip_prefixes_from_list() method
...
And make it public.
9 months ago
Manos Pitsidianakis
a73885acb1
Improve embed terminal
...
- Add character attribute support
- Add cursor key mode support
- Fix buggy set fg / bg sequences
And added a bin under tools to test arbitrary apps using the embedded
terminal:
cargo run -p tools --bin embed -- "htop" 2> .htop.debug.log
9 months ago
Manos Pitsidianakis
480000ebbb
melib/notmuch: show error if account directory does not contain ".notmuch" subdirectory
...
Bug reported by user on mailing list.
9 months ago
Manos Pitsidianakis
29042aba59
melib/datetime: add mbox date format parse
9 months ago
Manos Pitsidianakis
a42a6ca868
notifications.rs: show notifications in terminal if no alternative
...
If no alternative (dbus or notification command) show notifications
inside the terminal.
9 months ago
Manos Pitsidianakis
bde87af387
Refactor filter() method in Listing trait
9 months ago
Manos Pitsidianakis
10497952f7
Wrap stdout in BufWriter
...
Hopefully this makes redrawing the terminal faster
9 months ago
Manos Pitsidianakis
0c0bee4482
Makefile: add missing .PHONY targets, fix missing tab indentation
9 months ago
Manos Pitsidianakis
ca48896865
Cargo.toml: add strip option to profile.release
9 months ago
Manos Pitsidianakis
7650805c60
Bring stripped binary size down to 7MiB
9 months ago
Manos Pitsidianakis
e29041f733
Rename src/bin.rs to src/main.rs
9 months ago
Manos Pitsidianakis
f4e0970d46
mail/compose.rs: add ability to kill embed process
...
If embed editor process is unresponsive, there was no way to kill it.
Add force kill option by pressing Ctrl+C.
9 months ago
Manos Pitsidianakis
9cb66ef818
Fix all clippy warnings in `meli` crate
10 months ago
Guillaume Ranquet
d921b3c320
compact.rs: use mail sorting parameters from config
...
Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
10 months ago
Guillaume Ranquet
9205f3b8af
conf.rs: handle a per account mail order parameter
...
The new order parameter adds the possibility to specify a
sort order on a per account basis.
Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
10 months ago
Guillaume Ranquet
97ff3e787f
conf.rs: only add toml files to the themes
...
By default, all files under MELI_CONFIG/themes are added to the
configuration files.
If one of these files is a binary file, this will provoke an error.
Summary: InvalidData
stream did not contain valid UTF-8
Caused by: stream did not contain valid UTF-8
Kind: OS Errorthread 'main' panicked at 'failed', melib/src/error.rs:201:9
Fixes the potential issue by filtering by file extension.
Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
10 months ago
Manos Pitsidianakis
824f614a69
mail/view: Fix HtmlView not being redrawn when parent is dirty
10 months ago
Manos Pitsidianakis
ed3dbc8586
listing/conversations: fix crashes when listing is empty
10 months ago
Manos Pitsidianakis
7fca5f01ef
melib/jmap: fix jmap build with isahc 1.7.2
10 months ago
Manos Pitsidianakis
b716e4383e
Add collapse option for mailboxes in sidebar menu
...
Closes #130
Feature request: collapsible folders with total counter #130 #130
10 months ago
Manos Pitsidianakis
4a79b2021d
Update dependency versions
10 months ago
Manos Pitsidianakis
daa900ec9a
Fix embed terminal in macos
...
Pseudoterminal wasn't created correctly on macos
10 months ago
Manos Pitsidianakis
ca84906d7d
notifications: escape all quotes in applescript on macos
11 months ago
Manos Pitsidianakis
ce269c64e1
conf: don't fail on `server_password_command`
...
Don't fail when parsing an IMAP config when it has
`server_password_command` set.
Closes #139
Meli stopped recognizing server_password_command configuration #139
1 year ago
Manos Pitsidianakis
0f6f3e30c6
conf: add IMAP config in config parse test
1 year ago
Manos Pitsidianakis
e6d6e1f588
compose: don't unwrap if pseudoterminal creation fails
...
Show error notification instead.
1 year ago
Manos Pitsidianakis
dc5afa13db
notifications: use osascript/applescript for notifications on macos
1 year ago
Manos Pitsidianakis
d6355a3043
melib/email/parser: impl Debug for ParsingError
1 year ago
Manos Pitsidianakis
6a843d4983
melib/maildir: export list_mail_in_maildir_fs() function
1 year ago
Manos Pitsidianakis
9558b2ae92
melib/email: parse Cp1253 as windows1253 encoding
1 year ago
Manos Pitsidianakis
4fdc90b31e
Use `open` instead of `xdg-open` in macos
...
TODO: make this configurable instead.
1 year ago
Manos Pitsidianakis
8563bccd1b
listing/conversations: don't cache CellBuffer, only row info
...
Caching a CellBuffer (a terminal grid view) takes too much RAM on big
mailboxes. Store just the information needed to write each row entry
when needed to draw a page instead.
1 year ago
Manos Pitsidianakis
721891c295
Update nom dependency
1 year ago
Manos Pitsidianakis
2c23ca34cd
Update most Cargo dependencies
1 year ago
Manos Pitsidianakis
2eb22a290a
Stop hardcoding certain component colors
...
`Color::Byte` references were before themes were introduced in the code
base. Their presence is a bug and they should all be replaced by theme
values.
Closes #124
Stop hardcoding certain component colors #124
#124
1 year ago
Manos Pitsidianakis
5823178cc2
themes.rs: add test that looks in source code for invalid theme key references
1 year ago
Manos Pitsidianakis
81184b182c
Add extra_identities configuration flag
...
Closes #119
Multi identies per account #119 #119
1 year ago
Manos Pitsidianakis
aa3524dd30
melib/backends/notmuch: fix tag not being removed in set_flags()
...
May be related to #132
Cannot remove tags in the notmuch backend #132
> Running tag remove TAG on the notmuch backend does nothing. At a
> glance, this seems to be because NotmuchMailbox::set_flags never bothers
> to remove tags that are already present but not in the list of new tags.
> I could try fixing it, but I have no idea how the contribution process
> works here (my guess is the mailing list, but, well, #131 ).
#132
1 year ago
Manos Pitsidianakis
23c2355662
utilities.rs: fill and align shortcut table columns
1 year ago
Manos Pitsidianakis
d3e62e3d74
utilities/dialogs.rs: use conf shortcuts for scroll {up, down}
1 year ago
Manos Pitsidianakis
a866b29499
docs/meli.conf.5: update valid shortcut entries from src/conf/shortcuts.rs
...
Closes #136
docs/meli.conf.5 does not contain all shortcuts #136 #136
1 year ago
Manos Pitsidianakis
f5dc25ae0d
conf.rs: check that all conf flags are recognized in validation
...
This commit adds logic in configuration file validation that checks that
each account "extra" field is empty after getting it back from the
backend validation. This is to ensure the user doesn't set options that
are invalidly stated in the documentation or by accident.
Closes #135
Configuration error (xxx): the following flags are set but are not recognized: ["index_style"] #135
1 year ago
Manos Pitsidianakis
d0de04854e
listing.rs: add {in,de}crease_sidebar shortcuts
...
`increase_sidebar`: Increase sidebar width.
Default value Ctrl-p
`decrease_sidebar`: Decrease sidebar width.
Default value Ctrl-o
1 year ago
Manos Pitsidianakis
340d6451a3
listing.rs: add config setting for sidebar ratio
1 year ago
Manos Pitsidianakis
e9aaa7b067
melib/datetime: use *const c_char instead of *const i8 for portability
...
Using *const i8 broke compatibility with arm64.
Fixes #127
1 year ago
Manos Pitsidianakis
d4b690d5d3
melib/imap: send password as byte literal on LOGIN
...
Concerns #125
Escape IMAP passwords properly #125
1 year ago
Manos Pitsidianakis
ce2068d36b
melib/jmap: fix background watch using JSON paths incorrectly
1 year ago
Manos Pitsidianakis
0d8bedd2d5
melib/jmap: make is_online() await for connection
...
Closes #126 #126
1 year ago
Manos Pitsidianakis
81d1265601
melib/imap: escape IMAP passwords properly
...
Closes #125
2 years ago
Manos Pitsidianakis
d8e9a00563
melib/imap: add quoted REFERENCES field in parsing of responses
2 years ago
Geoff Beier
330a2b20ed
conf.rs: flush stdout in Ask() after printing
2 years ago
Manos Pitsidianakis
36e29cb6fd
Add configurable mailbox sort order
...
Closes #25
```
sort_order unsigned integer (optional) Override sort order on the sidebar for this mailbox. Example:
[accounts."imap.example.com".mailboxes]
"INBOX" = { index_style = "plain" }
"INBOX/Sent" = { sort_order = 0 }
"INBOX/Drafts" = { sort_order = 1 }
"INBOX/Lists" = { sort_order = 2 }
```
2 years ago
Manos Pitsidianakis
5f003a31be
melib/addressbook/vcard: Parse vCards with just LF instead of CRLF line endings
...
According to the vcard RFC
https://datatracker.ietf.org/doc/html/rfc6350#section-3.2 all lines must
end with CRLF (\r\n or 0x0d 0x0a)
Some VCard sources use only newline, which, while spec violating is easy
to recover from. So parse them as if they are correct.
Closes #121
2 years ago
Manos Pitsidianakis
2580522931
melib/addressbook: log vcard parsing failures
2 years ago
Manos Pitsidianakis
15ca25af73
Bump version to 0.7.2
2 years ago
Manos Pitsidianakis
37d0846195
melib/email/address: quote display_name if it contains ","
2 years ago
Manos Pitsidianakis
ffc498a5d0
melib/smtp: fix Cc and Bcc ignored when sending mail
2 years ago
Manos Pitsidianakis
d25eb00a11
command: improve(?) command completion and add test
2 years ago
Manos Pitsidianakis
240374950a
melib/email/address: quote display_name if it contains "."
2 years ago
Manos Pitsidianakis
505adca54d
Add forward mail option
...
Forward email with shortcut 'forward' (default ctrl+f)
This opens a composing tab letting you to select receiver etc.
"composing" config setting "forward_as_attachment" selects the
forwarding behavior:
- "ask" asks you ever time
- true always forwards by attaching the entire email as a single
attachment
- false always forwards by inlining the email, like most email clients
do.
Closes #120
2 years ago
Manos Pitsidianakis
e090c31f96
state: Move grid to Screen struct under terminal mod
2 years ago
Manos Pitsidianakis
20feb50475
view/thread: open the latest email in the thread by default
2 years ago
Manos Pitsidianakis
f975e1004c
Add url_launcher config setting
2 years ago
Manos Pitsidianakis
b88c3c573d
Add add_addresses_to_contacts command
2 years ago
Manos Pitsidianakis
32901f57d2
Add show_date_in_my_timezone pager config flag
...
Closes #28
2 years ago
Manos Pitsidianakis
d1712557cb
docs: add pager filter documentation
2 years ago
Manos Pitsidianakis
a977351f0a
mail/view: respect per-folder/account pager filter override
2 years ago
Manos Pitsidianakis
e7b9d2963c
pager: add filter command, esc to clear filter
2 years ago
Manos Pitsidianakis
25579d8807
terminal/cells: remove ansi module
2 years ago
Manos Pitsidianakis
22fb2ed46c
Implement pager filter through EmbedGrid
...
Parse pager filter output as an EmbedGrid instead of the old ansi parser
module.
2 years ago
Manos Pitsidianakis
733de5a5fb
Fix some clippy suggestions
2 years ago
Manos Pitsidianakis
592339bdca
embed: split EmbedGrid to EmbedTerminal and EmbedGrid
...
An embedded pseudoterminal was enclosed in the EmbedGrid struct. This
commit splits it into EmbedTerminal and EmbedGrid, with EmbedGrid
containing only the CellBuffer grid logic. With this change we can reuse
EmbedGrid to parse ANSI output from external programs into meli's
CellBuffer's.
2 years ago
Manos Pitsidianakis
ae8c2addab
Show compile time features in with command argument
...
Show compile time feature flags with compiled-with subcommand
Closes #115
2 years ago
Manos Pitsidianakis
bc08bf1d13
Bump version to 0.7.1
2 years ago
Manos Pitsidianakis
7533df86e0
Fix compilation for netbsd-9.2
...
$ rustc -V
rustc 1.52.1
$ cargo -V
cargo 1.52.0
Pre-requisite steps needed for build:
- Needed to install mozilla certs
- Needed to set OPENSSL_DIR=/usr
2 years ago
Manos Pitsidianakis
526a246430
melib/nntp: update total/new counters on new articles
2 years ago
Alex.F
69916f267b
add 'GB18030' charset
2 years ago
Manos Pitsidianakis
13c5798c7b
conf/shortcuts.rs: add info_message_{next,previous}
2 years ago
Manos Pitsidianakis
07e166e1fb
melib/error: Add kinds: NotImplemented, NotSupported, OSError
2 years ago
Manos Pitsidianakis
72a2ba20dc
conf/accounts.rs: print info when displaying watch error
2 years ago
Manos Pitsidianakis
c8da6d2049
melib/nntp: implement refresh
2 years ago
Manos Pitsidianakis
90042379a6
melib/{imap,nntp}: throw error on extra unusued conf flags
2 years ago
Manos Pitsidianakis
f40ae9e11b
Change all Down/Up shortcuts to j/k
2 years ago
Manos Pitsidianakis
09f3edba76
config: show explanation if `composing` field missing
2 years ago
Manos Pitsidianakis
09dc0a2409
melib/conf: deserialize ToggleFlag from bool & string
2 years ago
Manos Pitsidianakis
3bc187c570
melib/collections: add RwRef{,Mut} structs
2 years ago
Manos Pitsidianakis
05393d8caa
listing/conversations: highlight two rows instead of three
2 years ago
Manos Pitsidianakis
b49d965695
Fix unused var etc warnings
2 years ago
Manos Pitsidianakis
6235164df2
melib/nntp: increase chunk size
2 years ago
Manos Pitsidianakis
521f634e7b
melib/nntp: implement NNTP posting
2 years ago
Manos Pitsidianakis
978939d8e3
Bump version to 0.7.0
2 years ago
Manos Pitsidianakis
d1437ff275
command/actions.rs: ask confirmation for delete
2 years ago
Manos Pitsidianakis
f097593bed
melib/datetime: fix date format string
2 years ago
Ludovic LANGE
b08570349d
Notmuch dynamic library can now be loaded on macos
...
On macos, the name of dynamic libraries is a little bit different than on Unix.
The code was looking for a `libnotmuch.so.5` library, while on macos
it's installed as `libnotmuch.5.dylib`.
This commit uses cfg attribute to conditionally change the library name.
Closes #106
2 years ago
Manos Pitsidianakis
d6bf700175
Update Cargo.lock
2 years ago
Manos Pitsidianakis
5a9f63c51e
listing/compact: Fix off-by-one error in area calculation
2 years ago
Manos Pitsidianakis
9d7e877510
listing/plain: move flags to subject column
2 years ago
Manos Pitsidianakis
ad2a10478e
listing/compact: move flags to subject column
...
Flags (attachment, unseen, etc) being their own column
overcomplicated code, so just prepend them to subject column.
2 years ago
Manos Pitsidianakis
64b62352d0
listing: add {unseen,selected,attachment,thread_snoozed} flag config values
2 years ago
Manos Pitsidianakis
b411daddaa
listing/conversations: remove entry padding box character
...
Remove padding each entry with '░' box character.
2 years ago
Ludovic LANGE
66c6b62aa6
Cargo.lock: Update lexical-core version
...
Fixes compilation on macos 10.15.3, rustc 1.53.0
2 years ago
Manos Pitsidianakis
eea9ac2b58
README.md: update with new IRC channel location
2 years ago
Manos Pitsidianakis
d16866e0f0
notifications: run update_xbiff even if notifications disabled
2 years ago
Manos Pitsidianakis
bcca9abe66
docs: Use example.com in documentation
...
Closes #96
2 years ago
Manos Pitsidianakis
24b4c117e7
melib: don't use both {set,push}_references()
...
set_references() already calls push_references()
2 years ago
Manos Pitsidianakis
b0fba401e6
melib/mbox: consistent line endings in MboxFormat::append
2 years ago
Manos Pitsidianakis
48d4343082
utilities/ProgressSpinner: add interval field and new spinners
2 years ago
Manos Pitsidianakis
2dfeb29b75
jobs/Timer: add set_interval()
2 years ago
Manos Pitsidianakis
63d2fb93f4
melib/nntp: fix not connecting with TLS
2 years ago
Manos Pitsidianakis
cf9457882a
melib/mbox: add MboxMetadata type and write support
2 years ago
Manos Pitsidianakis
3fa9e355c2
melib/email: add Flag is_*() methods
2 years ago
Manos Pitsidianakis
3dae84182c
melib/mbox: add module-level doc
2 years ago
Manos Pitsidianakis
a4ae4da8b1
Add export-mbox command
2 years ago
Manos Pitsidianakis
4050f6893f
melib/mbox: add MboxFormat::append() method
...
Add support for writing mbox files
2 years ago
Manos Pitsidianakis
dcccd303ac
melib/mbox: rename MboxReader to MboxFormat
2 years ago
Manos Pitsidianakis
22a64e2d76
melib: Remove unnecessary "pub use" std exports
2 years ago
Manos Pitsidianakis
781a1d0e1b
melib/backends: add collection() method to MailBackend
...
Keep track of the Collection state in the backend side
2 years ago
Manos Pitsidianakis
eb8d29813c
utilities/Tabbed: send VisibilityChange event on changing tab
2 years ago
Manos Pitsidianakis
08af46f5ef
melib/datetime: fix test compile failure
2 years ago
Manos Pitsidianakis
2f47f1eebd
melib/jmap: fix mailbox children relationships being ignored
2 years ago
Manos Pitsidianakis
622ded8021
compose: add attribution line for replies
2 years ago
Manos Pitsidianakis
6d63429ad3
Add scrolling context to StatusBar
...
- Whenever a scrolling context is entered/exited, send a ScrollUpdate event.
- StatusBar maintains a stack of scrolling contexts and displays the
last one, if it exists. Each context is associated with a ComponentId.
- To handle dangling contexts after their Components aren't visible
anymore, send a VisibilityChange event in situations where that scenario
is possible.
2 years ago
Manos Pitsidianakis
5eb4342af8
Update dependencies, update indexmap to ^1.6
2 years ago
Manos Pitsidianakis
eca10a5660
melib/backends: add mailbox management events to RefreshEventKind
...
Add mailbox management events from RFC 5423 Internet Message Store
Events
https://tools.ietf.org/html/rfc5423#page-8
2 years ago
Manos Pitsidianakis
a697dfabbd
melib/jmap: use receivedAt as alternative to Date in Envelope gen
2 years ago
Manos Pitsidianakis
23997bdec0
melib/jmap: add UTCDate queries in EmailFilterCondition
...
Not necessarily working, added as stubs for future work
Closes #62
2 years ago
Manos Pitsidianakis
2e6a1e1ef8
melib/datetime: rename tests for consistency
2 years ago
Manos Pitsidianakis
fe200a3218
melib/datetime: isolate unsafe blocks
...
Isolate unsafe blocks where possible to make code review easier
2 years ago
Manos Pitsidianakis
bf9143d8e4
melib/datetime: use Cow<'_, CStr> in timestamp_to_string()
...
Use Cow to avoid unnecessary allocations when provided a nul-terminated
format string
2 years ago
Manos Pitsidianakis
441dcb62ca
melib/datetime: add format string constants
2 years ago
Manos Pitsidianakis
4cd3e28244
melib/datetime: fix import style inconsistencies
2 years ago
Manos Pitsidianakis
3dba6fdf60
melib/datetime: add posix locale arg in timestamp_to_string()
2 years ago
Manos Pitsidianakis
50cd81772f
melib/jmap: impl watch() with polling
...
Concerns #22
2 years ago
Manos Pitsidianakis
613c3de3d2
melib/connections: add async sleep(dur: Duration)
2 years ago
Manos Pitsidianakis
62db7d7f32
melib/jmap: put JmapSession behind mutex
...
And deserialize API urls to Arc<String>.
2 years ago
Manos Pitsidianakis
1c25ae12eb
Use default_cell in CellBuffer resize(), clear()
2 years ago
Manos Pitsidianakis
ccc083cf88
Rewrite Cellbuffer Debug impl
2 years ago
Manos Pitsidianakis
db69349251
melib/notmuch: avoid parsing entire email in Envelope creation
2 years ago
Manos Pitsidianakis
806254436b
melib/notmuch: add AccountHash field to NotmuchDb
2 years ago
Manos Pitsidianakis
4f164dc700
melib/notmuch: cleanup Query new() method
2 years ago
Manos Pitsidianakis
ab0ef1b63c
melib/thread: hash Message-ID for ThreadNodeHash
...
Make ThreadNodeHash predictable.
2 years ago
Manos Pitsidianakis
b966ee8fbd
melib/email: return &mut Self in set_*() methods
...
Return &mut Self to allow chaining setter methods
2 years ago
Manos Pitsidianakis
34e970d922
melib/datetime: Add Locale struct for error checking
2 years ago
Zisu Andrei
f7cbd9a64d
melib/datetime: Set C locale for strptime parsing
...
This is the locale that should be used for computer interoperability
when doing date and time parsing and formatting.
Without this, on systems which don't have the US locale set, the parsing
returns 0.
2 years ago
Manos Pitsidianakis
829f1243fb
melib/imap: fix invalid FETCH edge case
...
If mailbox was empty, this FETCH would request "0:*" which is an invalid
message set since message sequence numbers start with 1.
2 years ago
Manos Pitsidianakis
1be30968ca
melib/mbox: fix FreeBSD compilation
...
Reported in #92
2 years ago
Manos Pitsidianakis
92475c349a
melib/mbox: return Result in file locking
2 years ago
Manos Pitsidianakis
2d5f5e767c
listing/conversations: hash addr by addr_spec in from_address_list
...
While accumulating addresses for the 'From' list for each envelope
entry, hash the addresses by the address spec (i.e. the email address)
instead of the entire address. This prevents duplicates of the same
email address but with different display names.
2 years ago
Zisu Andrei
0034f195e3
melib/imap: Lazy evaluate idle capability
...
With the eager evaluation, you run the risk of checking the capabilities
store before any connection to the server may have been opened.
Therefore, the capabilities uid_store will be empty and it will fall
back to poll_with_examine even if the server might have support for
idle.
2 years ago
Manos Pitsidianakis
9124ad0ae7
conf/accounts: remove some unnecessary unwraps
2 years ago
Manos Pitsidianakis
ed826357a3
Don't unwrap try_recv() on async jobs channels
...
Job might have been canceled.
2 years ago
Manos Pitsidianakis
b2e853dd7b
melib/imap: update unseen count on \Seen set_flags()
2 years ago
matzipan@gmail.com
aa503deb76
melib/imap: Set special usage attributes for INBOX
...
Without this change, the usage is not correctly identified when calling
imap_mailboxes in the imap backend.
2 years ago
Manos Pitsidianakis
fee8f5b575
melib/backends: move IsSubscribedFn to backends mod
2 years ago
Manos Pitsidianakis
7e977fe627
melib/imap/cache/sync: explicitly remove new seen messages from unseen counter
2 years ago
Manos Pitsidianakis
09684e821d
melib/imap: check INBOX when pausing IDLE
2 years ago
Manos Pitsidianakis
10b10e6267
README.md: add mirror links
3 years ago
Manos Pitsidianakis
48e7a493a9
Add reload-config command
...
Closes #84 Add "reload configuration" command
3 years ago
Manos Pitsidianakis
e5b0ff4fe2
state: remove runtime_settings
3 years ago
Manos Pitsidianakis
68f9d1220b
melib/imap: remove DoubleEndedIterator for ImapLineIterator
3 years ago
Manos Pitsidianakis
1408690a9a
melib/imap: don't retry watch conn on non-network error
3 years ago
Manos Pitsidianakis
76814cea20
themes/sail: make only headers_name bold
3 years ago
Manos Pitsidianakis
7e1e57a2df
conf/themes: add mail.view.headers_names and mail.view.headers_area
...
Allow separate customization of header names and the rest of the header
area.
3 years ago
Manos Pitsidianakis
f8a47586e9
mail/listing: show mailbox loading state in status
3 years ago
Manos Pitsidianakis
7efbe6d692
listing: fix menu/sidebar not being redrawn on updates
3 years ago
Manos Pitsidianakis
0f86934e16
mail/status: display in-progress jobs first
3 years ago
Manos Pitsidianakis
c5a5c2666b
utilities/pager: show scrolling percentage and/or search results position
3 years ago
Manos Pitsidianakis
7db32ff1b3
terminal/cells: return success flag in CellBuffer::resize()
3 years ago
Manos Pitsidianakis
857d4d546f
utilities/pager: use LineBreakText for lazy line breaking
3 years ago
Manos Pitsidianakis
5327dae02d
melib/text_processing: add LineBreakText iterator
...
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.
3 years ago
Manos Pitsidianakis
c990687e5f
docs/meli-themes.5: replace toml spec dead link
3 years ago
Manos Pitsidianakis
453bb0b2b2
melib/smtp: implement gmail XOAUTH2 authentication method
3 years ago
Manos Pitsidianakis
4914f29e20
themes: make conversations defaults grey
3 years ago
Manos Pitsidianakis
bedf181aff
melib/imap: examine all mailboxes before idle
3 years ago
Manos Pitsidianakis
9dd21eea50
melib/threads: prefer local ThreadNode env_hash
...
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.
3 years ago
Manos Pitsidianakis
4939a1ad9e
melib/imap: remove some debug prints
3 years ago
Manos Pitsidianakis
8e7583a32f
melib/imap: don't clear mailbox counts before fetching
3 years ago
Manos Pitsidianakis
5f6b4745b8
melib/imap: don't use UNSEEN select response for unseen count
...
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.
3 years ago
Manos Pitsidianakis
76c1c1a213
melib/imap: don't examine unloaded mailboxes for updates
...
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
3 years ago
Manos Pitsidianakis
ddfadc748d
melib/imap: don't fetch RFC822 except when requested
...
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
3 years ago
Manos Pitsidianakis
66dea9148b
mail/view: don't update() if coordinates are unchanged
3 years ago
Manos Pitsidianakis
7b3fb86483
mail/view: reset self.theme_default on loading envelope
...
self.theme_default might have initial value from MailView::default()
which does not correspond to actual theme_default
3 years ago
Manos Pitsidianakis
d8c978ed2d
mail/view/thread: fix scrollbar incorrect rendering
3 years ago
Manos Pitsidianakis
d076ff573f
MailView, StatusBar: Fix area bound check
3 years ago
Manos Pitsidianakis
6cbb89a8e5
utilities/widgets: fix tiny scrollbar grievances
...
- set minimum width/height to 1
- set reverse terminal attribute on !use_color
- use < > ^ v arrows and # block char if ascii_drawing
3 years ago
Manos Pitsidianakis
aa89969dca
utilities: use align_area in shortcut help panel
...
Before this commit shortcut help panel used to span almost all of the screen.
Use align_area() to center shortcut help box to its minimally required
size.
3 years ago
Manos Pitsidianakis
6a67322570
utilities: add scrollbar on y overflow in shortcuts panel
3 years ago
Manos Pitsidianakis
3e109cabf0
Add sail theme
3 years ago
Manos Pitsidianakis
1cbb6828f2
Add nord theme
3 years ago
Manos Pitsidianakis
de018294e4
conf/themes: make notifications bg default color instead of red
3 years ago
Manos Pitsidianakis
6dd3b0bb4f
Fix theme_default not being respected
3 years ago
Manos Pitsidianakis
714ccb5e16
Move Color to src/terminal/color.rs
3 years ago
Manos Pitsidianakis
8d9247e9a3
listing: show auto-hide scrollbar in sidebar menu
...
Setting to turn it off is listing.show_menu_scrollbar.
Concerns #85 Accounts sidebar doesn't scroll
3 years ago
Manos Pitsidianakis
b659749880
listing: scroll account sidebar menu
...
Closes #85 Accounts sidebar doesn't scroll
3 years ago
Manos Pitsidianakis
b053aaa145
listing: prevent invalid area in print_account()
3 years ago
Manos Pitsidianakis
883b3e3a4f
mail/view: show multipart/alternative files properly in attachment list
...
Show entire multipart/alternative alternatives in attachment list
instead of only the displayed one, in order for the user to be able to
switch alternatives at will.
3 years ago
Manos Pitsidianakis
98c1ece28d
Update xdg-util dependency to 0.4.0
3 years ago
Manos Pitsidianakis
54b2066f73
mail/view: set dirty after closing ContactSelector
3 years ago
Manos Pitsidianakis
007e6320d5
utilities: respect theme_default in shortcut dialog
3 years ago
Manos Pitsidianakis
e01275cd93
utilities/dialogs: add cursot Unfocused state as default
3 years ago
Manos Pitsidianakis
879af75d88
utilities/dialogs: use align_area to create box
3 years ago
Manos Pitsidianakis
6a5bb2e057
Add align_area() and Alignment enum
3 years ago
Manos Pitsidianakis
311c1a8a95
utilities/dialogs: respect theme_default
3 years ago
Manos Pitsidianakis
ce5c7848e8
utilities: move dialogs to its own submodule
3 years ago
Andrew Jeffery
daee4e46de
Allow configuration of the sidebar divider
...
This adds the config option listing.sidebar_divider to set the character
used to show the divider (defaults to ' ') along with the corresponding
theme in mail.sidebar_divider which defaults to the default theme.
3 years ago
Manos Pitsidianakis
92c12d3526
melib/imap: implement OAUTH2 authentication
3 years ago
Manos Pitsidianakis
0a8a0c04c8
compose: treat inline message/rfc822 as attachments
3 years ago
Manos Pitsidianakis
ede5851baf
utilities: reverse order of drawing fields in form
...
Reverse order of drawing since a field might have an auto complete
prompt below it, so rendering the field below instead of above next
would overwrite it.
3 years ago
Manos Pitsidianakis
79345b3e84
utilities/StatusBar: fix lack of bounds checking in hist_area
3 years ago
Manos Pitsidianakis
b46cd09ca6
compose: pass body text when replying
...
Get rendered body text when creating a new reply Composer instead of
rendering the text in the Composer constructor.
Closes #86
3 years ago
Manos Pitsidianakis
bf56c88918
compose: respect auto_choose_multipart_alternative when rendering multipart/alternative attachments to text
3 years ago
Manos Pitsidianakis
73372ff1e7
compose: add show_comments arg to attachment_displays_to_text()
...
Toggle display of attachment comments (for example "this html attachment
was rendered with X filter...") when rendering text.
3 years ago
Manos Pitsidianakis
d4f508642a
widgets: allow text overflow in text fields
...
Show text content of a text field that exceeds the visible width
properly.
3 years ago
Manos Pitsidianakis
f69f623818
Fix some invalid area calculations
3 years ago
Manos Pitsidianakis
2ef2add67f
imap: fix untrimmed query str resulting in invalid search criteria in cyrus
3 years ago
Manos Pitsidianakis
458209b448
view/thread: clear empty space in draw_list
3 years ago
Manos Pitsidianakis
b7c48a1ed0
view/thread: make list draw area consistent
3 years ago
Manos Pitsidianakis
f25f93fccf
utilities: Fix incorrect calculations in ScrollBar
3 years ago
Manos Pitsidianakis
31e4ed006d
listing: fix off by one error in PageDown movement
3 years ago
Manos Pitsidianakis
179ed52add
compose: grey embed area when embed is stopped
...
When stopping the embedded terminal with Ctrl-Z or SIGSTOP, show the
terminal area greyed out with a message box.
3 years ago
Manos Pitsidianakis
ebc290cc2a
compose: set format flowed if configured in pager
3 years ago
Manos Pitsidianakis
f9ce5327c2
melib/imap: fix some LazyCountSet logic errors in sync
3 years ago
Manos Pitsidianakis
5b86c342fb
Update smallvec dependency to 1.5.0
...
Fixes panicking when loading cached serialized email from older versions
of meli.
https://github.com/servo/rust-smallvec/pull/238
3 years ago
Manos Pitsidianakis
0aa5cf273f
mail/status: don't overwrite "In-progress jobs header"
3 years ago
Manos Pitsidianakis
041257f9a6
melib/text_processing: fix CodePointsIterator implementation
...
Old implementation was redundant and broken.
3 years ago
Manos Pitsidianakis
1da6d75b08
melib/text_processing: add new wcwidth implementation
...
Download and parse Unicode data files to judge code point width.
Inspired by https://github.com/ridiculousfish/widecharwidth/
3 years ago
Manos Pitsidianakis
a7c0bca8ce
Fix test errors and warnings
3 years ago
Manos Pitsidianakis
023afbaae3
RateLimit: remove unupdated test
3 years ago
Manos Pitsidianakis
1c62de57ae
Never return true on processing JobFinished
...
JobFinished events are not meant to be inhibited.
3 years ago
Manos Pitsidianakis
76f8bdc558
Add configurable shortcut for 'quit'
...
Quit ('q' button) was hardcoded, switch to configurable shortcut setting
instead.
3 years ago
Manos Pitsidianakis
d404910a0f
melib/smtp: impl AUTH LOGIN
...
AUTH LOGIN is deprecated but predictably still around.
3 years ago
Manos Pitsidianakis
c0e3e78940
listing: dont overdraw menu over listing
3 years ago
Manos Pitsidianakis
aaee6d094c
Fix NO_COLOR cursor highlight in sidebar and progress spinner
3 years ago
Manos Pitsidianakis
60350eaa88
mail/status: add "general" shortcut section
3 years ago
Manos Pitsidianakis
aa73bd71c3
listing: fix mailbox tree rendering
...
Indentation value was being interpreted mirrored (raw binary value in
parenthesis):
0 testing_account (0)
1 ┣━Archives (0)
2 ┃ ┣━2014 (1)
3 ┃ ┃ ┗━10 (11)
4 ┃ ┗━2015 (1)
5 ┃ ┗━05 (10) <- invalid/mirrored
6 ┣━Drafts (0)
Should be:
0 testing_account (0)
1 ┣━Archives (0)
2 ┃ ┣━2014 (1)
3 ┃ ┃ ┗━10 (11)
4 ┃ ┗━2015 (1)
5 ┃ ┗━05 (10)
6 ┣━Drafts (0)
3 years ago
Manos Pitsidianakis
aa7ebf2918
melib/smtp: fix SMTP syntax error on DSN notify use
3 years ago
Manos Pitsidianakis
2544f54107
melib/compose: prevent bare newlines in finalised drafts
3 years ago
Manos Pitsidianakis
72084da185
Add store_sent_mail option for gmail
...
- store_sent_mail boolean
Store sent mail after successful submission.
This setting is meant to be disabled for non-standard behaviour in
gmail, which auto-saves sent mail on its own.
3 years ago
Manos Pitsidianakis
23777171f2
listing: clear_area in draw_menu
...
Completely clear area in draw_menu instead of resetting ch, fg, bg etc.
3 years ago
Manos Pitsidianakis
cbaf21764c
Remove status tab, move account status page to listing
3 years ago
Manos Pitsidianakis
da69eecafe
mail/status: make AccountStatus public
...
And fix areas passed to write_string_to_grid() to have the same y
coordinate in upper_left and bottom_right part.
3 years ago
Manos Pitsidianakis
f0800f38a8
melib/maildir: make MaildirOp return Result<PathBuf>
3 years ago
Manos Pitsidianakis
a34f0aac5b
melib: fix bincode serialization
...
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.
3 years ago
Manos Pitsidianakis
353ac2d029
melib: set upper limit for bincode deserialize
...
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.
3 years ago
Manos Pitsidianakis
6c07046b66
Update bincode dependency to 1.3.1
3 years ago
Manos Pitsidianakis
8ac5558d65
Makefile: add CARGO_ARGS env var
...
Intended for use with cross-arch compilation flags (--target etc).
3 years ago
Manos Pitsidianakis
43d3d3681e
Makefile: replace install(1) with mkdir, rm, cp, chmod
...
install(1) is missing in some systems, so replace it with POSIX tools.
Closes #83 .
3 years ago
Rudi Horn
f1bdae65ee
melib/jmap: add HTTP redirect policy to client
...
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.
3 years ago
Manos Pitsidianakis
6cc43540d6
docs/meli.conf.5: add SmtpPassword examples
3 years ago
Manos Pitsidianakis
6392904047
Replace PosixTimer with async timers
3 years ago
Manos Pitsidianakis
57e6cf3980
Limit dbus dependency to target_os = "linux"
3 years ago
Manos Pitsidianakis
9a9c876f4a
melib: add more encodings
...
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
3 years ago
Manos Pitsidianakis
afa74ccfb5
compose: add From text entry autocomplete
3 years ago
Manos Pitsidianakis
560771b32a
widgets: select AutoCompleteEntry on Enter
3 years ago
Manos Pitsidianakis
7b1ab389fa
Remove unused plugin interface
3 years ago
Manos Pitsidianakis
594a2bd0dd
listing: add set operations to range select actions
...
Add symmetric difference (default), union, difference and intersection
modifiers for selecting ranges. That way you can quickly construct the
selection set you need.
3 years ago
Manos Pitsidianakis
05ef863a45
utilities: move PageMovement to components mod
3 years ago
Manos Pitsidianakis
d5aa2cb3ef
melib/line_break: add segment tree impl
...
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.
3 years ago
Manos Pitsidianakis
f7fc2e31e0
melib: Remove unused crossbeam dependency
3 years ago
Manos Pitsidianakis
00f5c4b9c0
melib/maildir: split parsing into big chunks
3 years ago
Manos Pitsidianakis
4b91de3d59
state: remove overlay widgets on ComponentKill events
3 years ago
Manos Pitsidianakis
eb36034740
accounts: autoload Sent folders automatically
3 years ago
Manos Pitsidianakis
d4e347289c
melib/README: update feature table
3 years ago
Manos Pitsidianakis
662706607b
melib: remove memmap dependency
...
It's unmaintained, and the IO performance gains are negligible
3 years ago
Manos Pitsidianakis
b904f91f45
README: replace svg with webp screenshots
...
Gitea doesn't render svg images (delivers them as text/plain)
3 years ago
Manos Pitsidianakis
9f39a7c5a1
statusbar: delete num buffer chars with Backspace
3 years ago
Manos Pitsidianakis
126ed8a189
statusbar: don't overwrite num buffer when progress spinner is deactivated
3 years ago
Manos Pitsidianakis
91fe7435f7
melib/imap: add suggestion on STARTTLS error
...
If server port is 993 (IMAPS) and starttls is enabled, suggest turning
it off if starttls fails.
3 years ago
Manos Pitsidianakis
7a9c150f33
melib/imap: fetch References header along with ENVELOPE
...
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.
3 years ago
Manos Pitsidianakis
b9f4d718c7
melib/sqlite3: reset db on version mismatch
3 years ago
Manos Pitsidianakis
54cb4ea623
melib/build.rs: remove unnecessary file creation
3 years ago
Manos Pitsidianakis
7919e95ddd
terminal/embed: remove some allocations and unwraps
3 years ago
Manos Pitsidianakis
89940dd606
cli-docs: compress included text
3 years ago
Manos Pitsidianakis
b69bc219c3
README.md: Add screenshots and update text
3 years ago
Manos Pitsidianakis
bb51d36579
composer: send NewJob event on submission
3 years ago
Manos Pitsidianakis
a2456fa3f5
docs/meli.conf.5: small fixes & additions
3 years ago
Manos Pitsidianakis
3b97e66c10
docs/meli.conf.5: add progress_spinner_sequence doc
3 years ago
Manos Pitsidianakis
ddfec3e207
listing: fix menu draw artifact
3 years ago
Manos Pitsidianakis
a702a04043
melib/attachments: add SMIME signature variant
3 years ago
Manos Pitsidianakis
6264ee011f
terminal/embed: remove unwraps from kill() calls
...
If child process has exited, this will panic.
3 years ago
Manos Pitsidianakis
5acd7dfe1c
mail/view: prevent spurious redraw in special modes
3 years ago
Manos Pitsidianakis
8090d614e2
conf/pager: remove unused max_width option
3 years ago
Manos Pitsidianakis
3949cecb75
mail/composer: add scrollbars
3 years ago
Manos Pitsidianakis
1e7b40e6b3
utilities: move pager to its own module
3 years ago
Manos Pitsidianakis
d8d66641e2
utilities/widgets: only advance stage by timer in ProgressSpinner
3 years ago
Manos Pitsidianakis
393c5d0d53
state: cull redraws of floating notifications
...
Cull redraws by keeping track of whether the floating box has been
initialised and whether its area has been drawn over by other dirty are