~migadu/alps-devel

plugins/base/imap: use slices package v1 SUPERSEDED

Silvan Jegen: 1
 plugins/base/imap: use slices package

 1 files changed, 9 insertions(+), 13 deletions(-)
"Peter Sanchez" <pjs@petersanchez.com> wrote:
Next
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~migadu/alps-devel/patches/56327/mbox | git am -3
Learn more about email & git

[PATCH] plugins/base/imap: use slices package Export this patch

This saves a few lines of code.

Signed-off-by: Silvan Jegen <s.jegen@gmail.com>
---
 plugins/base/imap.go | 22 +++++++++-------------
 1 file changed, 9 insertions(+), 13 deletions(-)

diff --git a/plugins/base/imap.go b/plugins/base/imap.go
index ec4947d..55ea5cb 100644
--- a/plugins/base/imap.go
+++ b/plugins/base/imap.go
@@ -6,10 +6,9 @@ import (
	"fmt"
	"io"
	"net/url"
	"sort"
	"slices"
	"strconv"
	"strings"
	//"time"

	"github.com/dustin/go-humanize"
	"github.com/emersion/go-imap/v2"
@@ -73,14 +72,15 @@ func listMailboxes(conn *imapclient.Client) ([]MailboxInfo, error) {
		return nil, fmt.Errorf("failed to list mailboxes: %v", err)
	}

	sort.Slice(mailboxes, func(i, j int) bool {
		if mailboxes[i].Mailbox == "INBOX" {
			return true
	slices.SortFunc(mailboxes, func(i, j MailboxInfo) int {
		if i.Mailbox == "INBOX" {
			return 1
		}
		if mailboxes[j].Mailbox == "INBOX" {
			return false
		if j.Mailbox == "INBOX" {
			return -1
		}
		return mailboxes[i].Mailbox < mailboxes[j].Mailbox

		return strings.Compare(i.Mailbox, j.Mailbox)
	})
	return mailboxes, nil
}
@@ -465,11 +465,7 @@ func listMessages(conn *imapclient.Client, mboxName string, page, messagesPerPag
		msgs = append(msgs, IMAPMessage{msg, mboxName})
	}

	// Reverse list of messages
	for i := len(msgs)/2 - 1; i >= 0; i-- {
		opp := len(msgs) - 1 - i
		msgs[i], msgs[opp] = msgs[opp], msgs[i]
	}
	slices.Reverse(msgs)

	return msgs, total, nil
}
-- 
2.47.1
The slices package was introduced in Go 1.21. If we're going to use this 
package then go.mod needs to be updated as it's currently coded to 1.18.

Peter