aboutsummaryrefslogtreecommitdiff
path: root/commands/msgview
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2019-07-05 12:21:12 -0400
committerDrew DeVault <sir@cmpwn.com>2019-07-05 12:21:12 -0400
commit363aab5cc19135599cae93f6c9c7abcd23c111c9 (patch)
tree80cfeaf367bd1ac3077ec9dfb549a9dfc3b1f62f /commands/msgview
parentf9f523ad59491eda08003ce2ccc6d57d7f19ea1e (diff)
Make :pipe command more generic
Diffstat (limited to 'commands/msgview')
-rw-r--r--commands/msgview/open.go2
-rw-r--r--commands/msgview/pipe.go55
-rw-r--r--commands/msgview/save.go2
3 files changed, 2 insertions, 57 deletions
diff --git a/commands/msgview/open.go b/commands/msgview/open.go
index d25fa67..f4a0931 100644
--- a/commands/msgview/open.go
+++ b/commands/msgview/open.go
@@ -34,7 +34,7 @@ func (_ Open) Execute(aerc *widgets.Aerc, args []string) error {
}
mv := aerc.SelectedTab().(*widgets.MessageViewer)
- p := mv.CurrentPart()
+ p := mv.SelectedMessagePart()
p.Store.FetchBodyPart(p.Msg.Uid, p.Index, func(reader io.Reader) {
// email parts are encoded as 7bit (plaintext), quoted-printable, or base64
diff --git a/commands/msgview/pipe.go b/commands/msgview/pipe.go
deleted file mode 100644
index 56c125b..0000000
--- a/commands/msgview/pipe.go
+++ /dev/null
@@ -1,55 +0,0 @@
-package msgview
-
-import (
- "encoding/base64"
- "errors"
- "fmt"
- "io"
- "mime/quotedprintable"
- "strings"
-
- "git.sr.ht/~sircmpwn/aerc/commands"
- "git.sr.ht/~sircmpwn/aerc/widgets"
-)
-
-type Pipe struct{}
-
-func init() {
- register(Pipe{})
-}
-
-func (_ Pipe) Aliases() []string {
- return []string{"pipe"}
-}
-
-func (_ Pipe) Complete(aerc *widgets.Aerc, args []string) []string {
- return nil
-}
-
-func (_ Pipe) Execute(aerc *widgets.Aerc, args []string) error {
- if len(args) < 2 {
- return errors.New("Usage: :pipe <cmd> [args...]")
- }
-
- mv := aerc.SelectedTab().(*widgets.MessageViewer)
- p := mv.CurrentPart()
-
- p.Store.FetchBodyPart(p.Msg.Uid, p.Index, func(reader io.Reader) {
- // email parts are encoded as 7bit (plaintext), quoted-printable, or base64
- if strings.EqualFold(p.Part.Encoding, "base64") {
- reader = base64.NewDecoder(base64.StdEncoding, reader)
- } else if strings.EqualFold(p.Part.Encoding, "quoted-printable") {
- reader = quotedprintable.NewReader(reader)
- }
-
- term, err := commands.QuickTerm(aerc, args[1:], reader)
- if err != nil {
- aerc.PushError(" " + err.Error())
- return
- }
- name := fmt.Sprintf("%s <%s/[%d]", args[1], p.Msg.Envelope.Subject, p.Index)
- aerc.NewTab(term, name)
- })
-
- return nil
-}
diff --git a/commands/msgview/save.go b/commands/msgview/save.go
index 93fa83f..75ba56f 100644
--- a/commands/msgview/save.go
+++ b/commands/msgview/save.go
@@ -56,7 +56,7 @@ func (_ Save) Execute(aerc *widgets.Aerc, args []string) error {
}
mv := aerc.SelectedTab().(*widgets.MessageViewer)
- p := mv.CurrentPart()
+ p := mv.SelectedMessagePart()
p.Store.FetchBodyPart(p.Msg.Uid, p.Index, func(reader io.Reader) {
// email parts are encoded as 7bit (plaintext), quoted-printable, or base64