aerc

Working clone of aerc-mail.org
git clone git://git.danielmoch.com/aerc.git
Log | Files | Refs | README | LICENSE

commit 13ba53c9d03c375877395a6580d6f694bd19020f
parent db2146bc91d3a1de13ebf2487cb1e5a9cc52e5e0
Author: Drew DeVault <sir@cmpwn.com>
Date:   Fri, 15 Mar 2019 22:01:20 -0400

Implement :select-message

Diffstat:
Acommands/select-message.go | 31+++++++++++++++++++++++++++++++
Mwidgets/msglist.go | 9+++++++++
2 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/commands/select-message.go b/commands/select-message.go @@ -0,0 +1,31 @@ +package commands + +import ( + "errors" + "strconv" + + "git.sr.ht/~sircmpwn/aerc2/widgets" +) + +func init() { + Register("select-message", SelectMessage) +} + +func SelectMessage(aerc *widgets.Aerc, args []string) error { + if len(args) != 2 { + return errors.New("Usage: :select-message <n>") + } + var ( + n int = 1 + err error + ) + if len(args) > 1 { + n, err = strconv.Atoi(args[1]) + if err != nil { + return errors.New("Usage: :select-message <n>") + } + } + acct := aerc.SelectedAccount() + acct.Messages().Select(n) + return nil +} diff --git a/widgets/msglist.go b/widgets/msglist.go @@ -112,6 +112,15 @@ func (ml *MessageList) SetStore(store *lib.MessageStore) { ml.Invalidate() } +func (ml *MessageList) Select(index int) { + ml.selected = index + for ; ml.selected < 0; ml.selected = len(ml.store.Uids) + ml.selected { + } + if ml.selected > len(ml.store.Uids) { + ml.selected = len(ml.store.Uids) + } +} + func (ml *MessageList) nextPrev(delta int) { ml.selected += delta if ml.selected < 0 {