aboutsummaryrefslogtreecommitdiffstats
path: root/commands
Commit message (Collapse)AuthorAgeFilesLines
* 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: ".
* Ensure mimetype parts are converted to lower caseJeffas2019-09-111-2/+3
| | | | | This ensures that the check for a text message to use in the reply is performed (more) correctly and so uses the plaintext more often.
* commands: move ParseNextPrevMessage error value to its last return valueWagner Riffel2019-09-042-6/+6
| | | | Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
* all: rewrite references to strings.Index to strings.ContainsWagner Riffel2019-09-041-1/+1
| | | | Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
* all: use fmt.Errorf for fomartting errorsWagner Riffel2019-09-049-14/+9
| | | | Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
* all: purge redundant underscoresWagner Riffel2019-09-0443-129/+129
| | | | Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
* extract search criteria parsing into the backendsReto Brunner2019-08-291-26/+1
|
* Add :prompt commandChristopher Vittal2019-08-261-0/+33
| | | | | | | | | | 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.
* Add forwarding as attachment featureJelle Besseling2019-08-201-4/+61
| | | | | This allows a single message to be forward as attachment with the :forward -a command
* Add addresses argument to forward commandJelle Besseling2019-08-201-1/+9
|
* Move forward command to it's own fileJelle Besseling2019-08-202-70/+130
| | | | The two commands did not have much code in common
* Revert "add close command at global level"Drew DeVault2019-08-134-59/+93
| | | | This reverts commit f0a0c5aa733fa66958c113465bfc5fdd3d7cc9f0.
* add close command at global levelAditya Srivastava2019-08-134-93/+59
|
* Add optional body argument to compose commandDaniel Bridges2019-08-131-3/+14
|
* Joining the args in cf for folders with spacesBen Cohen2019-08-121-1/+5
|
* Ignore scroll command when msgstore is nilJelle Besseling2019-08-121-2/+2
| | | | | | | | | 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-121-4/+32
|
* 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
* 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-071-6/+4
| | | | | | This fixes ~sircmpwn/aerc2#182 https://todo.sr.ht/~sircmpwn/aerc2/182
* Allow cc/bcc command to receive no argumentsDaniel Bridges2019-08-071-4/+3
|
* cc/bcc: Append to existing headers if called twiceKevin Kuehler2019-08-071-2/+2
| | | | Signed-off-by: Kevin Kuehler <keur@ocf.berkeley.edu>
* 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.
* Add cc and bcc commandsDaniel Bridges2019-08-031-0/+39
|
* select next message when deleting from message viewerAditya Srivastava2019-08-021-3/+10
|
* 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.
* 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.
* Sendmail: allow for arbitrary parametersReto Brunner2019-07-291-1/+11
| | | | Allows the outgoing command to contain arguments and flags
* Add index option to change-tabJeffas2019-07-271-4/+23
| | | | | | | This allows selection of a tab using its index. It attempts to parse the given argument as a number, if it fails then it uses it as a name. Also supports relative indexes using prefixed + or -.
* Add :detach commandGalen Abell2019-07-271-0/+55
| | | | | | | Add a command for removing attachments from a composed message. Syntax is :detach [path], with path being an optional argument specifying the path of one existing attachment. If no path is specified, the first attachment is removed.
* Add missing fallthroughDrew DeVault2019-07-271-0/+2
|
* Implement sendmail supportDrew DeVault2019-07-271-10/+36
|
* Add tab completion to textinputsJeffas2019-07-262-3/+17
| | | | | | | | | | | | | This adds tab completion to textinput components. They can be configured with a completion function. This function is called when the user presses <tab>. The first completion is initially shown to the user inserted into the text. Repeated presses of <tab> or <backtab> cycle through the completions list. The completions list is invalidated when any other non-tab-like key is pressed. Also changed is some logic for current completion generation so that all available commands are returned when <tab> is pressed with no current text and similarly for arguments of commands.
* Add command history and cyclingGalen Abell2019-07-261-0/+62
| | | | | | Aerc will keep track of the previous 1000 commands, which the user can cycle through using the arrow keys while in the ex-line. Pressing up will move backwards in history while pressing down will move forward.
* Support configurable header layout in compose widgetDaniel Bridges2019-07-263-15/+20
|