~migadu/alps-devel

plugins/base/imap: use slices package v2 PROPOSED

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

 2 files changed, 10 insertions(+), 14 deletions(-)
Simon Ser <contact@emersion.fr> 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/56360/mbox | git am -3
Learn more about email & git

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

This saves a few lines of code.

Note that the minimal golang version has to be updated since the slices
package has only been available since version 1.21.

Signed-off-by: Silvan Jegen <s.jegen@gmail.com>
---
 go.mod               |  2 +-
 plugins/base/imap.go | 22 +++++++++-------------
 2 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/go.mod b/go.mod
index 3a8c975..11cf4a1 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
module git.sr.ht/~migadu/alps

go 1.18
go 1.21

require (
	github.com/aymerick/douceur v0.2.0
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
Sorry, I think I prefer to keep building under older Go versions, rather
than bump the minimum requirement just for some convenience utilities.