Fixes#539 ("Ensure versions migrations are suggested only when current
version is newer than the previous one")
Resolves: <https://git.meli-email.org/meli/meli/issues/539>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Created temporary file was incorrectly set to be deleted on Drop, but
this is not what we want to do when spawning an external command and pass
the file as the argument.
Fixes: #548 ("mailcap handling")
Resolves: <https://git.meli-email.org/meli/meli/issues/548>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
We're not using its features it provides over using just rusty-fork,
which sealed-test uses its own fork of it (rusty-forkfork) under the
hood.
Revert to just using the original rusty-fork crate, which is also
packaged in debian.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Rewrite key selection logic when opening the key selector widget for
signing or encryption keys:
- Fix encrypt_for_self incorrectly using the To: header email instead of
From: (ugh!)
- Include all recipient addresses in selection (To:, Cc: Bcc:), also
From:
- Use all addresses in a header value instead of just the first address
- Show shortcuts to sign/encrypt fields in Compose form
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Implement display to show more info on the user interface other than
just the fingerprint.
Will show the fingerprint, the primary user id and a list of properties/flags:
- revoked status
- expired status
- disabled status
- invalid status
- can encrypt status
- can sign status
- whether it's a secret or a public key
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
You can pipe individual attachments to binaries with the following
command:
pipe-attachment INDEX binary ARGS
Example usage with the less(1) pager:
pipe-attachment 0 less
If the binary does not wait for your input before exiting, you will
probably not see its output since you will return back to the user
interface immediately. You can write a wrapper script that pipes your
binary's output to
less
or
less -r
if you want to preserve the ANSI escape codes in the pager's output.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Some email backends return Envelopes with only the basic headers filled
in. But that might clash with a user's configurations which operates on
specific headers when viewing an email. So, when having loaded an email
completely, make sure its envelope's headers is completely populated
before presenting it to the user.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Add:
- eprint_step_fn(): Returns a closure that prints a formatted message,
without a trailing newline, and prefixed with an increasing counter.
- eprintln_ok_fn(): Returns a closure that prints the string " OK\n" to
`stderr` with optional color formatting.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
If Account::mailbox_by_path() fails, suggest matching mailbox paths
using aho_corasick case insensitive matching, and also suggest to the
user to inspect mailboxes with the manage-mailboxes command.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
There was no point in using SmallVec with this large a size; it was
32768 bytes, or 32KiB. Let's allocate that to the heap instead.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Since 2af5c8b6fd ("terminal: add
QuerySynchronizedOutputSupport WIP") we send a synchronised output
support query [1] to the terminal but we don't parse the response. If the
terminal replies, it gets parsed as user input. And if the user happens
to press a navigation key such as scroll_down which supports a number
modifier, the `2026` part of the mode response which was parsed as user
input makes meli scroll down 2026 lines.
Fixes: #502 ("Initial navigation state in mailbox index view is wrong")
[1]:
<https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036>
Resolves: <https://git.meli-email.org/meli/meli/issues/502>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
If ProgressSpinnerSequence / progress_spinner_sequence had a value of
just an array of strings, it could not be parsed correctly. Fix that
with a custom serde impl and also add unit tests.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Rename functions to follow the convention of being prefixed with the
module path before the function name (e.g. `fn
test_module_a_module_b_test_desc() {`)
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
While there was a delete-mailbox command, there was no option for it in
the manage-mailboxes interface, so add it.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Don't accept new Display Messages if it has the same content as the
latest one in the display message stack.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Some stuff that are only used with gpgme feature were not guarded by
#[cfg(feature = "gpgme")], so fix that.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Add an example for `fzf` use with the `add-attachment-file-picker < `
command when composing e-mail.
Closes#507
Resolves: <https://git.meli-email.org/meli/meli/issues/507>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Selecting by searching for was missing for the threaded index style, so
add it.
Related to #513
Resolves: <https://git.meli-email.org/meli/meli/issues/513>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Somehow, filter (searching) was not implemented for the threaded index
style, so fix it.
Fixes: #513
Resolves: <https://git.meli-email.org/meli/meli/issues/513>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
They were previously silently ignored despite tables (DataColumns)
having support for scrolling on the x axis.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Change select_entry to toggle only one's selection entry (default 'V'),
while select_motion (default 'v') inherits the original functionality of
performing a select motion when combined with a number and motion verb
(scroll up/down etc)
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Lift error checks earlier in the function, before forking, allowing any
potential errors to show up properly in the main process.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Ugh, annoying. It doesn't take the fact that markdown links do not
appear long when rendered. Anyway, fix them errors.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Semantically Composer actions should be tab actions since a composer is
a tab. Move them to a new enum in preparation for the next commit which
adds a new Discard draft action.
No functional change intended.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Move the components for :manage-jobs and :manage-mailboxes into the same
submodule, `manage`. No functional change intended.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Add config values to `composing` config section to enable signatures:
signature_file Path (optional) Plain text file with signature that will pre-populate an email draft. Signatures must be explicitly enabled to be used, otherwise this setting will be ignored. (None)
use_signature bool Pre-populate email drafts with signature, if any. meli will lookup the signature value in this order:
1. The signature_file setting.
2. ${XDG_CONFIG_DIR}/meli/<account>/signature
3. ${XDG_CONFIG_DIR}/meli/signature
4. ${XDG_CONFIG_DIR}/signature
5. ${HOME}/.signature
6. No signature otherwise.
(false)
signature_delimiter String (optional) Signature delimiter, that is, text that will be prefixed to your signature to separate it from the email body. (‘\n\n-- \n’)
Closes#498
Resolves: https://git.meli-email.org/meli/meli/issues/498
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>