Go to file
Kevin Kuehler 4966b912c6 commands/account: Disable :view for deleted msgs
Allowing the user to view deleted messages creates all sorts of race
conditions. The most devious race condition is pv.source can be set to a
nil while another PartViewer is still running a goroutine in
attemptCopy.

Here is a trace when this happens.

goroutine 76 [running]: io.copyBuffer(0x7f8ad02641d0, 0xc00040f590, 0x0,
0x0, 0xc0007cc000, 0x8000, 0x8000, 0x0, 0x0, 0x8b3d60)
/usr/lib/go/src/io/io.go:402 +0x101 io.Copy(...)
/usr/lib/go/src/io/io.go:364
git.sr.ht/~sircmpwn/aerc/widgets.(*PartViewer).attemptCopy.func4(0xc00017efd0,
0xc0004da7c0) /home/keur/repos/aerc/widgets/msgviewer.go:576 +0x611
created by git.sr.ht/~sircmpwn/aerc/widgets.(*PartViewer).attemptCopy
/home/keur/repos/aerc/widgets/msgviewer.go:544 +0x144

We could add a guard in store.FetchBodyPart to only call the callback
when msg.Part.Reader != nil, but we still get a hanging pager. Therefore
it seems more reasonable to disable this completely.

Signed-off-by: Kevin Kuehler <keur@xcf.berkeley.edu>
2019-11-17 13:19:42 -05:00
commands commands/account: Disable :view for deleted msgs 2019-11-17 13:19:42 -05:00
config Complete the F rune. 2019-11-17 13:19:20 -05:00
doc Complete the F rune. 2019-11-17 13:19:20 -05:00
filters Strip carriage returns (^M) when filtering emails 2019-08-20 16:05:20 +09:00
lib Complete the F rune. 2019-11-17 13:19:20 -05:00
models Factor IMAP-specific structs out of UI models 2019-07-08 16:06:28 -04:00
templates Correct capitalization in quoted_reply 2019-11-10 13:36:25 -05:00
widgets Complete the F rune. 2019-11-17 13:19:20 -05:00
worker worker/imap: Fix seqMap race condition 2019-11-10 17:19:23 -05:00
.build.yml Add .build.yml 2019-07-07 18:51:51 -04:00
.gitignore Subsitute prefix in aerc.conf for install 2019-05-26 10:27:22 -04:00
LICENSE Add README.md, update license (MIT -2019) 2019-01-13 20:09:07 -05:00
Makefile Add Templates with Parsing 2019-11-10 10:15:49 -05:00
README.md Add notmuch docs 2019-08-08 10:11:20 +09:00
aerc.go Open mailto links in a new aerc instance if needed. 2019-09-29 12:36:35 -04:00
go.mod Add support for AUTH LOGIN submission 2019-11-01 11:02:01 -04:00
go.sum Add support for AUTH LOGIN submission 2019-11-01 11:02:01 -04:00

README.md

aerc

aerc is an email client for your terminal.

Join the IRC channel: #aerc on irc.freenode.net for end-user support, and #aerc-dev for development.

Building

Install the dependencies:

  • go (>=1.12)
  • scdoc

Then compile aerc:

$ make

aerc optionally supports notmuch. To enable it, you need to have a recent version of notmuch, including the header files (notmuch.h). Then compile aerc with the necessary build tags:

$ GOFLAGS=-tags=notmuch make

Installation

# make install
$ aerc

On its first run, aerc will copy the default config files to ~/.config/aerc and show the account configuration wizard.

If you redirect stdout to a file, logging output will be written to that file:

$ aerc > log

Resources

Send patches and questions to ~sircmpwn/aerc@lists.sr.ht.

Subscribe to release announcements on ~sircmpwn/aerc-announce

Bugs & todo here: ~sircmpwn/aerc2