aboutsummaryrefslogtreecommitdiffstats
path: root/commands
Commit message (Collapse)AuthorAgeFilesLines
* compose: use a proper header instead of a string mapReto Brunner2020-11-147-42/+67
| | | | | | | | | | | | | Prior to this commit, the composer was based on a map[string]string. While this approach was very versatile, it lead to a constant encoding / decoding of addresses and other headers. This commit switches to a different model, where the composer is based on a header. Commands which want to interact with it can simply set some defaults they would like to have. Users can overwrite them however they like. In order to get access to the functions generating / getting the msgid go-message was upgraded.
* models: add RFC822 headers to OriginalMailReto Brunner2020-11-142-12/+10
|
* remove models.Address in favor of go-message AddressReto Brunner2020-11-141-7/+8
| | | | | | | We made a new type out of go-message/mail.Address without any real reason. This suddenly made it necessary to convert from one to the other without actually having any benefit whatsoever. This commit gets rid of the additional type
* propagate error from sendmaily0ast2020-09-221-2/+9
|
* reply: don't override the answered flag if we didn't sendReto Brunner2020-09-211-1/+3
| | | | | | Aerc just sent the true / false update regardless, meaning if someone already replied to a mail, then drafted yet another mail to the same parent the flag would vanish. This commit fixes this behaviour.
* handle message unknown charset errorJeff Martin2020-08-311-0/+4
| | | | | | | | | | | | | | This change handles message parse errors by printing the error when the user tries to view the message. Specifically only handling unknown charset errors in this patch, but there are many types of invalid messages that can be handled in this way. aerc currently leaves certain messages in the msglist in the pending (spinner) state, and I'm unable to view or modify the message. aerc also only prints parse errors with message when they are initially loaded. This UX is a little better, because you can still see the header info about the message, and if you try to view it, you will see the specific error.
* reply: use set instead of linear searchReto Brunner2020-08-271-45/+70
|
* msg/reply: don't cc the sending address on reply allReto Brunner2020-08-201-2/+2
|
* Add account alias configuration and correctly set From fieldy0ast2020-08-201-1/+24
| | | | | We infer the correct From using the To: and Cc: field of the email that we reply to.
* msg/reply: handle addresses as addressesReto Brunner2020-08-201-24/+20
| | | | This simplifies the code considerably and makes it easier to follow
* base models.Address on the mail.Address typeReto Brunner2020-08-201-1/+2
| | | | | | | | | | | | This allows us to hook into the std libs implementation of parsing related stuff. For this, we need to get rid of the distinction between a mailbox and a host to just a single "address" field. However this is already the common case. All but one users immediately concatenated the mbox/domain to a single address. So this in effects makes it simpler for most cases and we simply do the transformation in the special case.
* Add support for :rmdirARaspiK2020-08-191-0/+96
| | | | | | | | | | | | | | | | | | | | | The `:rmdir` command removes the current directory (`-f` is required if the directory is not empty). This is not supported on the notmuch backend. An issue with the maildir backend is that some sync programs (e.g. offlineimap) may recover the directory after it is deleted. They need to specifically be configured to accept deletions, or special commands need to be executed (e.g. `offlineimap --delete-folder`) to properly delete folders. A danger of using this on the IMAP backend is that it is possible for a new message to be added to the directory and for aerc to not show it immediately (due to a slow connection) - using `:rmdir` at this moment (with `-f` if the directory already contains messages) would delete the directory and the new message that just arrived (and all other contents). This is documented in aerc(1) so that users are aware of possible risks.
* Add `oauthbearer` support for SMTPR Chowdhury2020-08-131-0/+31
| | | | | | | | | This piggybacks on the existing IMAP support, and uses the same configuration format (my local testing example has the IMAP and SMTP lines almost copy-pasted from one another). It's a little clumsy in that a new token is negotiated for every `Send()` command, but it's a start...
* Implement style configuration.Kalyan Sriram2020-08-064-23/+16
| | | | | | Introduce the ability to configure stylesets, allowing customization of aerc's look (color scheme, font weight, etc). Default styleset is installed to /path/to/aerc/stylesets/default.
* Set environment variables for the exec commandNicolai Dagestad2020-08-031-0/+16
|
* Revert "Implement style configuration."Reto Brunner2020-07-304-16/+23
| | | | This reverts commit 1ff687ca2b0821c2cacc1fa725abb3302d2af9da.
* Implement style configuration.Kalyan Sriram2020-07-304-23/+16
| | | | | | Introduce the ability to configure stylesets, allowing customization of aerc's look (color scheme, font weight, etc). Default styleset is installed to /path/to/aerc/stylesets/default.
* Remove hard coded bodystruct path everywhereReto Brunner2020-07-274-46/+12
| | | | | | | Aerc usually used the path []int{1} if it didn't know what the proper path is. However this only works for multipart messages and breaks if it isn't one. This patch removes all the hard coding and extracts the necessary helpers to lib.
* run go fmtReto Brunner2020-07-172-3/+3
|
* Use PushStatus instead of SetStatus where it makes senseHeiko Carrasco2020-07-092-4/+3
|
* Add additional flagging functionalityARaspiK2020-07-081-86/+135
| | | | | | | | | | | | | | More mail flags can now be set, unset, and toggled, not just the read/seen flag. This functionality is implemented with a new `:flag` and `:unflag` command, which are extensions to the matching `:read` and `:unread` commands, adding support for different flags. In fact, the `read`/`unread` commands are now recognized aliases to `flag`/`unflag`. The new commands are also well documented in aerc(1). The change mostly extends the previous read/unread setting functionality by adding a selection for the flag to change.
* Allow open to be asynchronousAndrew Jeffery2020-07-082-4/+3
| | | | | | This stops the ui being blocked while the resource is opened. The wait ensures that resources are reclaimed when the process finishes while aerc is still running.
* pipe: don't crash if part is nilReto Brunner2020-07-051-0/+3
|
* delete: push unsupported error up to the userReto Brunner2020-07-051-0/+3
|
* Fix dates in reply/forward commands.Reto Brunner2020-06-262-2/+2
| | | | | | The data was passed around as a string for some reason, which led to time precision loss and wrong dates being displayed. Simply pass the time as is to fix that.
* Rework msglist scrollingJeffas2020-06-096-9/+9
| | | | | | | | | | | | This changes the scrolling to be done on the draw, when the height is updated, ensuring that the selected item is kept on screen during resizing. Also, this ensures that messages will fill the screen when resizing the window, for instance, shrinking and then growing drags down more messages if possible. This is a transplant of the dirlist scrolling logic.
* Make grid sizes dynamicJeffas2020-06-091-0/+3
| | | | | | | | | The grid used static sizes which meant that changing settings didn't have an effect on elements of the ui, notably the sidebar width. This patch makes the `Size` parameter of a cell a function which returns the `int`, allowing for dynamic sizes. A `Const` function is also included for ease of use for static sizes.
* Revert "Add Style configuration"Drew DeVault2020-05-2822-55/+55
| | | | This reverts commit 0f78f06610c0e8887aba2ae50e99b86477a384b3.
* Revert "Remove duration from the status methods"Drew DeVault2020-05-2823-54/+76
| | | | This reverts commit f06d683688e3d2139b14f67b7e349089e7200bf4.
* Remove duration from the status methodsReto Brunner2020-05-2723-76/+54
| | | | We always set 10 seconds anyhow, might as well do that without repeating ourselfs.
* Add Style configurationReto Brunner2020-05-2722-55/+55
| | | | | | | | | | The following functionalities are added to configure aerc ui styles. - Read stylesets from file with very basic fnmatch wildcard matching - Add default styleset - Support different stylesets as part of UiConfig allowing contextual styles. - Move widgets/ui elements to use the stylesets. - Add configuration manual for the styleset
* Set AnsweredFlag on successful replySrivathsan Murali2020-05-252-0/+6
|
* pgp: fail gracefully from email decryptionRay Ganardi2020-05-253-3/+15
| | | | | Aerc panics when there's an error on email decryption. Instead, an error message should be shown.
* msg/reply: scoping error of part slice for quotingSrivathsan Murali2020-05-221-1/+1
| | | | | part was left unassigned in the outer scope. Leading to errors while quoting.
* Fix typosMartin Michlmayr2020-05-213-3/+3
|
* gofmtDrew DeVault2020-05-191-1/+1
|
* msg/forward: fix body part selectionReto Brunner2020-05-171-2/+8
|
* Move findPlaintext / findFirstNonMultipart to utilsReto Brunner2020-05-172-31/+32
| | | | They are used by more than one command and as such need to be in a common file.
* msg/reply: fix encoding issues for quoted reply.Reto Brunner2020-05-172-11/+32
|
* FetchBodyPart doesn't need the parent body structureReto Brunner2020-05-176-20/+19
|
* Change MarkedMessages to return uidsReto Brunner2020-05-112-9/+25
| | | | | | | | | Especially if one tries to interact with all marked messages there could be the case that not all headers are fetched yet, hence the messageInfo is still nil. This segfaults a lot of commands which in principle only need the uid to complete. If we switch to uids, this issue can be alleviated for those commands.
* commands/helper: remove duplicated methodReto Brunner2020-05-116-14/+6
|
* msg/read: don't copy waitgroupReto Brunner2020-05-111-3/+3
|
* Show 'Message sent' only for ten seconds instead of permanentlyelumbella2020-05-111-4/+4
|
* 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.