summaryrefslogtreecommitdiff
path: root/commands
AgeCommit message (Collapse)Author
2020-05-22msg/reply: scoping error of part slice for quotingSrivathsan Murali
part was left unassigned in the outer scope. Leading to errors while quoting.
2020-05-21Fix typosMartin Michlmayr
2020-05-19gofmtDrew DeVault
2020-05-17msg/forward: fix body part selectionReto Brunner
2020-05-17Move findPlaintext / findFirstNonMultipart to utilsReto Brunner
They are used by more than one command and as such need to be in a common file.
2020-05-17msg/reply: fix encoding issues for quoted reply.Reto Brunner
2020-05-17FetchBodyPart doesn't need the parent body structureReto Brunner
2020-05-11Change MarkedMessages to return uidsReto Brunner
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.
2020-05-11commands/helper: remove duplicated methodReto Brunner
2020-05-11msg/read: don't copy waitgroupReto Brunner
2020-05-11Show 'Message sent' only for ten seconds instead of permanentlyelumbella
2020-05-06msg/reply: Deduplicate TO: and CC:Reto Brunner
If a recipient is already in TO:, there's no need to also put them in CC:
2020-05-01store.FetchFull: Change callback type to expose entire messageBen Fiedler
This is a prerequisite for allowing the FetchFull message to return both the message content and the message headers.
2020-05-01Implement :header commandRay Ganardi
Usage: *header* [-f] <field> [value] Add a new email header. If the header already exists, -f must be specified to replace the given value.
2020-04-24gofmt fixesDrew DeVault
2020-04-24Add recall commandJeffas
This command allows recalling the selected postponed email to edit in the composer. The command only allows recalling from the postpone directory.
2020-04-24Add postpone commandJeffas
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.
2020-04-24Add :choose commandRay Ganardi
Usage: *choose* -o <key> <text> <command> [-o <key> <text> <command>]... Prompts the user to choose from various options.
2020-04-24Remove ability to specify headers in the editorReto Brunner
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
2020-04-23Use aerc.PushError where appropriateBen Fiedler
Forgot an unused import, to save you the hassle here is v2.
2020-04-16Make the http handler of the unsubscribe command asyncNicolai Dagestad
2020-04-11msg/archive: complete the possible optionsReto Brunner
2020-04-06Try to open attachments with correct extensionGalen Abell
The temporary file created when opening an attachment is currently saved without an extension, which prevents matching on file ending with xdg-open.
2020-03-09Add pinned tabsJeffas
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.
2020-03-09Refactoring: remove store from PartInfoDrew DeVault
2020-03-03Initial support for PGP decryption & signaturesDrew DeVault
2020-03-03Update dependenciesSimon Ser
This brings in some bug fixes.
2020-03-03Mark sent messages as "seen" in maildirGalen Abell
- 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
2020-03-03Add move-tab commandJeffas
2020-02-29msg/delete: remove redundant err checkReto Brunner
2020-02-19msg/reply: simplify string comparisonReto Brunner
2020-02-16msg/reply: fix address comparisonReto Brunner
Compare self address in lowercase, to avoid self-replying when people put in uppercase versions of the mail. Reported-By: helby on Freenode
2020-01-20msgview/open: remove manual decodingReto Brunner
2020-01-20msgview/save: Adapt to already decoded readerReto Brunner
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)
2020-01-09add .OriginalMIMEType variable to reply templateLeszek Cimała
2020-01-09create OriginalMail structLeszek Cimała
2020-01-05FetchBodyParts: decode source in the workersReto Brunner
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
2019-12-22read: adapt to ProvidesMessagesReto Brunner
2019-12-21modify-labels: add completionReto Brunner
2019-12-21modify-labels: adapt to ProvidesMessagesReto Brunner
2019-12-21move: adapt to ProvidesMessagesReto Brunner
2019-12-21delete: adapt to ProvidesMessagesReto Brunner
2019-12-21copy: adapt to ProvidesMessagesReto Brunner
2019-12-21archive: adapt to ProvidesMessagesReto Brunner
2019-12-21add mark commandReto Brunner
2019-12-21add command helpersReto Brunner
2019-12-07failback to Content-Type filename when encoded Content-Disposition is usedLeszek Cimała
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
2019-12-07use correct headers for message partLeszek Cimała
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
2019-12-04Fix crash when no message is selectedWiktor Kwapisiewicz
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.
2019-11-17commands/account: Disable :view for deleted msgsKevin Kuehler
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>