aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/macos.yml20
-rw-r--r--README.md2
-rw-r--r--app/aerc.go8
-rw-r--r--config/aerc.conf4
-rw-r--r--doc/aerc-imap.5.scd3
-rw-r--r--doc/aerc.1.scd3
-rw-r--r--lib/msgstore.go7
-rw-r--r--worker/imap/connect.go8
8 files changed, 39 insertions, 16 deletions
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index 52559861..950a7642 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -4,13 +4,27 @@ on: push
jobs:
macos:
runs-on: macos-latest
+ strategy:
+ matrix:
+ go:
+ - '1.18'
+ - '1.22'
env:
DESTDIR: ./out
- GOFLAGS: "-tags=notmuch"
+ GOFLAGS: -tags=notmuch
+ name: MacOS Go ${{ matrix.go }}
steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-go@v2
+ - uses: actions/checkout@v4
+ - uses: actions/setup-go@v5
+ with:
+ go-version: ${{ matrix.go }}
+ check-latest: true
- run: brew install gnupg notmuch scdoc
+ - run: |
+ cat >> "$GITHUB_ENV" <<EOF
+ CGO_CFLAGS=-I$(brew --prefix)/include
+ CGO_LDFLAGS=-L$(brew --prefix)/lib -Wl,-rpath,$(brew --prefix)/lib
+ EOF
- run: make
- run: make install
- run: make checkinstall
diff --git a/README.md b/README.md
index 483a7c25..ac593541 100644
--- a/README.md
+++ b/README.md
@@ -57,7 +57,7 @@ User contributions and integration with external tools:
Recent versions of aerc are available on:
- [Alpine](https://pkgs.alpinelinux.org/packages?name=aerc)
-- [Arch](https://archlinux.org/packages/community/x86_64/aerc/)
+- [Arch](https://archlinux.org/packages/extra/x86_64/aerc/)
- [Debian](https://tracker.debian.org/pkg/aerc)
- [Fedora](https://packages.fedoraproject.org/pkgs/aerc/aerc/)
- [openSUSE](https://build.opensuse.org/package/show/openSUSE:Factory/aerc)
diff --git a/app/aerc.go b/app/aerc.go
index 667696f7..3f2c9b32 100644
--- a/app/aerc.go
+++ b/app/aerc.go
@@ -39,7 +39,7 @@ type Aerc struct {
pendingKeys []config.KeyStroke
prompts *ui.Stack
tabs *ui.Tabs
- beep func() error
+ beep func()
dialog ui.DrawableInteractive
Crypto crypto.Provider
@@ -144,7 +144,7 @@ func (aerc *Aerc) showConfigWarnings() {
callback("", nil)
}
-func (aerc *Aerc) OnBeep(f func() error) {
+func (aerc *Aerc) OnBeep(f func()) {
aerc.beep = f
}
@@ -153,9 +153,7 @@ func (aerc *Aerc) Beep() {
log.Warnf("should beep, but no beeper")
return
}
- if err := aerc.beep(); err != nil {
- log.Errorf("tried to beep, but could not: %v", err)
- }
+ aerc.beep()
}
func (aerc *Aerc) HandleMessage(msg types.WorkerMessage) {
diff --git a/config/aerc.conf b/config/aerc.conf
index bd9ef16b..ccfbe748 100644
--- a/config/aerc.conf
+++ b/config/aerc.conf
@@ -165,7 +165,7 @@
#message-view-this-day-time-format=
# If set, overrides timestamp-format in the message view for messages
-# that were recieved/sent within the last 7 days.
+# that were received/sent within the last 7 days.
#
#message-view-this-week-time-format=
@@ -363,7 +363,7 @@
# Default: false
#reverse-msglist-order = false
-# Reverse display of the mesage threads. Default order is the the intial
+# Reverse display of the message threads. Default order is the initial
# message is on the top with all the replies being displayed below. The
# reverse option will put the initial message at the bottom with the
# replies on top.
diff --git a/doc/aerc-imap.5.scd b/doc/aerc-imap.5.scd
index af3a020b..c2292464 100644
--- a/doc/aerc-imap.5.scd
+++ b/doc/aerc-imap.5.scd
@@ -35,6 +35,9 @@ are available:
_imaps_
IMAP with TLS/SSL
+ _imaps+insecure_
+ IMAP with TLS/SSL, skipping certificate verification
+
_imaps+oauthbearer_
IMAP with TLS/SSL using OAUTHBEARER Authentication
diff --git a/doc/aerc.1.scd b/doc/aerc.1.scd
index 1351f5b6..62129bff 100644
--- a/doc/aerc.1.scd
+++ b/doc/aerc.1.scd
@@ -554,9 +554,6 @@ message list, the message in the message viewer, etc).
prefix. For more information please refer to section 3.6.6 of RFC 2822. Note
that the bounced message is not copied over to the *sent* folder.
- Beware that at least the _msmtp_ sendmail implementation does not consider
- the *Resent-From* header when invoked with _--read-envelope-from_.
-
Also please note that some providers (notably for instance Microsoft's
O365) do not allow sending messages with the *From* header not matching
any of the account's identities (even if *Resent-From* matches some).
diff --git a/lib/msgstore.go b/lib/msgstore.go
index f1399e4e..8f626eb8 100644
--- a/lib/msgstore.go
+++ b/lib/msgstore.go
@@ -249,6 +249,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) {
var newUids []uint32
update := false
updateThreads := false
+ directoryChange := false
start := store.scrollOffset
end := store.scrollOffset + store.scrollLen
@@ -263,6 +264,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) {
newMap[uid] = msg
} else {
newMap[uid] = nil
+ directoryChange = true
if i >= start && i < end {
newUids = append(newUids, uid)
}
@@ -287,6 +289,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) {
newMap[uid] = msg
} else {
newMap[uid] = nil
+ directoryChange = true
if i >= start && i < end {
newUids = append(newUids, uid)
}
@@ -381,6 +384,10 @@ func (store *MessageStore) Update(msg types.WorkerMessage) {
store.update(updateThreads)
}
+ if directoryChange && store.triggerDirectoryChange != nil {
+ store.triggerDirectoryChange()
+ }
+
if len(newUids) > 0 {
store.FetchHeaders(newUids, nil)
if store.triggerDirectoryChange != nil {
diff --git a/worker/imap/connect.go b/worker/imap/connect.go
index 6c704d35..c109d3b7 100644
--- a/worker/imap/connect.go
+++ b/worker/imap/connect.go
@@ -57,6 +57,9 @@ func (w *IMAPWorker) connect() (*client.Client, error) {
}
}
case "imaps":
+ if w.config.insecure {
+ tlsConfig.InsecureSkipVerify = true
+ }
tlsConn := tls.Client(conn, tlsConfig)
c, err = client.New(tlsConn)
if err != nil {
@@ -98,8 +101,9 @@ func (w *IMAPWorker) connect() (*client.Client, error) {
if err := c.List("", "", info); err != nil {
return nil, fmt.Errorf("failed to retrieve delimiter: %w", err)
}
- mailboxinfo := <-info
- w.delimiter = mailboxinfo.Delimiter
+ if mailboxinfo := <-info; mailboxinfo != nil {
+ w.delimiter = mailboxinfo.Delimiter
+ }
if w.delimiter == "" {
// just in case some implementation does not follow standards
w.delimiter = "/"