summary refs log tree commit diff stats
path: root/commands
Commit message (Collapse)AuthorAgeFilesLines
* msg/reply: Deduplicate TO: and CC:Reto Brunner2020-05-061-0/+12
| | | | If a recipient is already in TO:, there's no need to also put them in CC:
* store.FetchFull: Change callback type to expose entire messageBen Fiedler2020-05-012-5/+8
| | | | | This is a prerequisite for allowing the FetchFull message to return both the message content and the message headers.
* Implement :header commandRay Ganardi2020-05-011-0/+74
| | | | | | Usage: *header* [-f] <field> [value] Add a new email header. If the header already exists, -f must be specified to replace the given value.
* gofmt fixesDrew DeVault2020-04-2412-13/+13
|
* Add recall commandJeffas2020-04-244-4/+145
| | | | | | This command allows recalling the selected postponed email to edit in the composer. The command only allows recalling from the postpone directory.
* Add postpone commandJeffas2020-04-245-3/+122
| | | | | | | This command uses the Postpone folder from the account config to save messages to. Messages are saved as though they were sent so have a valid 'to' recipient address and should be able to be read back in for later editing.
* Add :choose commandRay Ganardi2020-04-241-0/+48
| | | | | | | Usage: *choose* -o <key> <text> <command> [-o <key> <text> <command>]... Prompts the user to choose from various options.
* Remove ability to specify headers in the editorReto Brunner2020-04-241-1/+1
| | | | | | | | | | Due to headers being essentially free text, we constantly run into issues with parts of the body being interpreted as headers. Remove the ability to overwrite headers to avoid that, while keeping the ability to specify headers in the template files. Fixes #383
* Use aerc.PushError where appropriateBen Fiedler2020-04-2311-39/+14
| | | | Forgot an unused import, to save you the hassle here is v2.
* Make the http handler of the unsubscribe command asyncNicolai Dagestad2020-04-161-1/+2
|
* msg/archive: complete the possible optionsReto Brunner2020-04-112-1/+17
|
* Try to open attachments with correct extensionGalen Abell2020-04-061-1/+13
| | | | | | The temporary file created when opening an attachment is currently saved without an extension, which prevents matching on file ending with xdg-open.
* Add pinned tabsJeffas2020-03-091-0/+36
| | | | | | This adds the commands pin-tab and unpin-tab. Once pinned a tab lives on the left of the tabstrip and has a configurable marker, defaulting to ` before its name.
* Refactoring: remove store from PartInfoDrew DeVault2020-03-093-3/+6
|
* Initial support for PGP decryption & signaturesDrew DeVault2020-03-033-6/+17
|
* Update dependenciesSimon Ser2020-03-031-1/+1
| | | | This brings in some bug fixes.
* Mark sent messages as "seen" in maildirGalen Abell2020-03-031-2/+2
| | | | | | | - Add maildir flags to complement a messages imap flags - Set the "seen" flag on sent messages when using the maildir backend - Cleanup AppendMessage interface to use models.Flag for both IMAP and maildir
* Add move-tab commandJeffas2020-03-031-0/+51
|
* msg/delete: remove redundant err checkReto Brunner2020-02-291-3/+0
|
* msg/reply: simplify string comparisonReto Brunner2020-02-191-1/+1
|
* msg/reply: fix address comparisonReto Brunner2020-02-161-1/+1
| | | | | | | Compare self address in lowercase, to avoid self-replying when people put in uppercase versions of the mail. Reported-By: helby on Freenode
* msgview/open: remove manual decodingReto Brunner2020-01-201-11/+0
|
* msgview/save: Adapt to already decoded readerReto Brunner2020-01-201-70/+125
| | | | | | | | | | The functionality was broken since the decoding changes. This commit also simplifies the code (in my view) to make the application logic easier to follow. The docs are updated accordingly (the feature was poorly documented). As far as I am aware there should be no breaking changes (and is certainly still in the spec of the prior documentation)
* add .OriginalMIMEType variable to reply templateLeszek Cimała2020-01-091-0/+11
|
* create OriginalMail structLeszek Cimała2020-01-094-9/+16
|
* FetchBodyParts: decode source in the workersReto Brunner2020-01-055-89/+8
| | | | | | | Previously the workers returned a mixture of decoded / encoded parts. This lead to a whole bunch of issues. This commit changes the msgviewer and the commands to assume parts to already be decoded
* read: adapt to ProvidesMessagesReto Brunner2019-12-221-17/+86
|
* modify-labels: add completionReto Brunner2019-12-212-1/+37
|
* modify-labels: adapt to ProvidesMessagesReto Brunner2019-12-211-10/+7
|
* move: adapt to ProvidesMessagesReto Brunner2019-12-211-11/+11
|
* delete: adapt to ProvidesMessagesReto Brunner2019-12-211-21/+59
|
* copy: adapt to ProvidesMessagesReto Brunner2019-12-211-7/+6
|
* archive: adapt to ProvidesMessagesReto Brunner2019-12-211-22/+57
|
* add mark commandReto Brunner2019-12-211-0/+98
|
* add command helpersReto Brunner2019-12-212-0/+85
|
* failback to Content-Type filename when encoded Content-Disposition is usedLeszek Cimała2019-12-071-0/+2
| | | | | | | | | | | | | | | | | | | | | Hi! This patch will fix missing filename if it is RFC2231 encoded with charset different then ASCII or UTF8. Example how it looks like in mail: Content-Type: application/pdf; name="=?UTF-8?Q?Opis_przedmiotu_zam=c3=b3wienia_-_za=c5=82=c4=85cznik_nr_1?= =?UTF-8?Q?=2epdf?=" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0*=iso-8859-2''%4F%70%69%73%20%70%72%7A%65%64%6D%69%6F%74%75%20; filename*1*=%7A%61%6D%F3%77%69%65%6E%69%61%20%2D%20%7A%61%B3%B1%63%7A%6E; filename*2*=%69%6B%20%6E%72%20%31%2E%70%64%66 Yes, this should be forbidden :-). Anyway, best solotion in such cases is to failback to Content-Type name. I am not sure if it is guaranted to be there, but probably it will. Leszek
* use correct headers for message partLeszek Cimała2019-12-071-4/+32
| | | | | | | | | | | | | | | | | | | | | Hello guys, on the hunt for bugs related to wrong encoding. This patch is fixing reply to non-utf8 messages. We were using global message headers instead of part specific. In practice header were often something like: multipart; boundry=... where there should be: text/plain; charset=... Fixed also missing SubType. Have great weekend! Leszek
* Fix crash when no message is selectedWiktor Kwapisiewicz2019-12-041-1/+4
| | | | | | | | | | | Pressing `Enter` on a view that has not yet loaded messages (e.g. at startup) would return `nil` from `Selected()`. Accessing `msg.Uid` on a `nil` reference crashes aerc. This patch moves the `msg == nil` check before accessing `msg.Uid` thus avoiding the crash. To test this patch repeatedly press `Enter` on startup.
* commands/account: Disable :view for deleted msgsKevin Kuehler2019-11-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add Templates with ParsingSrivathsan Murali2019-11-104-126/+132
| | | | | | | | | | | | | | | + 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.
* Add support for AUTH LOGIN submissionLuke Drummond2019-11-011-0/+3
| | | | | | | | | | | `go-sasl` upstream added support [1] for the obsolete [2] AUTH LOGIN method which enables aerc to send email via servers which remain common in the wild. Fixes ~sircmpwn/aerc2#263 [1] https://github.com/emersion/go-sasl/commit/61afe53d [2] https://datatracker.ietf.org/doc/draft-murchison-sasl-login/
* Cleanup pager processes after closing a msgviewerKevin Kuehler2019-10-161-0/+1
| | | | | | | | | A pager is spawned every time an email is viewed but not killed off when quitting the msgviewer, thus leading to process leakage. This patch fixes this by adding a Close method to the msgview widget, which is called in the close command. Signed-off-by: Kevin Kuehler <keur@xcf.berkeley.edu>
* Config for deleting message from message viewerSrivathsan Murali2019-09-201-1/+1
| | | | | As suggested in #268, this adds a behaviour setting for deleting message from message viewer.
* Sort path completionsJeffas2019-09-201-0/+3
|
* Make commands join args with spacesJeffas2019-09-209-66/+60
| | | | | | | | | | | | | | | 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
* Add sorting functionalityJeffas2019-09-201-0/+85
| | | | | | | | 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.
* Add completion for copyJeffas2019-09-121-1/+2
|
* Add signaturesJeffas2019-09-124-7/+8
| | | | | | | | | | | | | 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
* Add modify-labels commandReto Brunner2019-09-121-0/+69
| | | | | This adds the event type as well as the command implementation, but no backend supports it yet.
* Check the subject line for lowercase reJeffas2019-09-111-1/+1
| | | | | This ensures that a message with e.g. "RE: " at the start won't get another "Re: ".