387 Commits

Author SHA1 Message Date
Manos Pitsidianakis 5ba7b2cd7b meli: fix clippy lints for meli binary 4 days ago
Manos Pitsidianakis 104352e595 Add table UI widget 4 days ago
Manos Pitsidianakis bd22f986f0 melib: fix clippy lints 2 weeks ago
_ ded9adde61 More descriptive "Unimplemented" messages 2 weeks ago
Manos Pitsidianakis 6317984136 Makefile: add --bin flag to meli cargo build target 2 weeks ago
Manos Pitsidianakis db227dea34 build.rs: add error messages if `mandoc`,`man` binaries are missing 2 weeks ago
Manos Pitsidianakis 282af86e83 docs: fix NAME sections manual pages for correct whatis(1) parsing 2 weeks ago
Manos Pitsidianakis cc439b239a mail/listing.rs: add RowsState struct 3 weeks ago
Manos Pitsidianakis b776409d6c melib/thread.rs: add thread, env hash index fields 3 weeks ago
Manos Pitsidianakis 56fc43bcf8 melib: add As{Ref,Mut} impls for RwRef{,Mut} 3 weeks ago
spike 59b95f83d2 fix docs 4 weeks ago
Manos Pitsidianakis 88a1f0d4bc melib/imap/parser: fix FETCH response parsing bug 1 month ago
Manos Pitsidianakis 64346dd3fe melib/parsec: add map_res, quoted_slice, is_a, alt, take, take_literal 1 month ago
Manos Pitsidianakis 17b42b1a6c melib/parsec: add json deserialization tests 2 months ago
Manos Pitsidianakis 6d20abdde7 melib/gpgme: add #[allow(deref_nullptr)] in bindgen tests 1 month ago
Manos Pitsidianakis 803d3414fd melib/imap/managesieve: implement some rfc5804 commands 1 month ago
Manos Pitsidianakis 3697b7d960 melib/datetime: don't use LC_ category in place of LC_ masks in libc calls 1 month ago
Manos Pitsidianakis dd0baa82e9 Spawn user-given command strings with sh -c ".." 1 month ago
Manos Pitsidianakis 0ef4dde939 melib/jmap: wrap serde_json deserialize errors in human readable errors 2 months ago
Manos Pitsidianakis 55ed962425 melib/jmap: use server_url instead of server_hostname + server_port in config 2 months ago
Manos Pitsidianakis 46a038dc68 conf.rs: remove interactive messages when #[cfg(test)] 2 months ago
Manos Pitsidianakis 16646976d7 compose: fix reply subject prefixes stripping original prefix 2 months ago
Manos Pitsidianakis ffb12c6d1a conf.rs: make all public struct fields public 2 months ago
Manos Pitsidianakis 7e09b1807f melib/collection: replace _Ref deref unwraps with expect() 2 months ago
Manos Pitsidianakis 129573e0fd melib/maildir: rename root_path to root_mailbox 2 months ago
Manos Pitsidianakis 0c08cb737c melib/jmap: mark mailboxes as subscribed on personal accounts 2 months ago
Manos Pitsidianakis 117d7fbe04 melib/jmap/rfc8620.rs: make private fields public 2 months ago
Manos Pitsidianakis 347be54305 melib/error: add NetworkErrorKind enum 2 months ago
Manos Pitsidianakis 7935e49a00 conf/accounts.rs: check properly if mailbox request is an error 2 months ago
Manos Pitsidianakis c54a31f7cc listing/offline.rs: break line for error messages 2 months ago
Manos Pitsidianakis c3fdafde3b Documentation touchups 2 months ago
Manos Pitsidianakis c6bdda03cf melib/backends.rs: fix notmuch error shown on any missing backend 2 months ago
Manos Pitsidianakis e450ad0f9c types.rs: remove unused struct 2 months ago
Manos Pitsidianakis 0ed10711ef notifications: add new_mail_script option 2 months ago
Manos Pitsidianakis d8d43a16fe HtmlView: add html_open config setting 2 months ago
Manos Pitsidianakis b87d54ea3f melib/backends.rs: impl Into<BTreeSet<EnvelopeHash>> for EnvelopeHashBatch 2 months ago
Manos Pitsidianakis a7a50d3078 src/: Box<_> some large fields in biggest types 2 months ago
Manos Pitsidianakis b138d9bc61 melib: fix some clippy lints 2 months ago
Manos Pitsidianakis 787c64c2da conf.rs: remove expect()s from create_config_file() 3 months ago
Manos Pitsidianakis 0df46a63ec Show error if sqlite3 search backend is set but doesn't exist 3 months ago
Manos Pitsidianakis 94bd84b45d Fix clippy lints for `meli` crate 3 months ago
Manos Pitsidianakis 388d4e35d6 listing/offline.rs: add in-progress messages while connecting in IMAP 3 months ago
Manos Pitsidianakis 9cbbf71e0f melib/email/attachments: Add DecodeOptions struct for decoding 3 months ago
Manos Pitsidianakis 3688369278 melib/smtp: add smtp test 3 months ago
Manos Pitsidianakis 3c0f5d8274 melib/smtp: add BINARYMIME support to smtp client 3 months ago
Manos Pitsidianakis a72c96a26a melib/smtp: add 8BITMIME support to smtp client 3 months ago
Manos Pitsidianakis 8c7b001aa5 listing/conversations.rs: add `thread_subject_pack` command to pack different inner thread subjects in entry title 3 months ago
Manos Pitsidianakis 9dc4d4055c listing: add focus_{left,right} shortcuts to switch focus 3 months ago
Manos Pitsidianakis 3d92b41075 Add cli-docs feature to the default set 3 months ago
Manos Pitsidianakis 7c7115427d docs/meli.7: complete guide document 3 months ago
Manos Pitsidianakis 5fa4b6260c docs/meli.7: add more screenshots 3 months ago
Manos Pitsidianakis 4a20fc42e1 Update CHANGELOG.md 3 months ago
Manos Pitsidianakis f76f4ea3f7 docs: add meli.7, a general tutorial document 3 months ago
Manos Pitsidianakis 2de69d17f1 melib/compose: fix erroneous placement of newlnes for wrap_header_preamble suffix 3 months ago
Manos Pitsidianakis cbe593cf31 mail/compose: add configurable header preample suffix and prefix for editing 3 months ago
Manos Pitsidianakis a484b397c6 melib/notmuch: show informative error messages if libloading fails 3 months ago
Manos Pitsidianakis eb5949dc9b melib/error.rs: switch summary<->details identifiers 3 months ago
Manos Pitsidianakis aa99b0d787 compose: implement configurable subject prefix stripping when replying 3 months ago
Manos Pitsidianakis da9c80ccfd melib: Enhance SubjectPrefix with strip_prefixes_from_list() method 3 months ago
Manos Pitsidianakis a73885acb1 Improve embed terminal 3 months ago
Manos Pitsidianakis 480000ebbb melib/notmuch: show error if account directory does not contain ".notmuch" subdirectory 3 months ago
Manos Pitsidianakis 29042aba59 melib/datetime: add mbox date format parse 3 months ago
Manos Pitsidianakis a42a6ca868 notifications.rs: show notifications in terminal if no alternative 3 months ago
Manos Pitsidianakis bde87af387 Refactor filter() method in Listing trait 3 months ago
Manos Pitsidianakis 10497952f7 Wrap stdout in BufWriter 3 months ago
Manos Pitsidianakis 0c0bee4482 Makefile: add missing .PHONY targets, fix missing tab indentation 3 months ago
Manos Pitsidianakis ca48896865 Cargo.toml: add strip option to profile.release 3 months ago
Manos Pitsidianakis 7650805c60 Bring stripped binary size down to 7MiB 3 months ago
Manos Pitsidianakis e29041f733 Rename src/bin.rs to src/main.rs 3 months ago
Manos Pitsidianakis f4e0970d46 mail/compose.rs: add ability to kill embed process 3 months ago
Manos Pitsidianakis 9cb66ef818 Fix all clippy warnings in `meli` crate 3 months ago
Guillaume Ranquet d921b3c320 compact.rs: use mail sorting parameters from config 4 months ago
Guillaume Ranquet 9205f3b8af conf.rs: handle a per account mail order parameter 4 months ago
Guillaume Ranquet 97ff3e787f conf.rs: only add toml files to the themes 5 months ago
Manos Pitsidianakis 824f614a69 mail/view: Fix HtmlView not being redrawn when parent is dirty 3 months ago
Manos Pitsidianakis ed3dbc8586 listing/conversations: fix crashes when listing is empty 3 months ago
Manos Pitsidianakis 7fca5f01ef melib/jmap: fix jmap build with isahc 1.7.2 3 months ago
Manos Pitsidianakis b716e4383e Add collapse option for mailboxes in sidebar menu 3 months ago
Manos Pitsidianakis 4a79b2021d Update dependency versions 4 months ago
Manos Pitsidianakis daa900ec9a Fix embed terminal in macos 4 months ago
Manos Pitsidianakis ca84906d7d notifications: escape all quotes in applescript on macos 5 months ago
Manos Pitsidianakis ce269c64e1 conf: don't fail on `server_password_command` 6 months ago
Manos Pitsidianakis 0f6f3e30c6 conf: add IMAP config in config parse test 6 months ago
Manos Pitsidianakis e6d6e1f588 compose: don't unwrap if pseudoterminal creation fails 6 months ago
Manos Pitsidianakis dc5afa13db notifications: use osascript/applescript for notifications on macos 6 months ago
Manos Pitsidianakis d6355a3043 melib/email/parser: impl Debug for ParsingError 6 months ago
Manos Pitsidianakis 6a843d4983 melib/maildir: export list_mail_in_maildir_fs() function 6 months ago
Manos Pitsidianakis 9558b2ae92 melib/email: parse Cp1253 as windows1253 encoding 7 months ago
Manos Pitsidianakis 4fdc90b31e Use `open` instead of `xdg-open` in macos 7 months ago
Manos Pitsidianakis 8563bccd1b listing/conversations: don't cache CellBuffer, only row info 6 months ago
Manos Pitsidianakis 721891c295 Update nom dependency 7 months ago
Manos Pitsidianakis 2c23ca34cd Update most Cargo dependencies 7 months ago
Manos Pitsidianakis 2eb22a290a
Stop hardcoding certain component colors 8 months ago
Manos Pitsidianakis 5823178cc2
themes.rs: add test that looks in source code for invalid theme key references 8 months ago
Manos Pitsidianakis 81184b182c
Add extra_identities configuration flag 8 months ago
Manos Pitsidianakis aa3524dd30
melib/backends/notmuch: fix tag not being removed in set_flags() 8 months ago
Manos Pitsidianakis 23c2355662
utilities.rs: fill and align shortcut table columns 8 months ago
Manos Pitsidianakis d3e62e3d74
utilities/dialogs.rs: use conf shortcuts for scroll {up, down} 8 months ago
Manos Pitsidianakis a866b29499
docs/meli.conf.5: update valid shortcut entries from src/conf/shortcuts.rs 8 months ago
Manos Pitsidianakis f5dc25ae0d
conf.rs: check that all conf flags are recognized in validation 8 months ago
Manos Pitsidianakis d0de04854e
listing.rs: add {in,de}crease_sidebar shortcuts 9 months ago
Manos Pitsidianakis 340d6451a3
listing.rs: add config setting for sidebar ratio 9 months ago
Manos Pitsidianakis e9aaa7b067
melib/datetime: use *const c_char instead of *const i8 for portability 10 months ago
Manos Pitsidianakis d4b690d5d3
melib/imap: send password as byte literal on LOGIN 11 months ago
Manos Pitsidianakis ce2068d36b
melib/jmap: fix background watch using JSON paths incorrectly 11 months ago
Manos Pitsidianakis 0d8bedd2d5
melib/jmap: make is_online() await for connection 11 months ago
Manos Pitsidianakis 81d1265601
melib/imap: escape IMAP passwords properly 12 months ago
Manos Pitsidianakis d8e9a00563
melib/imap: add quoted REFERENCES field in parsing of responses 1 year ago
Geoff Beier 330a2b20ed
conf.rs: flush stdout in Ask() after printing 1 year ago
Manos Pitsidianakis 36e29cb6fd
Add configurable mailbox sort order 1 year ago
Manos Pitsidianakis 5f003a31be
melib/addressbook/vcard: Parse vCards with just LF instead of CRLF line endings 1 year ago
Manos Pitsidianakis 2580522931
melib/addressbook: log vcard parsing failures 1 year ago
Manos Pitsidianakis 15ca25af73
Bump version to 0.7.2 1 year ago
Manos Pitsidianakis 37d0846195
melib/email/address: quote display_name if it contains "," 1 year ago
Manos Pitsidianakis ffc498a5d0
melib/smtp: fix Cc and Bcc ignored when sending mail 1 year ago
Manos Pitsidianakis d25eb00a11
command: improve(?) command completion and add test 1 year ago
Manos Pitsidianakis 240374950a
melib/email/address: quote display_name if it contains "." 1 year ago
Manos Pitsidianakis 505adca54d
Add forward mail option 1 year ago
Manos Pitsidianakis e090c31f96
state: Move grid to Screen struct under terminal mod 1 year ago
Manos Pitsidianakis 20feb50475
view/thread: open the latest email in the thread by default 1 year ago
Manos Pitsidianakis f975e1004c
Add url_launcher config setting 1 year ago
Manos Pitsidianakis b88c3c573d
Add add_addresses_to_contacts command 1 year ago
Manos Pitsidianakis 32901f57d2
Add show_date_in_my_timezone pager config flag 1 year ago
Manos Pitsidianakis d1712557cb
docs: add pager filter documentation 1 year ago
Manos Pitsidianakis a977351f0a
mail/view: respect per-folder/account pager filter override 1 year ago
Manos Pitsidianakis e7b9d2963c
pager: add filter command, esc to clear filter 1 year ago
Manos Pitsidianakis 25579d8807
terminal/cells: remove ansi module 1 year ago
Manos Pitsidianakis 22fb2ed46c
Implement pager filter through EmbedGrid 1 year ago
Manos Pitsidianakis 733de5a5fb
Fix some clippy suggestions 1 year ago
Manos Pitsidianakis 592339bdca
embed: split EmbedGrid to EmbedTerminal and EmbedGrid 1 year ago
Manos Pitsidianakis ae8c2addab
Show compile time features in with command argument 1 year ago
Manos Pitsidianakis bc08bf1d13
Bump version to 0.7.1 1 year ago
Manos Pitsidianakis 7533df86e0
Fix compilation for netbsd-9.2 1 year ago
Manos Pitsidianakis 526a246430
melib/nntp: update total/new counters on new articles 1 year ago
Alex.F 69916f267b
add 'GB18030' charset 2 years ago
Manos Pitsidianakis 13c5798c7b
conf/shortcuts.rs: add info_message_{next,previous} 1 year ago
Manos Pitsidianakis 07e166e1fb
melib/error: Add kinds: NotImplemented, NotSupported, OSError 1 year ago
Manos Pitsidianakis 72a2ba20dc
conf/accounts.rs: print info when displaying watch error 1 year ago
Manos Pitsidianakis c8da6d2049
melib/nntp: implement refresh 1 year ago
Manos Pitsidianakis 90042379a6
melib/{imap,nntp}: throw error on extra unusued conf flags 1 year ago
Manos Pitsidianakis f40ae9e11b
Change all Down/Up shortcuts to j/k 1 year ago
Manos Pitsidianakis 09f3edba76
config: show explanation if `composing` field missing 1 year ago
Manos Pitsidianakis 09dc0a2409
melib/conf: deserialize ToggleFlag from bool & string 1 year ago
Manos Pitsidianakis 3bc187c570
melib/collections: add RwRef{,Mut} structs 1 year ago
Manos Pitsidianakis 05393d8caa
listing/conversations: highlight two rows instead of three 1 year ago
Manos Pitsidianakis b49d965695
Fix unused var etc warnings 1 year ago
Manos Pitsidianakis 6235164df2
melib/nntp: increase chunk size 1 year ago
Manos Pitsidianakis 521f634e7b
melib/nntp: implement NNTP posting 1 year ago
Manos Pitsidianakis 978939d8e3
Bump version to 0.7.0 1 year ago
Manos Pitsidianakis d1437ff275
command/actions.rs: ask confirmation for delete 1 year ago
Manos Pitsidianakis f097593bed
melib/datetime: fix date format string 1 year ago
Ludovic LANGE b08570349d
Notmuch dynamic library can now be loaded on macos 1 year ago
Manos Pitsidianakis d6bf700175
Update Cargo.lock 1 year 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 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 2 years ago
Ludovic LANGE 66c6b62aa6
Cargo.lock: Update lexical-core version 1 year ago
Manos Pitsidianakis eea9ac2b58
README.md: update with new IRC channel location 1 year ago
Manos Pitsidianakis d16866e0f0
notifications: run update_xbiff even if notifications disabled 2 years ago
Manos Pitsidianakis bcca9abe66
docs: Use example.com in documentation 2 years ago
Manos Pitsidianakis 24b4c117e7
melib: don't use both {set,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 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 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 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 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 2 years ago
Manos Pitsidianakis 2e6a1e1ef8
melib/datetime: rename tests for consistency 2 years ago
Manos Pitsidianakis fe200a3218
melib/datetime: isolate unsafe blocks 2 years ago
Manos Pitsidianakis bf9143d8e4
melib/datetime: use Cow<'_, CStr> in timestamp_to_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 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 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 2 years ago
Manos Pitsidianakis b966ee8fbd
melib/email: return &mut Self in set_*() 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 2 years ago
Manos Pitsidianakis 829f1243fb
melib/imap: fix invalid FETCH edge case 2 years ago
Manos Pitsidianakis 1be30968ca
melib/mbox: fix FreeBSD compilation 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 2 years ago
Zisu Andrei 0034f195e3
melib/imap: Lazy evaluate idle capability 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 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 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 2 years ago
Manos Pitsidianakis 48e7a493a9
Add reload-config command 2 years ago
Manos Pitsidianakis e5b0ff4fe2
state: remove runtime_settings 2 years ago
Manos Pitsidianakis 68f9d1220b
melib/imap: remove DoubleEndedIterator for ImapLineIterator 2 years ago
Manos Pitsidianakis 1408690a9a
melib/imap: don't retry watch conn on non-network error 2 years ago
Manos Pitsidianakis 76814cea20
themes/sail: make only headers_name bold 2 years ago
Manos Pitsidianakis 7e1e57a2df
conf/themes: add mail.view.headers_names and mail.view.headers_area 2 years ago
Manos Pitsidianakis f8a47586e9
mail/listing: show mailbox loading state in status 2 years ago
Manos Pitsidianakis 7efbe6d692
listing: fix menu/sidebar not being redrawn on updates 2 years ago
Manos Pitsidianakis 0f86934e16
mail/status: display in-progress jobs first 2 years ago
Manos Pitsidianakis c5a5c2666b
utilities/pager: show scrolling percentage and/or search results position 2 years ago
Manos Pitsidianakis 7db32ff1b3
terminal/cells: return success flag in CellBuffer::resize() 2 years ago
Manos Pitsidianakis 857d4d546f
utilities/pager: use LineBreakText for lazy line breaking 2 years ago
Manos Pitsidianakis 5327dae02d
melib/text_processing: add LineBreakText iterator 2 years ago
Manos Pitsidianakis c990687e5f
docs/meli-themes.5: replace toml spec dead link 2 years ago
Manos Pitsidianakis 453bb0b2b2
melib/smtp: implement gmail XOAUTH2 authentication method 2 years ago
Manos Pitsidianakis 4914f29e20
themes: make conversations defaults grey 2 years ago
Manos Pitsidianakis bedf181aff
melib/imap: examine all mailboxes before idle 2 years ago
Manos Pitsidianakis 9dd21eea50
melib/threads: prefer local ThreadNode env_hash 2 years ago
Manos Pitsidianakis 4939a1ad9e
melib/imap: remove some debug prints 2 years ago
Manos Pitsidianakis 8e7583a32f
melib/imap: don't clear mailbox counts before fetching 2 years ago
Manos Pitsidianakis 5f6b4745b8
melib/imap: don't use UNSEEN select response for unseen count 2 years ago
Manos Pitsidianakis 76c1c1a213
melib/imap: don't examine unloaded mailboxes for updates 2 years ago
Manos Pitsidianakis ddfadc748d
melib/imap: don't fetch RFC822 except when requested 2 years ago
Manos Pitsidianakis 66dea9148b
mail/view: don't update() if coordinates are unchanged 2 years ago
Manos Pitsidianakis 7b3fb86483
mail/view: reset self.theme_default on loading envelope 2 years ago
Manos Pitsidianakis d8c978ed2d
mail/view/thread: fix scrollbar incorrect rendering 2 years ago
Manos Pitsidianakis d076ff573f
MailView, StatusBar: Fix area bound check 2 years ago
Manos Pitsidianakis 6cbb89a8e5
utilities/widgets: fix tiny scrollbar grievances 2 years ago
Manos Pitsidianakis aa89969dca
utilities: use align_area in shortcut help panel 2 years ago
Manos Pitsidianakis 6a67322570
utilities: add scrollbar on y overflow in shortcuts panel 2 years ago
Manos Pitsidianakis 3e109cabf0
Add sail theme 2 years ago
Manos Pitsidianakis 1cbb6828f2
Add nord theme 2 years ago
Manos Pitsidianakis de018294e4
conf/themes: make notifications bg default color instead of red 2 years ago
Manos Pitsidianakis 6dd3b0bb4f
Fix theme_default not being respected 2 years ago
Manos Pitsidianakis 714ccb5e16
Move Color to src/terminal/color.rs 2 years ago
Manos Pitsidianakis 8d9247e9a3
listing: show auto-hide scrollbar in sidebar menu 2 years ago
Manos Pitsidianakis b659749880
listing: scroll account sidebar menu 2 years ago
Manos Pitsidianakis b053aaa145
listing: prevent invalid area in print_account() 2 years ago
Manos Pitsidianakis 883b3e3a4f
mail/view: show multipart/alternative files properly in attachment list 2 years ago
Manos Pitsidianakis 98c1ece28d
Update xdg-util dependency to 0.4.0 2 years ago
Manos Pitsidianakis 54b2066f73
mail/view: set dirty after closing ContactSelector 2 years ago
Manos Pitsidianakis 007e6320d5
utilities: respect theme_default in shortcut dialog 2 years ago
Manos Pitsidianakis e01275cd93
utilities/dialogs: add cursot Unfocused state as default 2 years ago
Manos Pitsidianakis 879af75d88
utilities/dialogs: use align_area to create box 2 years ago
Manos Pitsidianakis 6a5bb2e057
Add align_area() and Alignment enum 2 years ago
Manos Pitsidianakis 311c1a8a95
utilities/dialogs: respect theme_default 2 years ago
Manos Pitsidianakis ce5c7848e8
utilities: move dialogs to its own submodule 2 years ago
Andrew Jeffery daee4e46de
Allow configuration of the sidebar divider 2 years ago
Manos Pitsidianakis 92c12d3526
melib/imap: implement OAUTH2 authentication 2 years ago
Manos Pitsidianakis 0a8a0c04c8
compose: treat inline message/rfc822 as attachments 2 years ago
Manos Pitsidianakis ede5851baf
utilities: reverse order of drawing fields in form 2 years ago
Manos Pitsidianakis 79345b3e84
utilities/StatusBar: fix lack of bounds checking in hist_area 2 years ago
Manos Pitsidianakis b46cd09ca6
compose: pass body text when replying 2 years ago
Manos Pitsidianakis bf56c88918
compose: respect auto_choose_multipart_alternative when rendering multipart/alternative attachments to text 2 years ago
Manos Pitsidianakis 73372ff1e7
compose: add show_comments arg to attachment_displays_to_text() 2 years ago
Manos Pitsidianakis d4f508642a
widgets: allow text overflow in text fields 2 years ago
Manos Pitsidianakis f69f623818
Fix some invalid area calculations 2 years ago
Manos Pitsidianakis 2ef2add67f
imap: fix untrimmed query str resulting in invalid search criteria in cyrus 2 years ago
Manos Pitsidianakis 458209b448
view/thread: clear empty space in draw_list 2 years ago
Manos Pitsidianakis b7c48a1ed0
view/thread: make list draw area consistent 2 years ago
Manos Pitsidianakis f25f93fccf
utilities: Fix incorrect calculations in ScrollBar 2 years ago
Manos Pitsidianakis 31e4ed006d
listing: fix off by one error in PageDown movement 2 years ago
Manos Pitsidianakis 179ed52add
compose: grey embed area when embed is stopped 2 years ago
Manos Pitsidianakis ebc290cc2a
compose: set format flowed if configured in pager 2 years ago
Manos Pitsidianakis f9ce5327c2
melib/imap: fix some LazyCountSet logic errors in sync 2 years ago
Manos Pitsidianakis 5b86c342fb
Update smallvec dependency to 1.5.0 2 years ago
Manos Pitsidianakis 0aa5cf273f
mail/status: don't overwrite "In-progress jobs header" 2 years ago
Manos Pitsidianakis 041257f9a6
melib/text_processing: fix CodePointsIterator implementation 2 years ago
Manos Pitsidianakis 1da6d75b08
melib/text_processing: add new wcwidth implementation 2 years ago
Manos Pitsidianakis a7c0bca8ce
Fix test errors and warnings 2 years ago
Manos Pitsidianakis 023afbaae3
RateLimit: remove unupdated test 2 years ago
Manos Pitsidianakis 1c62de57ae
Never return true on processing JobFinished 2 years ago
Manos Pitsidianakis 76f8bdc558
Add configurable shortcut for 'quit' 2 years ago
Manos Pitsidianakis d404910a0f
melib/smtp: impl AUTH LOGIN 2 years ago
Manos Pitsidianakis c0e3e78940
listing: dont overdraw menu over listing 2 years ago
Manos Pitsidianakis aaee6d094c
Fix NO_COLOR cursor highlight in sidebar and progress spinner 2 years ago
Manos Pitsidianakis 60350eaa88
mail/status: add "general" shortcut section 2 years ago
Manos Pitsidianakis aa73bd71c3
listing: fix mailbox tree rendering 2 years ago
Manos Pitsidianakis aa7ebf2918
melib/smtp: fix SMTP syntax error on DSN notify use 2 years ago
Manos Pitsidianakis 2544f54107
melib/compose: prevent bare newlines in finalised drafts 2 years ago
Manos Pitsidianakis 72084da185
Add store_sent_mail option for gmail 2 years ago
Manos Pitsidianakis 23777171f2
listing: clear_area in draw_menu 2 years ago
Manos Pitsidianakis cbaf21764c
Remove status tab, move account status page to listing 2 years ago
Manos Pitsidianakis da69eecafe
mail/status: make AccountStatus public 2 years ago
Manos Pitsidianakis f0800f38a8
melib/maildir: make MaildirOp return Result<PathBuf> 2 years ago
Manos Pitsidianakis a34f0aac5b
melib: fix bincode serialization 2 years ago
Manos Pitsidianakis 353ac2d029
melib: set upper limit for bincode deserialize 2 years ago
Manos Pitsidianakis 6c07046b66
Update bincode dependency to 1.3.1 2 years ago
Manos Pitsidianakis 8ac5558d65
Makefile: add CARGO_ARGS env var 2 years ago
Manos Pitsidianakis 43d3d3681e
Makefile: replace install(1) with mkdir, rm, cp, chmod 2 years ago
Rudi Horn f1bdae65ee
melib/jmap: add HTTP redirect policy to client 2 years ago
Manos Pitsidianakis 6cc43540d6
docs/meli.conf.5: add SmtpPassword examples 2 years ago
Manos Pitsidianakis 6392904047
Replace PosixTimer with async timers 2 years ago
Manos Pitsidianakis 57e6cf3980
Limit dbus dependency to target_os = "linux" 2 years ago
Manos Pitsidianakis 9a9c876f4a
melib: add more encodings 2 years ago
Manos Pitsidianakis afa74ccfb5
compose: add From text entry autocomplete 2 years ago
Manos Pitsidianakis 560771b32a
widgets: select AutoCompleteEntry on Enter 2 years ago
Manos Pitsidianakis 7b1ab389fa
Remove unused plugin interface 2 years ago
Manos Pitsidianakis 594a2bd0dd
listing: add set operations to range select actions 2 years ago
Manos Pitsidianakis 05ef863a45
utilities: move PageMovement to components mod 2 years ago
Manos Pitsidianakis d5aa2cb3ef
melib/line_break: add segment tree impl 2 years ago
Manos Pitsidianakis f7fc2e31e0
melib: Remove unused crossbeam dependency 2 years ago
Manos Pitsidianakis 00f5c4b9c0
melib/maildir: split parsing into big chunks 2 years ago
Manos Pitsidianakis 4b91de3d59
state: remove overlay widgets on ComponentKill events 2 years ago
Manos Pitsidianakis eb36034740
accounts: autoload Sent folders automatically 2 years ago
Manos Pitsidianakis d4e347289c
melib/README: update feature table 2 years ago
Manos Pitsidianakis 662706607b
melib: remove memmap dependency 2 years ago
Manos Pitsidianakis b904f91f45
README: replace svg with webp screenshots 2 years ago
Manos Pitsidianakis 9f39a7c5a1
statusbar: delete num buffer chars with Backspace 2 years ago
Manos Pitsidianakis 126ed8a189
statusbar: don't overwrite num buffer when progress spinner is deactivated 2 years ago
Manos Pitsidianakis 91fe7435f7
melib/imap: add suggestion on STARTTLS error 2 years ago
Manos Pitsidianakis 7a9c150f33
melib/imap: fetch References header along with ENVELOPE 2 years ago
Manos Pitsidianakis b9f4d718c7
melib/sqlite3: reset db on version mismatch 2 years ago
Manos Pitsidianakis 54cb4ea623
melib/build.rs: remove unnecessary file creation 2 years ago
Manos Pitsidianakis 7919e95ddd
terminal/embed: remove some allocations and unwraps 2 years ago
Manos Pitsidianakis 89940dd606
cli-docs: compress included text 2 years ago
Manos Pitsidianakis b69bc219c3
README.md: Add screenshots and update text 2 years ago
Manos Pitsidianakis bb51d36579
composer: send NewJob event on submission 2 years ago
Manos Pitsidianakis a2456fa3f5
docs/meli.conf.5: small fixes & additions 2 years ago
Manos Pitsidianakis 3b97e66c10
docs/meli.conf.5: add progress_spinner_sequence doc 2 years ago
Manos Pitsidianakis ddfec3e207
listing: fix menu draw artifact 2 years ago
Manos Pitsidianakis a702a04043
melib/attachments: add SMIME signature variant 2 years ago
Manos Pitsidianakis 6264ee011f
terminal/embed: remove unwraps from kill() calls 2 years ago
Manos Pitsidianakis 5acd7dfe1c
mail/view: prevent spurious redraw in special modes 2 years ago
Manos Pitsidianakis 8090d614e2
conf/pager: remove unused max_width option 2 years ago
Manos Pitsidianakis 3949cecb75
mail/composer: add scrollbars 2 years ago
Manos Pitsidianakis 1e7b40e6b3
utilities: move pager to its own module 2 years ago
Manos Pitsidianakis d8d66641e2
utilities/widgets: only advance stage by timer in ProgressSpinner 2 years ago
Manos Pitsidianakis 393c5d0d53
state: cull redraws of floating notifications 2 years ago
Manos Pitsidianakis 4c1a9b2485
Fix minor warnings 2 years ago
Manos Pitsidianakis 03a1d5a985
listing: Update status on all update events 2 years ago
Manos Pitsidianakis 279c288a22
Alter enter_command_mode shortcut to `:` 2 years ago
Manos Pitsidianakis e4cddbad25
mail/view: send NewJob event on new jobs 2 years ago
Manos Pitsidianakis 67f50d95f4
Add quit command 2 years ago
Manos Pitsidianakis 0c68807814
Add export-mail command 2 years ago
Manos Pitsidianakis 4e72b6552a
conf: add setting for progress spinner 2 years ago
Manos Pitsidianakis 310d02042f
Rename toggle_thread_snooze to "toggle thread_snooze" 2 years ago
Manos Pitsidianakis 188e020bd1
Add opt-in mouse support 2 years ago
Manos Pitsidianakis 20840625d6
melib/gpgme: trim header file 2 years ago
Manos Pitsidianakis d51d0187a6
melib/imap: change byte cache String -> Vec<u8> 2 years ago
Manos Pitsidianakis 2944fc992b
melib/imap/untagged: handle EXPUNGE if our MSNs invalid 2 years ago
Manos Pitsidianakis 535d04f4f0
melib/imap/untagged: lower mbox count on EXPUNGE events 2 years ago
Manos Pitsidianakis 6f31388b27
compose: add EditAttachments menu 2 years ago
Manos Pitsidianakis 5337a54d96
compose: move gpg mod to its own file 2 years ago
Manos Pitsidianakis b343530f0c
widgets: add button type parameter to FormWidget 2 years ago
Manos Pitsidianakis cd68008e67
melib: Implement delete_messages for IMAP, Maildir 2 years ago
Manos Pitsidianakis 19891a3042
Cargo.toml: set codegen-units = 1 2 years ago
Manos Pitsidianakis 9ce62c735a
compose: add key selection state for gpg operations 2 years ago
Manos Pitsidianakis 39fab67523
compose: use melib::Bytes pretty print for attachment size 2 years ago
Manos Pitsidianakis 0ca7b0042e
utilities: ensure Form/Button widgets are not always non-dirty 2 years ago
Manos Pitsidianakis 406af1848f
compose: add `add-attachment-file-picker` command 2 years ago
Manos Pitsidianakis a4b78532b7
Refactor job structs into JoinHandle 2 years ago
Manos Pitsidianakis 4dd8474c30
gpgme: add PartialEq impl for Key 2 years ago
Manos Pitsidianakis 0dd9e6a34b
compose: kill selectors on ComponentKill 2 years ago
Manos Pitsidianakis eb1cb5cec6
compose: expand cursor reach to attachment area 2 years ago
Manos Pitsidianakis e42c9281fd
Fix input events going to hidden components 2 years ago
Manos Pitsidianakis bc74379b27
mailview: don't process_event if coordinates uninitialised 2 years ago
Manos Pitsidianakis be45b0c02d
compose: add encrypt layer 2 years ago
Manos Pitsidianakis 3ec1ecb349
Add import mail action 2 years ago
Manos Pitsidianakis afe7eed9ef
melib/compose: don't base64 encode unless it's not ascii 2 years ago
Manos Pitsidianakis 59e60f8d28
gpgme: add context flag set/get 2 years ago
Manos Pitsidianakis a2f11c341d
compose: add async draft filter stack in sending mail 2 years ago
Manos Pitsidianakis afee1e2be5
melib/compose: fix wrong Content-Type on PGP signatures and message/rfc822 2 years ago
Manos Pitsidianakis 08df7f39b2
Add toggle encrypt action in composer 2 years ago
Manos Pitsidianakis 5d968b7c40
imap: fix out of bounds panic on receive EXPUNGE 2 years ago
Manos Pitsidianakis 347b54e0f7
segment_tree: get_max() return 0 if tree empty 2 years ago
Manos Pitsidianakis 74f31875b8
listing: fix menu gaining focus if not visible 2 years ago
Manos Pitsidianakis 23ca41e3e8
add libgpgme feature 2 years ago
Manos Pitsidianakis b9c07bacef
melib: decode text inline message/rfc822 attachments 2 years ago
Manos Pitsidianakis 87443f156f
docs/meli.1: add copyto, moveto, delete commands 2 years ago
Manos Pitsidianakis b0e50a29bd
melib/list_management: don't ignore "NO" in List-Post 2 years ago
Manos Pitsidianakis 1ddde400ee
debian/: bump version to 0.6.2 2 years ago
  1. 93
      CHANGELOG.md
  2. 1619
      Cargo.lock
  3. 82
      Cargo.toml
  4. 29
      Makefile
  5. 122
      README.md
  6. 69
      build.rs
  7. 14
      config_macros.rs
  8. 348
      contrib/oauth2.py
  9. 59
      debian/changelog
  10. 34
      docs/meli-themes.5
  11. 250
      docs/meli.1
  12. 742
      docs/meli.7
  13. 716
      docs/meli.conf.5
  14. 74
      docs/samples/sample-config.toml
  15. 70
      docs/samples/themes/nord.toml
  16. 4
      docs/samples/themes/orca.toml
  17. 69
      docs/samples/themes/sail.toml
  18. 2
      docs/samples/themes/spooky.toml
  19. 2
      docs/samples/themes/watermelon.toml
  20. 1
      docs/screenshots/compact.svg
  21. BIN
      docs/screenshots/compact.webp
  22. 1
      docs/screenshots/compose.svg
  23. BIN
      docs/screenshots/compose.webp
  24. 1
      docs/screenshots/main.svg
  25. BIN
      docs/screenshots/main.webp
  26. 2252
      fuzz/Cargo.lock
  27. 61
      melib/Cargo.toml
  28. 17
      melib/README.md
  29. 379
      melib/build.rs
  30. 20
      melib/src/addressbook.rs
  31. 67
      melib/src/addressbook/vcard.rs
  32. 237
      melib/src/backends.rs
  33. 329
      melib/src/backends/imap.rs
  34. 69
      melib/src/backends/imap/cache.rs
  35. 131
      melib/src/backends/imap/cache/sync.rs
  36. 309
      melib/src/backends/imap/connection.rs
  37. 19
      melib/src/backends/imap/mailbox.rs
  38. 477
      melib/src/backends/imap/managesieve.rs
  39. 11
      melib/src/backends/imap/operations.rs
  40. 281
      melib/src/backends/imap/protocol_parser.rs
  41. 448
      melib/src/backends/imap/untagged.rs
  42. 224
      melib/src/backends/imap/watch.rs
  43. 222
      melib/src/backends/jmap.rs
  44. 73
      melib/src/backends/jmap/connection.rs
  45. 2
      melib/src/backends/jmap/mailbox.rs
  46. 65
      melib/src/backends/jmap/objects/email.rs
  47. 3
      melib/src/backends/jmap/objects/email/import.rs
  48. 7
      melib/src/backends/jmap/operations.rs
  49. 66
      melib/src/backends/jmap/protocol.rs
  50. 95
      melib/src/backends/jmap/rfc8620.rs
  51. 35
      melib/src/backends/maildir.rs
  52. 261
      melib/src/backends/maildir/backend.rs
  53. 175
      melib/src/backends/maildir/stream.rs
  54. 402
      melib/src/backends/mbox.rs
  55. 260
      melib/src/backends/mbox/write.rs
  56. 348
      melib/src/backends/nntp.rs
  57. 102
      melib/src/backends/nntp/connection.rs
  58. 3
      melib/src/backends/nntp/mailbox.rs
  59. 9
      melib/src/backends/nntp/protocol_parser.rs
  60. 331
      melib/src/backends/notmuch.rs
  61. 91
      melib/src/backends/notmuch/bindings.rs
  62. 88
      melib/src/backends/notmuch/message.rs
  63. 92
      melib/src/collection.rs
  64. 97
      melib/src/conf.rs
  65. 12
      melib/src/connections.rs
  66. 407
      melib/src/datetime.rs
  67. 150
      melib/src/email.rs
  68. 20
      melib/src/email/address.rs
  69. 210
      melib/src/email/attachment_types.rs
  70. 404
      melib/src/email/attachments.rs
  71. 325
      melib/src/email/compose.rs
  72. 2
      melib/src/email/compose/mime.rs
  73. 20
      melib/src/email/list_management.rs
  74. 191
      melib/src/email/parser.rs
  75. 40
      melib/src/email/pgp.rs
  76. 434
      melib/src/error.rs
  77. 5424
      melib/src/gpgme/bindings.rs
  78. 155
      melib/src/gpgme/io.rs
  79. 1357
      melib/src/gpgme/mod.rs
  80. 98
      melib/src/lib.rs
  81. 3
      melib/src/logging.rs
  82. 294
      melib/src/parsec.rs
  83. 590
      melib/src/smtp.rs
  84. 121
      melib/src/sqlite3.rs
  85. 4
      melib/src/text_processing/grapheme_clusters.rs
  86. 582
      melib/src/text_processing/line_break.rs
  87. 76
      melib/src/text_processing/mod.rs
  88. 1480
      melib/src/text_processing/tables.rs
  89. 5
      melib/src/text_processing/types.rs
  90. 608
      melib/src/text_processing/wcwidth.rs
  91. 410
      melib/src/thread.rs
  92. 65
      melib/test_sample_longmessage.eml
  93. 315
      src/command.rs
  94. 22
      src/command/actions.rs
  95. 28
      src/components.rs
  96. 53
      src/components/contacts.rs
  97. 184
      src/components/contacts/contact_list.rs
  98. 1
      src/components/mail.rs
  99. 1521
      src/components/mail/compose.rs
  100. 312
      src/components/mail/compose/edit_attachments.rs

93
CHANGELOG.md

@ -7,6 +7,96 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
### Added
- Added listing configuration setting `thread_subject_pack` (see meli.conf.5)
- Added shortcuts for focusing to sidebar menu and back to the e-mail view (`focus_left` and `focus_right`)
- `f76f4ea3` A new manual page, `meli.7` which contains a general tutorial for using meli.
- `cbe593cf` add configurable header preample suffix and prefix for editing
- `a484b397` Added instructions and information to error shown when libnotmuch could not be found.
- `a484b397` Added configuration setting `library_file_path` to notmuch backend if user wants to specify the library's location manually.
- `aa99b0d7` Implement configurable subject prefix stripping when replying
- `a73885ac` added RGB support to embedded terminal emulator.
- `f4e0970d` added ability to kill embed process with Ctrl-C, or Ctrl-Z and pressing 'q'.
- `9205f3b8` added a per account mail sort order parameter.
- `d921b3c3` implemented sorting with user sort order parameter if defined.
- `dc5afa13` use osascript/applescript for notifications on macos
- `d0de0485` add {in,de}crease_sidebar shortcuts
- `340d6451` add config setting for sidebar ratio
- `36e29cb6` Add configurable mailbox sort order
### Changed
- `f76f4ea3` Shortcut `open_thread` and `exit_thread` renamed to `open_entry` and `exit_entry`.
- `7650805c` Binary size reduced significantly.
### Fixed
- `a42a6ca8` show notifications in terminal if there is no other alternative.
## [alpha-0.7.2] - 2021-10-15
### Added
- Add forward mail option
- Add url_launcher config setting
- Add add_addresses_to_contacts command
- Add show_date_in_my_timezone pager config flag
- docs: add pager filter documentation
- mail/view: respect per-folder/account pager filter override
- pager: add filter command, esc to clear filter
- Show compile time features in with command argument
### Fixed
- melib/email/address: quote display_name if it contains ","
- melib/smtp: fix Cc and Bcc ignored when sending mail
- melib/email/address: quote display_name if it contains "."
## [alpha-0.7.1] - 2021-09-08
### Added
- Change all Down/Up shortcuts to j/k
- add 'GB18030' charset
- melib/nntp: implement refresh
- melib/nntp: update total/new counters on new articles
- melib/nntp: implement NNTP posting
- configs: throw error on extra unusued conf flags in some imap/nntp
- configs: throw error on missing `composing` section with explanation
### Fixed
- Fix compilation for netbsd-9.2
- conf: fixed some boolean flag values requiring to be string e.g. "true"
## [alpha-0.7.0] - 2021-09-03
### Added
Notable changes:
- add import command to import email from files into accounts
- add add-attachment-file-picker command and `file_picker_command` setting to
use external commands to choose files when composing new mail
- ask confirm for delete
- add export-mbox command
- add export-mail command
- add TLS support with nntp
- add JMAP watch with polling
- add reload-config command
- add import-mail command
- imap: implement gmail XOAUTH2 authentication method
- imap: implement OAUTH2 authentication
- compose: treat inline message/rfc822 as attachments
- add gpg support via libgpgme
### Fixed
- Loading notmuch library on macos
- Limit dbus dependency to target_os = "linux"
- IMAP, notmuch, mbox backends: various performance fixes
## [alpha-0.6.2] - 2020-09-24
### Added
@ -104,3 +194,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[alpha-0.6.0]: https://github.com/meli/meli/releases/tag/alpha-0.6.0
[alpha-0.6.1]: https://github.com/meli/meli/releases/tag/alpha-0.6.1
[alpha-0.6.2]: https://github.com/meli/meli/releases/tag/alpha-0.6.2
[alpha-0.7.0]: https://github.com/meli/meli/releases/tag/alpha-0.7.0
[alpha-0.7.1]: https://github.com/meli/meli/releases/tag/alpha-0.7.1
[alpha-0.7.2]: https://github.com/meli/meli/releases/tag/alpha-0.7.2

1619
Cargo.lock
File diff suppressed because it is too large
View File

82
Cargo.toml

@ -1,6 +1,6 @@
[package]
name = "meli"
version = "0.6.2"
version = "0.7.2"
authors = ["Manos Pitsidianakis <el13635@mail.ntua.gr>"]
edition = "2018"
@ -15,72 +15,82 @@ default-run = "meli"
[[bin]]
name = "meli"
path = "src/bin.rs"
path = "src/main.rs"
#[[bin]]
#name = "managesieve-meli"
#path = "src/managesieve.rs"
[lib]
name = "meli"
path = "src/lib.rs"
[[bin]]
name = "managesieve-client"
path = "src/managesieve.rs"
#[[bin]]
#name = "async"
#path = "src/async.rs"
[dependencies]
xdg = "2.1.0"
crossbeam = "0.7.2"
signal-hook = "0.1.12"
signal-hook-registry = "1.2.0"
nix = "0.17.0"
melib = { path = "melib", version = "0.6.2" }
async-task = "^4.2.0"
bincode = { version = "^1.3.0", default-features = false }
bitflags = "1.0"
crossbeam = { version = "^0.8" }
flate2 = { version = "1.0.16", optional = true }
futures = "0.3.5"
indexmap = { version = "^1.6", features = ["serde-1", ] }
libc = { version = "0.2.125", default-features = false, features = ["extra_traits",] }
linkify = { version = "^0.8", default-features = false }
melib = { path = "melib", version = "0.7.2" }
nix = { version = "^0.24", default-features = false }
notify = { version = "4.0.1", default-features = false } # >:c
num_cpus = "1.12.0"
pcre2 = { version = "0.2.3", optional = true }
serde = "1.0.71"
serde_derive = "1.0.71"
serde_json = "1.0"
toml = { version = "0.5.6", features = ["preserve_order", ] }
indexmap = { version = "^1.5", features = ["serde-1", ] }
linkify = "0.4.0"
notify = "4.0.1" # >:c
notify-rust = { version = "^4", optional = true }
termion = "1.5.1"
bincode = "1.2.0"
uuid = { version = "0.8.1", features = ["serde", "v4"] }
unicode-segmentation = "1.2.1" # >:c
libc = {version = "0.2.59", features = ["extra_traits",]}
rmp = "^0.8"
rmpv = { version = "^0.4.2", features=["with-serde",] }
rmp-serde = "^0.14.0"
smallvec = { version = "^1.4.0", features = ["serde", ] }
bitflags = "1.0"
pcre2 = { version = "0.2.3", optional = true }
signal-hook = { version = "^0.3", default-features = false }
signal-hook-registry = { version = "1.2.0", default-features = false }
smallvec = { version = "^1.5.0", features = ["serde", ] }
structopt = { version = "0.3.14", default-features = false }
svg_crate = { version = "0.8.0", optional = true, package = "svg" }
futures = "0.3.5"
async-task = "3.0.0"
num_cpus = "1.12.0"
svg_crate = { version = "^0.10", optional = true, package = "svg" }
termion = { version = "1.5.1", default-features = false }
toml = { version = "0.5.6", default-features = false, features = ["preserve_order", ] }
unicode-segmentation = "1.2.1" # >:c
xdg = "2.1.0"
[target.'cfg(target_os="linux")'.dependencies]
notify-rust = { version = "^4", default-features = false, features = ["dbus", ], optional = true }
[build-dependencies]
syn = { version = "1.0.31", features = [] }
flate2 = { version = "1.0.16", optional = true }
proc-macro2 = "1.0.37"
quote = "^1.0"
proc-macro2 = "1.0.18"
syn = { version = "1.0.92", features = [] }
[dev-dependencies]
regex = "1"
[profile.release]
lto = "fat"
opt-level = "z"
codegen-units = 1
opt-level = "s"
debug = false
strip = true
[workspace]
members = ["melib", "tools", ]
[features]
default = ["sqlite3", "notmuch", "regexp", "smtp", "dbus-notifications"]
default = ["sqlite3", "notmuch", "regexp", "smtp", "dbus-notifications", "gpgme", "cli-docs"]
notmuch = ["melib/notmuch_backend", ]
jmap = ["melib/jmap_backend",]
sqlite3 = ["melib/sqlite3"]
smtp = ["melib/smtp"]
regexp = ["pcre2"]
dbus-notifications = ["notify-rust",]
cli-docs = []
cli-docs = ["flate2"]
svgscreenshot = ["svg_crate"]
gpgme = ["melib/gpgme"]
# Print tracing logs as meli runs in stderr
# enable for debug tracing logs: build with --features=debug-tracing

29
Makefile

@ -16,6 +16,8 @@
#
# You should have received a copy of the GNU General Public License
# along with meli. If not, see <http://www.gnu.org/licenses/>.
.POSIX:
.SUFFIXES:
# Options
PREFIX ?= /usr/local
@ -26,6 +28,7 @@ MANDIR ?= ${EXPANDED_PREFIX}/share/man
CARGO_TARGET_DIR ?= target
MIN_RUSTC ?= 1.39.0
CARGO_BIN ?= cargo
CARGO_ARGS ?=
# Installation parameters
DOCS_SUBDIR ?= docs/
@ -45,11 +48,11 @@ CARGO_COLOR ?= `[ -z $${NO_COLOR+x} ] && echo "" || echo "--color=never "`
RED ?= `[ -z $${NO_COLOR+x} ] && ([ -z $${TERM} ] && echo "" || tput setaf 1) || echo ""`
GREEN ?= `[ -z $${NO_COLOR+x} ] && ([ -z $${TERM} ] && echo "" || tput setaf 2) || echo ""`
.POSIX:
.SUFFIXES:
.PHONY: meli
meli: check-deps
@${CARGO_BIN} build ${CARGO_COLOR}--target-dir="${CARGO_TARGET_DIR}" ${FEATURES} --release
@${CARGO_BIN} build ${CARGO_ARGS} ${CARGO_COLOR}--target-dir="${CARGO_TARGET_DIR}" ${FEATURES} --release --bin meli
.PHONY: help
help:
@echo "For a quick start, build and install locally:\n ${BOLD}${GREEN}PREFIX=~/.local make install${ANSI_RESET}\n"
@echo "Available subcommands:"
@ -84,15 +87,18 @@ help:
@echo -n "* NO_COLOR ${UNDERLINE}"
@[ $${NO_COLOR+x} ] && echo -n "set" || echo -n "unset"
@echo ${ANSI_RESET}
@echo "* CARGO_BIN = ${UNDERLINE}${CARGO_BIN}${ANSI_RESET}"
@echo "* CARGO_ARGS = ${UNDERLINE}${CARGO_ARGS}${ANSI_RESET}"
@echo "* MIN_RUSTC = ${UNDERLINE}${MIN_RUSTC}${ANSI_RESET}"
@#@echo "* CARGO_COLOR = ${CARGO_COLOR}"
.PHONY: check
check:
@${CARGO_BIN} test ${CARGO_COLOR}--target-dir="${CARGO_TARGET_DIR}" --workspace
@${CARGO_BIN} test ${CARGO_ARGS} ${CARGO_COLOR}--target-dir="${CARGO_TARGET_DIR}" --workspace
.PHONY: check-deps
check-deps:
@(if ! echo ${MIN_RUSTC}\\n`${CARGO_BIN} --version | cut -d ' ' -f 2` | sort -CV; then echo "rust version >= ${RED}${MIN_RUSTC}${ANSI_RESET} required, found: `which ${CARGO_BIN}` `${CARGO_BIN} --version | cut -d ' ' -f 2`" \
@(if ! echo ${MIN_RUSTC}\\n`${CARGO_BIN} --version | grep ^cargo | cut -d ' ' -f 2` | sort -CV; then echo "rust version >= ${RED}${MIN_RUSTC}${ANSI_RESET} required, found: `which ${CARGO_BIN}` `${CARGO_BIN} --version | cut -d ' ' -f 2`" \
"\nYour options:\n - Set CARGO_BIN to a supported version\n - Install a supported version from your distribution's package manager\n - Install a supported version from ${UNDERLINE}https://rustup.rs/${ANSI_RESET}" ; exit 1; fi)
@ -122,9 +128,9 @@ install-doc:
MANPAGEPATH=${DESTDIR}${MANDIR}/man$${SECTION}/$${MANPAGE}.gz; \
echo " * installing $${MANPAGE} β†’ ${GREEN}$${MANPAGEPATH}${ANSI_RESET}"; \
gzip -n < ${DOCS_SUBDIR}$${MANPAGE} > $${MANPAGEPATH} \
; done ; \
; done ; \
(case ":${MANPATHS}:" in \
*:${DESTDIR}${MANDIR}:*) echo -n "";; \
*:${DESTDIR}${MANDIR}:*) echo -n "";; \
*) echo "\n${RED}${BOLD}WARNING${ANSI_RESET}: ${UNDERLINE}Path ${DESTDIR}${MANDIR} is not contained in your MANPATH variable or the output of \`manpath\` command.${ANSI_RESET} \`man\` might fail finding the installed manpages. Consider adding it if necessary.\nMANPATH variable / output of \`manpath\`: ${MANPATHS}" ;; \
esac) ; \
else echo "NO_MAN is defined, so no documentation is going to be installed." ; fi)
@ -134,10 +140,13 @@ install-bin: meli
@mkdir -p $(DESTDIR)${BINDIR}
@echo " - ${BOLD}Installing binary to ${ANSI_RESET}${GREEN}${DESTDIR}${BINDIR}/meli${ANSI_RESET}"
@case ":${PATH}:" in \
*:${DESTDIR}${BINDIR}:*) echo -n "";; \
*:${DESTDIR}${BINDIR}:*) echo -n "";; \
*) echo "\n${RED}${BOLD}WARNING${ANSI_RESET}: ${UNDERLINE}Path ${DESTDIR}${BINDIR} is not contained in your PATH variable.${ANSI_RESET} Consider adding it if necessary.\nPATH variable: ${PATH}";; \
esac
@install -D ./${CARGO_TARGET_DIR}/release/meli $(DESTDIR)${BINDIR}/meli
@mkdir -p $(DESTDIR)${BINDIR}
@rm -f $(DESTDIR)${BINDIR}/meli
@cp ./${CARGO_TARGET_DIR}/release/meli $(DESTDIR)${BINDIR}/meli
@chmod 755 $(DESTDIR)${BINDIR}/meli
.PHONY: install
@ -161,4 +170,4 @@ deb-dist:
.PHONY: build-rustdoc
build-rustdoc:
@RUSTDOCFLAGS="--crate-version ${VERSION}_${GIT_COMMIT}_${DATE}" ${CARGO_BIN} doc ${CARGO_COLOR}--target-dir="${CARGO_TARGET_DIR}" --all-features --no-deps --workspace --document-private-items --open
@RUSTDOCFLAGS="--crate-version ${VERSION}_${GIT_COMMIT}_${DATE}" ${CARGO_BIN} doc ${CARGO_ARGS} ${CARGO_COLOR}--target-dir="${CARGO_TARGET_DIR}" --all-features --no-deps --workspace --document-private-items --open

122
README.md

@ -1,92 +1,89 @@
# meli
For a quick start, build and install locally:
# meli [![GitHub license](https://img.shields.io/github/license/meli/meli)](https://github.com/meli/meli/blob/master/COPYING) [![Crates.io](https://img.shields.io/crates/v/meli)](https://crates.io/crates/meli)
```sh
PREFIX=~/.local make install
```
**BSD/Linux terminal email client with support for multiple accounts and Maildir / mbox / notmuch / IMAP / JMAP.**
Available subcommands:
- meli (builds meli with optimizations in `$CARGO_TARGET_DIR`)
- install (installs binary in `$BINDIR` and documentation to `$MANDIR`)
- uninstall
Secondary subcommands:
- clean (cleans build artifacts)
- check-deps (checks dependencies)
- install-bin (installs binary to `$BINDIR`)
- install-doc (installs manpages to `$MANDIR`)
- help (prints this information)
- dist (creates release tarball named `meli-VERSION.tar.gz` in this directory)
- deb-dist (builds debian package in the parent directory)
- distclean (cleans distribution build artifacts)
- build-rustdoc (builds rustdoc documentation for all packages in `$CARGO_TARGET_DIR`)
Community links:
[mailing lists](https://lists.meli.delivery/) | `#meli` on OFTC IRC | Report bugs and/or feature requests in [meli's issue tracker](https://git.meli.delivery/meli/meli/issues "meli gitea issue tracker")
The Makefile *should* be portable and not require a specific `make` version.
| | | |
:---:|:---:|:---:
![Main view screenshot](./docs/screenshots/main.webp "mail meli view screenshot") | ![Compact main view screenshot](./docs/screenshots/compact.webp "compact main view screenshot") | ![Compose with embed terminal editor screenshot](./docs/screenshots/compose.webp "composing view screenshot")
Main view | Compact main view | Compose with embed terminal editor
# Documentation
Main repository:
* https://git.meli.delivery/meli/meli
After installing meli, see `meli(1)` and `meli.conf(5)` for documentation. Sample configuration and theme files can be found in the `samples/` subdirectory.
Official mirrors:
* https://github.com/meli/meli
# Building
## Install
- Try an [online interactive web demo](https://meli.delivery/wasm2.html "online interactive web demo") powered by WebAssembly
- [`cargo install meli`](https://crates.io/crates/meli "crates.io meli package")
- [Download and install pre-built debian package, static linux binary](https://github.com/meli/meli/releases/ "github releases for meli"), or
- Install with [Nix](https://search.nixos.org/packages?show=meli&query=meli&from=0&size=30&sort=relevance&channel=unstable#disabled "nixos package search results for 'meli'")
meli requires rust 1.39 and rust's package manager, Cargo. Information on how
to get it on your system can be found here: <https://doc.rust-lang.org/cargo/getting-started/installation.html>
## Documentation
With Cargo available, the project can be built with
See a comprehensive tour of `meli` in the manual page [`meli(7)`](./docs/meli.7).