Commit Graph

425 Commits

Author SHA1 Message Date
Ben Burwell cce7cb4808 Factor UI models out of the worker message package
Before, the information needed to display different parts of the UI was
tightly coupled to the specific messages being sent back and forth to
the backend worker. Separating out a models package allows us to be more
specific about exactly what a backend is able to and required to
provide for the UI.
2019-07-08 16:06:23 -04:00
Drew DeVault c79577d376 Add .build.yml 2019-07-07 18:51:51 -04:00
Drew DeVault 363aab5cc1 Make :pipe command more generic 2019-07-05 12:21:12 -04:00
Drew DeVault f9f523ad59 Remove unused caps string 2019-07-04 12:33:19 -04:00
Drew DeVault f7387f8c60 Sort out dirstore once and for all 2019-07-04 12:31:27 -04:00
Reto Brunner b12eba55c3 dirlist: simplify nextPrev() considerably
Assuming we always have a sorted dirlist
(other code depends on that already), we don't need to loop over the
dirStore.
Any filtering done should be performed elsewhere
2019-07-04 12:24:16 -04:00
Reto Brunner 0abca31c15 dirlist: remove the additional filtering in Draw() 2019-07-04 12:24:16 -04:00
Reto Brunner d7fecf7740 dirlist: sync dirstore in filterDirsByFoldersConfig
Also sets the public List() method to return the unfiltered
list of directories directly from the store.
2019-07-04 12:24:16 -04:00
Gregory Mullen f9d26eef58 Add IMAP folder tab completion
Credit for this fix goes to Reto; I guess if we're not gonna be mutt
we should probabaly do things correctly.
2019-07-04 11:28:04 -04:00
Ben Burwell 8d9d94f0ee Use go-message implementation of GenerateMessageID
Now that this is available in the upstream, we no longer need to
maintain a parallel implementation.
2019-07-04 11:24:19 -04:00
Ben Burwell cffa2365be Document message index format specifiers 2019-07-04 11:08:55 -04:00
Zach Sisco ddd0fa428f Crash on delete in empty folder (#213) 2019-07-04 11:08:08 -04:00
Ben Burwell 030f390436 Add unsubscribe command
The unsubscribe command, available when in a message viewer context,
enables users to easily unsubscribe from mailing lists.

When the command is executed, aerc looks for a List-Unsubscribe header
as defined in RFC 2369. If found, aerc will attempt to present the user
with a suitable interface for completing the request. Currently, mailto
and http(s) URLs are supported. In the case of a HTTP(S) URL, aerc will
open the link in a browser. For mailto links, a new composer tab will be
opened with a message filled out according to the URL. The message is
not sent automatically in order to provide the user a chance to review
it first.

Closes #101
2019-07-04 11:06:14 -04:00
Ben Burwell 1bb1a80156 Use "open" instead of "xdg-open" on Darwin systems 2019-07-04 10:58:33 -04:00
Drew DeVault 687f1d8c1a Update binds.conf 2019-07-04 09:58:31 -04:00
Drew DeVault 61ef404e31 Correct default filter order in aerc.conf.in 2019-07-02 20:36:57 -04:00
Drew DeVault 491e360178 Revert "Remove dirs field and references to it"
This reverts commit 0e55637aac.
2019-07-02 19:43:41 -04:00
Robert Günzler 0e55637aac Remove dirs field and references to it
This fixes prev/next-folder that broke after
546dfcd76d
2019-06-30 10:33:50 -04:00
Zach Sisco 5b4e592371 panic: runtime error: index out of range in handleFetchMessages (#127) 2019-06-29 14:30:57 -04:00
Gregory Mullen 546dfcd76d Add new lib/dirstore to source completions from 2019-06-29 14:24:19 -04:00
Gregory Mullen 2a0961701c Implement basic tab completion support
Tab completion currently only works on commands. Contextual completion
will be added in the future.
2019-06-29 14:24:19 -04:00
Drew DeVault 177651bdda Move contrib -> filters 2019-06-27 09:32:46 -04:00
Stefan Rakel 59df06fe28 Reopening mailcontent file to fix #166
Because editors like vim use backupfiles and rename them to the original
name, the file handle used can point to the wrong file. Reopening the
file should fix this.
2019-06-27 09:25:27 -04:00
Daniel Lublin 963d251289 Set the required go version for this module, aerc
This is the way to declare which compiler version a module requires to build.

I read up on https://golang.org/doc/go1.12#modules
2019-06-27 09:24:20 -04:00
Drew DeVault bf02ad30ca Fix jumping around in search 2019-06-26 20:52:34 -04:00
Drew DeVault 91a75cd98b Implement :search, :next-result, :prev-result 2019-06-26 20:50:54 -04:00
Reto Brunner ccf5c02c38 msgview/save: Use defaultSavePath if no path is provided 2019-06-25 10:38:55 -04:00
Reto Brunner ee242a3d0f add DefaultSavePath config 2019-06-25 10:38:52 -04:00
Daniel Lublin 61c94e54cd account-wizard: look up imap and smtp server by SRV records (#100) 2019-06-25 10:31:28 -04:00
Drew DeVault 198661bfbd worker/imap: rig up search directory handler 2019-06-24 16:31:37 -04:00
Drew DeVault 0e9c411751 worker/imap: implement search 2019-06-24 16:29:25 -04:00
Issam Maghni b15d1e52b3 aerc-config: [viewer] should be [compose] 2019-06-23 13:52:43 -04:00
Drew DeVault ceeb30abeb Fix Cc & Bcc handling in replies 2019-06-21 14:33:09 -04:00
Drew DeVault 63538978f3 Fix reply bindings in [view] 2019-06-19 20:07:33 -04:00
Reto Brunner 90db2e54b0 Makefile: fix -ldflags -X invocation
Aerc uses the go linker to add some variables like main.Prefix / main.ShareDir
etc. however the go linker only considers the last -ldflags invocation it seems.

This commit fixes the makefile to use only a single -ldflags invocation, which
again sets the vars as expected.
2019-06-19 15:48:13 -04:00
Noah Loomans d1654def19 account-wizard: automatically replace imap.* with smtp.*
Many email providers use the imap sub-domain for imap and the smtp
sub-domain for smtp. FastMail is an example of this[1]. This is a small
quality-of-life improvement which automatically replaces imap.* with
smtp.* when going from the imap screen to the smtp screen in the wizard

[1]: https://www.fastmail.com/help/technical/servernamesandports.html
2019-06-18 19:40:02 -04:00
Martin Hafskjold Thoresen 53df15ae06 Insert nil check before handling prev/next message
If these are called before the store is setup, `acct.Store()` returns
`nil`, and we SEGFAULT in `MessageStore.nextPrev`.
2019-06-18 19:39:42 -04:00
Drew DeVault 74af57b6c6 Add aerc -v to print the installed version 2019-06-18 09:50:06 -04:00
Réouven Assouly ce475e4952 commands/msgview: add open command 2019-06-17 14:52:52 -04:00
Réouven Assouly dfe114b643 Make part encoding checks case insensitive
commands/msgview/save and commands/msgview/pipe now use case
insensitive comparisons to determine if the part is encoded as base64
or quoted-printable.
2019-06-16 11:24:42 -04:00
Aditya Mahajan 1b7790553e Ensure that flags are set properly
The current implementation has three classes of flags:
- readFlag
- delFlag
- flaggedFlag

The logic to check for them should be in parallel if branches rather
than in sequential if-else ladder.
2019-06-16 11:16:26 -04:00
Drew DeVault ab79bc3447 Update tcell 2019-06-15 23:30:12 -04:00
Lyle Hanson 0b14d92baf Document collecting log output
Redirecting stdout writes log output to that file, but this wasn't
easily discoverable.

v2 removes changes to aerc-tutorial; I was also on the fence about that,
and agree that it isn't on-topic for the tutorial.

Addresses https://todo.sr.ht/~sircmpwn/aerc2/180
2019-06-14 10:55:55 -04:00
Drew DeVault fd0265d917 imap: block until directory list is fully received
This fixes issues with INBOX mysteriously not being present at times
2019-06-14 10:49:31 -04:00
Reto Brunner 99c363b724 Set empty message in dirlist if no folder exist. 2019-06-14 10:42:26 -04:00
Reto Brunner 626f91c483 imap: respect the folder config option 2019-06-14 10:42:24 -04:00
Lyle Hanson d3b5a76b4a Add uninstall target to Makefile
Also removes leftover directories if there isn't anything else in them.

https://todo.sr.ht/~sircmpwn/aerc2/179
2019-06-14 09:56:54 -04:00
Clayton Craft e56ceb099e Support directories in path to :save
This adds new functionality to :save in the message view for specifying
directories in the path. A new flag, -p, is also added to :save for
automatically creating any directories in the path that do not exist.

If the path ends in a / (e.g. "Downloads/mail/") or if the path is an
existing directory, the part's file name is the filename from the mail
header for the part. Otherwise, it uses the last element in the path as
the filename (e.g. 'blah.jpg' is the filename if the path is
'Downloads/mail/blah.jpg')
2019-06-14 09:48:20 -04:00
Drew DeVault 61206c6ac6 Make awk filters more portable 2019-06-13 20:17:39 -04:00
Drew DeVault 408a9e7b10 Fix automatic scrolling when messages arrive/leave 2019-06-11 10:08:44 -04:00