Manos Pitsidianakis
4148aee59b
melib: refactor smtp,draft errors and email tests
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis
ab04189887
clippy: fix new warnings for 1.78.0
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis
ae96038fbf
Make unicode-segmentation a hard dependency
...
meli/melib are UTF8 software, so we should have proper Unicode support.
A compile-time env var is added, `UNICODE_REGENERATE_TABLES` to force
network access and rebuild the cached unicode tables.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 months ago
Manos Pitsidianakis
c7aee72525
melib: add clippy::doc_markdown
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
3 months ago
Manos Pitsidianakis
60f26f9dae
melib: Fix some old pre-intradoc rustdoc links
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
5 months ago
Manos Pitsidianakis
0270db0123
melib: From<&[u8]> -> From<B: AsRef<[u8]>>
...
This change allows byte literals to be used with the from trait method.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
5 months ago
Manos Pitsidianakis
933bf157ae
melib/email/parser: ack \ as an atom
...
I think this is not spec compliant but the MIME spec (rfc6068 - The
'mailto' URI Scheme) uses it for "valid" addresses.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
5 months ago
Manos Pitsidianakis
f685726eac
melib/email/parser: add backtrace field to ParsingError
...
Add backtrace field to ParsingError when the build is for testing or
documentation.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
5 months ago
Manos Pitsidianakis
f63774fa6d
Fix new clippy lints (1.75)
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
5 months ago
Manos Pitsidianakis
808aa4942d
melib: rename text_processing to text for the whole brevity thing
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
5 months ago
Manos Pitsidianakis
34a2d52e7e
Fix rustdoc::redundant_explicit_links
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
6 months ago
Manos Pitsidianakis
f900dbea46
Use cargo-derivefmt to sort derives alphabetically
...
Used https://github.com/dcchut/cargo-derivefmt
With command:
cargo install --locked \
--git https://github.com/dcchut/cargo-derivefmt \
--bin cargo-derivefmt \
--rev 2ff93de7fb418180458dd1ba27e5655607c23ab6
Since it's not on crates.io at the moment.
Sample diff:
-#[derive(Debug, Deserialize, Clone, Serialize)]
+#[derive(Clone, Debug, Deserialize, Serialize)]
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
6 months ago
Manos Pitsidianakis
23c15261e7
mail/view: abstract envelope view filters away
...
Modularize an envelope view by introducing a stack of "view filters".
Example uses:
- html email can have a view on top of it that is plain text conversion
- selecting and viewing text/* attachments is just appending a new filter at
the stack
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
6 months ago
Manos Pitsidianakis
1c1be7d6c9
melib/address: add display_name(), display_slice(), display_name_slice() methods
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
6 months ago
Manos Pitsidianakis
ef30228e08
melib/draft: fix failing test
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
6 months ago
Manos Pitsidianakis
bfc78a0803
melib/compose: replace CRLF with LF when editing
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
6 months ago
Manos Pitsidianakis
ac2a5dcdd1
melib: add display() method for Address
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
6 months ago
Manos Pitsidianakis
688e39a67e
Fix clippy lints
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
6 months ago
Manos Pitsidianakis
c43aeb0eb1
melib/email/parser: fix invalid address parse on folded values
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
9 months ago
Manos Pitsidianakis
a615b4701b
dependencies: embed xdg-utils crate
...
No reason to have it out of the tree.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
9 months ago
Manos Pitsidianakis
85af524458
email/parser.rs: fix invalid mailto() results when body field exists
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
9 months ago
Manos Pitsidianakis
2dc2940586
melib/build.rs: add feature to use cache instead of downloading unicode data
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
9 months ago
Manos Pitsidianakis
8551e1ba0b
clippy: fix new 1.72 default clippy lints
...
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
9 months ago
Manos Pitsidianakis
946309c6f3
melib: do some small parser refactoring
...
- Use HeaderName in parsers instead of raw byte strings.
- Use byte literal constants where appropriate instead of repeating
&b"___"[..]
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
9 months ago
Manos Pitsidianakis
66c21ab173
melib/email: move StandardHeader to its own module
...
Extract StandardHeader code to its own module to reduce name.rs
line-count size.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
9 months ago
Manos Pitsidianakis
5c2b04719b
Normalize std::fmt::* imports
10 months ago
Manos Pitsidianakis
bf543855dc
melib/email: add PartialEq<str> for MessageID
10 months ago
Manos Pitsidianakis
40d4ecefa0
melib/nntp: accept invalid (non-ascii) address comment text
...
NNTP servers may return addresses that are not RFC 5322 compliant. An
address with a comment with non-ascii characters will make the parser loop indefinitely.
Fixes #269 .
10 months ago
Manos Pitsidianakis
8e698cabcf
Fix unreachable-pub and disjoint-capture lint errors
11 months ago
Manos Pitsidianakis
13fe64a027
Cache pgp signature verification results
11 months ago
Manos Pitsidianakis
866166eb8e
attachments: don't print parsing error for empty bytes
11 months ago
Manos Pitsidianakis
d4e605c098
Add tagref source code annotations
...
Source Code Annotation Tags:
Global tags (in tagref format <https://github.com/stepchowfun/tagref >)
for source code annotation:
- [tag:hardcoded_color_value] Replace hardcoded color values with user
configurable ones.
- [tag:needs_unit_test]
- [tag:needs_user_doc]
- [tag:needs_dev_doc]
- [tag:FIXME]
- [tag:TODO]
- [tag:VERIFY] Verify whether this is the correct way to do something
- [tag:DEBT] Technical debt
11 months ago
Manos Pitsidianakis
5f29faa640
melib: clippy lint fixes
11 months ago
Manos Pitsidianakis
f98e36cee5
melib: Replace old-style /*! module doc comments with //!
11 months ago
Manos Pitsidianakis
f0d88005fb
melib/email: change message/rfc822 Display repr
...
Put subject first.
11 months ago
Manos Pitsidianakis
e64923eeaa
melib/email/headers/names: fix debug_assert condition
...
On invalid parsings, _cnt can be equal to probe and chunk len because
the value won't be a valid header
11 months ago
Manos Pitsidianakis
5699baecfb
melib: add utils::{futures, random}
12 months ago
Manos Pitsidianakis
cd85d83324
melib/email: replace timestamp with Date value in message/rfc822 Display
12 months ago
Manos Pitsidianakis
27a4dcb916
Fix some rustdoc lints
1 year ago
Manos Pitsidianakis
6bf1756de8
melib/search: implement more search criteria in Query type
1 year ago
Manos Pitsidianakis
6388bea9a0
melib/email/headers: fix &[u8] index in HeaderMap
1 year ago
Manos Pitsidianakis
d332e4578d
melib/headers: add proper Display impl for HeaderName
1 year 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 year ago
Manos Pitsidianakis
235fceaf21
melib: Add standard heeder constants in email::headers
...
Like `http` crate does
1 year ago
Damian Poddebniak
30866f752b
chore: Bypass rustfmt bug.
1 year ago
Manos Pitsidianakis
cc27639fca
melib/email/compose: use Envelope attachments when editing and don't add already existing headers
1 year 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.
1 year ago
Manos Pitsidianakis
b1a7188771
Clippy fixes
1 year ago
Manos Pitsidianakis
d9c07def0f
Add command to select charset encoding for email
...
Open dialog to select charset with `d`.
1 year ago
Manos Pitsidianakis
11140b4a76
Fix test output
...
test_compose_reply_subject_prefix requires access to / path, and fails
when building with deb-dist
1 year ago