aboutsummaryrefslogtreecommitdiffstats
path: root/commands/msgview/save.go
Commit message (Collapse)AuthorAgeFilesLines
* config: make various sections accessible via global varsRobin Jarry2022-12-141-2/+3
| | | | | | | | | | | | | | | | | | | | There is only one instance of AercConfig which is associated to the Aerc widget. Everywhere we need to access configuration options, we need somehow to get a reference either to the Aerc widget or to a pointer to the AercConfig instance. This makes the code cluttered. Remove the AercConfig structure and every place where it is referenced. Instead, declare global variables for every configuration section and access them directly from the `config` module. Since bindings and ui sections can be "contextual" (i.e. per account, per folder or per subject), leave most local references intact. Replacing them with config.{Ui,Binds}.For{Account,Folder,Subject} would make this patch even more unreadable. This is something that may be addressed in the future. Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Tim Culverhouse <tim@timculverhouse.com>
* logging: rename package to logRobin Jarry2022-12-021-2/+2
| | | | | | | | | | Use the same name than the builtin "log" package. That way, we do not risk logging in the wrong place. Suggested-by: Tim Culverhouse <tim@timculverhouse.com> Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Bence Ferdinandy <bence@ferdinandy.com> Acked-by: Tim Culverhouse <tim@timculverhouse.com>
* msgpart: factorize mime type and filename constructionRobin Jarry2022-10-161-6/+1
| | | | | | | Reduce code duplication. Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Moritz Poldrack <moritz@poldrack.dev>
* lint: apply new formatting rulesMoritz Poldrack2022-08-011-5/+4
| | | | | | | Run `make fmt`. Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Robin Jarry <robin@jarry.cc>
* tabs: rename SelectedTab to SelectedTabContentRobin Jarry2022-07-231-2/+2
| | | | | | | | | This function returns an ui.Drawable. Use a more explicit name. This prepares for adding a new SelectedTab function which will return an ui.Tab. Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Koni Marti <koni.marti@gmail.com>
* pgp: fix pipe|open|save command behaviorTim Culverhouse2022-06-241-7/+4
| | | | | | | | | | | | | | Signed and/or encrypted PGP messages did not behave properly for pipe, open, and save commands. Specifically, the proper Message Part would not be passed to the command in the MessageViewer. This is due to the encapsulation of the body structure. This patch fixes the behavior for piping|opening|saving of message parts. Fixes: https://todo.sr.ht/~rjarry/aerc/47 Reported-by: ~ph14nix Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Tested-by: Moritz Poldrack <moritz@poldrack.dev> Acked-by: Robin Jarry <robin@jarry.cc>
* save: fix path completionRobin Jarry2022-03-311-0/+9
| | | | | | | | Ignore option flags and prepend default-save-path if the current path is not absolute. Signed-off-by: Robin Jarry <robin@jarry.cc> Reviewed-by: Moritz Poldrack <moritz@poldrack.dev>
* save: add -a option to save all attachmentsRobin Jarry2022-03-241-15/+47
| | | | | | | | | | Allow saving all message parts that have the content disposition "attachment" header to a folder. Suggested-by: Ondřej Synáček <ondrej@synacek.org> Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Koni Marti <koni.marti@gmail.com> Tested-by: Moritz Poldrack <moritz@poldrack.dev>
* logging: added a log on panicMoritz Poldrack2022-03-231-0/+3
| | | | | | | | | | | | | Since panics still regularly "destroy" the terminal, it is hard to get a stack trace for panics you do not anticipate. This commit adds a panic handler that automatically creates a logfile inside the current working directory. It has to be added to every goroutine that is started and will repair the terminal on a panic. Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Robin Jarry <robin@jarry.cc>
* all: fix minor issues found by staticcheckMoritz Poldrack2022-03-121-4/+2
| | | | Signed-off-by: Moritz Poldrack <git@moritz.sh>
* go.mod: change base git urlRobin Jarry2021-11-051-3/+3
| | | | | | | I'm not sure what are the implications but it seems required. Link: https://github.com/golang/go/issues/20883 Signed-off-by: Robin Jarry <robin@jarry.cc>
* save: if part name is a path, only use the filenameRobin Opletal2021-01-141-1/+9
|
* Revert "Add Style configuration"Drew DeVault2020-05-281-1/+1
| | | | This reverts commit 0f78f06610c0e8887aba2ae50e99b86477a384b3.
* Revert "Remove duration from the status methods"Drew DeVault2020-05-281-2/+2
| | | | This reverts commit f06d683688e3d2139b14f67b7e349089e7200bf4.
* Remove duration from the status methodsReto Brunner2020-05-271-2/+2
| | | | We always set 10 seconds anyhow, might as well do that without repeating ourselfs.
* Add Style configurationReto Brunner2020-05-271-1/+1
| | | | | | | | | | 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
* FetchBodyPart doesn't need the parent body structureReto Brunner2020-05-171-15/+14
|
* Refactoring: remove store from PartInfoDrew DeVault2020-03-091-1/+2
|
* 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)
* FetchBodyParts: decode source in the workersReto Brunner2020-01-051-1/+1
| | | | | | | 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
* 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
* Make commands join args with spacesJeffas2019-09-201-8/+10
| | | | | | | | | | | | | | | 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
* all: purge redundant underscoresWagner Riffel2019-09-041-3/+3
| | | | Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
* Make :pipe command more genericDrew DeVault2019-07-051-1/+1
|
* Implement basic tab completion supportGregory Mullen2019-06-291-2/+14
| | | | | Tab completion currently only works on commands. Contextual completion will be added in the future.
* msgview/save: Use defaultSavePath if no path is providedReto Brunner2019-06-251-6/+16
|
* Make part encoding checks case insensitiveRéouven Assouly2019-06-161-3/+4
| | | | | | commands/msgview/save and commands/msgview/pipe now use case insensitive comparisons to determine if the part is encoded as base64 or quoted-printable.
* Support directories in path to :saveClayton Craft2019-06-141-4/+53
| | | | | | | | | | | | This adds new functionality to :save in the message view for specifying directories in the path. A new flag, -p, is also added to :save for automatically creating any directories in the path that do not exist. If the path ends in a / (e.g. "Downloads/mail/") or if the path is an existing directory, the part's file name is the filename from the mail header for the part. Otherwise, it uses the last element in the path as the filename (e.g. 'blah.jpg' is the filename if the path is 'Downloads/mail/blah.jpg')
* Add :save and :pipe commands to viewerGalen Abell2019-05-271-0/+59
* :save takes a path and saves the current message part to that location * :pipe is the same as pipe on the account page, but uses the current message part rather than the whole email (ie :pipe gzip -d) * Refactored account:pipe and extracted common pipe code to commands.util.QuickTerm * Added helper command aerc.PushError