aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* extract search criteria parsing into the backendsReto Brunner2019-08-298-48/+70
|
* Fix out-of-order messages by sorting as we displayStephen Brennan2019-08-292-1/+32
| | | | | | | | | | Sometimes I observe out-of-order messages when using a maildir inbox. It appears that the UIDs for these messages are returned out of order by the MessageStore. In order for a maildir MessageStore to return messages in most recently received order, it must have already opened all messages and parsed the date to use as a sort key. Rather than implement that, simply sort messages by time as we display. This fix shows my emails in order.
* Notmuch: use adhoc write connection.Reto Brunner2019-08-262-30/+147
| | | | | | | | Notmuch only allows a single write connection, all other clients trying to modify the db block. Hence we should only open one when we actually need it. Apparently we also need to refresh the RO DB connection upon modification, else we get stale message tag results
* imap worker: do not copy mailbox status mutexWagner Riffel2019-08-261-2/+3
| | | | Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
* Add :prompt commandChristopher Vittal2019-08-264-6/+108
| | | | | | | | | | Usage: :prompt <prompt> <command...> Displays the prompt on the status bar, waits for user input, then appends that input as the last argument to the command and executes it. The input is passed as one argument to the command, unless it is empty, in which case no extra argument is added.
* Strip carriage returns (^M) when filtering emailsDaniel Xu2019-08-202-0/+9
| | | | | | | | | | | | Presumably some email servers will transform newlines into carriage return new lines to better support windows users. I can't prove this but that's the best explanation I have for my hosted email provider (fastmail). Without this patch, I was seeing annoying `^M`s at the end of every filtered line. Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
* Only compile regex portion of folder filterDaniel Xu2019-08-201-1/+1
| | | | | | | | | | The code was trying to compile the `~` as well. In this case, it was trying to match a literal `~` to the front of the supplied regex. Fixes: 334ca89bea381 ("folder filter: only assume regex if filter is ~fmt") Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
* folder filter: only assume regex if filter is ~fmtDrew DeVault2019-08-202-5/+10
|
* Add forwarding as attachment featureJelle Besseling2019-08-203-5/+73
| | | | | This allows a single message to be forward as attachment with the :forward -a command
* Add addresses argument to forward commandJelle Besseling2019-08-203-2/+17
|
* Move forward command to it's own fileJelle Besseling2019-08-202-70/+130
| | | | The two commands did not have much code in common
* upgrade go-messageReto Brunner2019-08-202-5/+3
| | | | Fixes date parsing bug in the maildir / notmuch workers.
* Add support for <C-j> as '<Enter>' in ExLineChristopher Vittal2019-08-191-1/+1
|
* Support regex filters for foldersDaniel Xu2019-08-192-2/+13
| | | | | | | | It's nice to be able to filter the folders displayed in the side bar. Basic string matching can get verbose with enough folders whitelisted. Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
* bump go-message, fixes address list parsing failureReto Brunner2019-08-162-11/+9
|
* Revert "add close command at global level"Drew DeVault2019-08-136-72/+100
| | | | This reverts commit f0a0c5aa733fa66958c113465bfc5fdd3d7cc9f0.
* add close command at global levelAditya Srivastava2019-08-136-100/+72
|
* Add optional body argument to compose commandDaniel Bridges2019-08-132-4/+15
|
* Prevent drawing terminal with nil cmdDrew DeVault2019-08-121-1/+1
|
* Add delete forward <C-k> and backward <C-u>Christopher Vittal2019-08-121-0/+29
| | | | | | | | | | Choose the readline defaults for the behavior of these two functions/keybindings. Depending on the program, either of these can delete the whole line. Note that by default in [compose], <C-k> is bound to :prev-field<Enter>. Leave it up to the user whether or not they want to rebind the key in [compose].
* Joining the args in cf for folders with spacesBen Cohen2019-08-121-1/+5
|
* Pass os stdin to credential commandJonas Mueller2019-08-121-0/+1
| | | | | This is neccessary for `gpg-agent` to display a prompt and get the key to unlock a given password. See https://todo.sr.ht/~sircmpwn/aerc2/250.
* Ignore scroll command when msgstore is nilJelle Besseling2019-08-122-2/+5
| | | | | | | | | 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
* Let user edit arbitrary headers in composerDaniel Bridges2019-08-122-5/+37
|
* maildir: Preserve flags when copying messagesBen Burwell2019-08-081-20/+2
|
* Close backends prior to shutdownReto Brunner2019-08-082-0/+20
| | | | | | | We need some way to signal the backends that we are about to shutdown, allowing them to clean up (for example in notmuch committing the db changes). This commit implements a hook which gets called upon shutdown, providing backends implement the io.Closer interface.
* Fix `unread` commandArt Wild2019-08-081-0/+2
| | | | | | | This fixes ~sircmpwn/aerc2#195. While `read -t` works fine. The `unread` command is not wired. This patch fixes it. https://todo.sr.ht/~sircmpwn/aerc2/195
* Add notmuch docsReto Brunner2019-08-085-1/+73
|
* Add notmuch backendReto Brunner2019-08-083-0/+521
| | | | | | | | | | | | This commit introduces the notmuch backend. The backend is conditionally compiled in if the "notmuch" tag is provided. Most of the message types are implemented, with the notable exceptions of DeleteMessages as well as any copy / move / append type. Reason being, that those aren't normally applicable in a notmuch based workflow. Changes v2 --> v3, based on review comments * Use account config for configuration
* add github.com/zenhack/go.notmuchReto Brunner2019-08-082-2/+3
|
* Extract message parsing to common worker moduleReto Brunner2019-08-082-220/+256
| | | | | | | Things like FetchEntityPartReader etc can be reused by most workers working with raw email files from disk (or any reader for that matter). This patch extract that common functionality in a separate package.
* Don't print imap errors to uiJelle Besseling2019-08-081-0/+1
| | | | | | | | This fixes ~sircmpwn/aerc2#245. This sets up the imap client to send error messages to the logger of the worker. Errors now end up in the bottom status line. https://todo.sr.ht/~sircmpwn/aerc2/245
* Implement next-message in msgview using accountJelle Besseling2019-08-072-28/+37
| | | | | This makes sure that the next-message command accepts the same arguments in the account view and the msgview
* Implement next-folder using NextPrev with amountJelle Besseling2019-08-073-12/+10
| | | | | | This fixes ~sircmpwn/aerc2#182 https://todo.sr.ht/~sircmpwn/aerc2/182
* Update tcellDrew DeVault2019-08-072-1/+3
|
* Allow cc/bcc command to receive no argumentsDaniel Bridges2019-08-073-5/+21
|
* cc/bcc: Append to existing headers if called twiceKevin Kuehler2019-08-072-3/+8
| | | | Signed-off-by: Kevin Kuehler <keur@ocf.berkeley.edu>
* Remove aerc specific code from the uiNicolai Dagestad2019-08-032-8/+10
| | | | | Separatiing the ui code from aerc makes it usable as a library in other projects.
* Fix directory completion case sensitivityBen Burwell2019-08-031-11/+19
| | | | | | Before, lower_only was not being correctly set and was only considering whether the string ended with a lowercase sequence. Refactored this with some more explicit functions as the logic is a little confusing.
* Fixing #231 (alternative preferred mimetypes)Ben Cohen2019-08-031-10/+10
|
* Add cc and bcc commandsDaniel Bridges2019-08-033-14/+87
|
* select next message when deleting from message viewerAditya Srivastava2019-08-021-3/+10
|
* Fix sending attachments with less than 512 bytesBen Burwell2019-08-021-1/+1
|
* Include body MIME terminator in multipart messagesBen Burwell2019-08-021-23/+30
| | | | | | | | Before, the text/plain part of the multipart MIME message was not being correctly terminated with its boundary. The multipart writer writes the terminator when its Close is called, but since the call to Close() was deferred, it was not being called until after the attachments were being written resulting in the boundary not being included at all.
* ChangeFolder: do not depend on the msgstoreReto Brunner2019-08-021-6/+6
| | | | | We need to clear the filtering etc upon folder switch. Not having a valid msgstore is however no reason not to switch directories.
* msglist: add initialization stateReto Brunner2019-08-022-15/+33
| | | | | | | | | Make the msglist aware of whether we are still initializing or not. We never stopped spinning the msglist if we didn't get any Directories back from types.ListDirectories. With this change, we can set the init state from the account and display the spinner only if we don't know whether we have directories or not and else the "no messages" string from the config.
* Clean maildirs when openedBen Burwell2019-08-021-0/+4
| | | | This removes old aborted deliveries from the tmp directory.
* Add filesystem completions for :attach and :cdGalen Abell2019-08-022-2/+24
| | | | | Tab-completions now cycle through filesystem paths when using :attach or :cd commands.
* Add CompletePath methodGalen Abell2019-08-021-0/+91
| | | | | CompletePath takes an existing path and returns possible filesystem completions based on that path.
* doc: Fix missing '\' in aerc-tutorial man page.Ronan Pigott2019-07-291-1/+1
|