Age | Commit message (Collapse) | Author |
|
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>
|
|
+ Changes NewComposer to return error.
+ Add lib to handle templates using "text/template".
+ Add -T option to following commands
- compose.
- reply
- forward
+ Quoted replies using templates.
+ Forwards as body using templates
+ Default templates are installed similar to filters.
+ Templates Config in aerc.conf.
- Required templates are parsed while loading config.
+ Add aerc-templates.7 manual for using template data.
|
|
This patch ensures the following commands join their arguments with
spaces to make it easier to interact with:
- cf
- mkdir
- cd
- attach
- detach
- ct
- copy
- move
- save
|
|
There is a command and config option. The criteria are a list of the
sort criterion and each can be individually reversed.
This only includes support for sorting in the maildir backend currently.
The other backends are not supported in this patch.
|
|
This adds the ability for per-account signatures in the accounts.conf
config file. The signature is added to emails in the editor at the
bottom of the email. This includes when forwarding, replying to, and
composing emails.
There are two config options: signature-file and signature-cmd. The
former allows a signature to be read from a file and the latter allows
an arbitrary command to be executed to return the signature.
The config options have been documented in aerc-config
|
|
Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
|
|
Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
|
|
Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
|
|
Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
|
|
|
|
|
|
|
|
Fixes ~sircmpwn/aerc2#205. Many functions do a nil check on the store,
so this changes Store() so it returns nil when msglist is nil.
It also places the Scroll() behind the nil check in the next-message command.
https://todo.sr.ht/~sircmpwn/aerc2/205
|
|
|
|
This makes sure that the next-message command accepts the same arguments
in the account view and the msgview
|
|
This fixes ~sircmpwn/aerc2#182
https://todo.sr.ht/~sircmpwn/aerc2/182
|
|
We need to clear the filtering etc upon folder switch.
Not having a valid msgstore is however no reason not to switch directories.
|
|
|
|
Signed-off-by: Kevin Kuehler <keur@ocf.berkeley.edu>
|
|
On a slow network connection, running these commands without this guard
will cause aerc to panic.
Signed-off-by: Kevin Kuehler <keur@ocf.berkeley.edu>
|
|
|
|
Credit for this fix goes to Reto; I guess if we're not gonna be mutt
we should probabaly do things correctly.
|
|
Tab completion currently only works on commands. Contextual completion
will be added in the future.
|
|
|
|
If these are called before the store is setup, `acct.Store()` returns
`nil`, and we SEGFAULT in `MessageStore.nextPrev`.
|
|
Signed-off-by: Kevin Kuehler <kkuehler@brave.com>
|
|
|
|
Consists of 3 functions
* Store: Access to MessageStore type
* SelectedAccount: Access to Account widget that the target widget
belongs to
* SelectedMessage: Current message (selected in msglist or the one we
are viewing)
Signed-off-by: Kevin Kuehler <keur@ocf.berkeley.edu>
|
|
|
|
|
|
* :save takes a path and saves the current message part to that location
* :pipe is the same as pipe on the account page, but uses the current
message part rather than the whole email (ie :pipe gzip -d)
* Refactored account:pipe and extracted common pipe code to
commands.util.QuickTerm
* Added helper command aerc.PushError
|
|
|
|
|
|
|
|
|
|
|
|
|
|
So that you can repeat the action on the next message if appropriate
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Or rather, to a user-specified folder
|
|
|
|
|
|
Also moves truncation to the tab widget
|
|
|