about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorDaniel Bridges <bridges2@gmail.com>2019-07-10 21:49:09 -0700
committerDrew DeVault <sir@cmpwn.com>2019-07-11 19:38:40 -0400
commit06da4512b98e6dd0526522f5350d22555d7e5d83 (patch)
tree26950235ff318678e66205ef553b17f14f49a716
parent0b3aca4167c72a7ab765cf8228bdc8b5b25614cf (diff)
downloadaerc-06da4512b98e6dd0526522f5350d22555d7e5d83.tar.gz
#190 Handle gmail duplicate folder
-rw-r--r--lib/msgstore.go2
-rw-r--r--worker/imap/create.go5
-rw-r--r--worker/types/messages.go1
3 files changed, 4 insertions, 4 deletions
diff --git a/lib/msgstore.go b/lib/msgstore.go
index 038c3ca..27b63f3 100644
--- a/lib/msgstore.go
+++ b/lib/msgstore.go
@@ -236,6 +236,7 @@ func (store *MessageStore) Copy(uids []uint32, dest string, createDest bool,
 	if createDest {
 		store.worker.PostAction(&types.CreateDirectory{
 			Directory: dest,
+			Quiet:     true,
 		}, cb)
 	}
 
@@ -255,6 +256,7 @@ func (store *MessageStore) Move(uids []uint32, dest string, createDest bool,
 	if createDest {
 		store.worker.PostAction(&types.CreateDirectory{
 			Directory: dest,
+			Quiet:     true,
 		}, cb)
 	}
 
diff --git a/worker/imap/create.go b/worker/imap/create.go
index 3cc71c5..6ce71ef 100644
--- a/worker/imap/create.go
+++ b/worker/imap/create.go
@@ -1,15 +1,12 @@
 package imap
 
 import (
-	"strings"
-
 	"git.sr.ht/~sircmpwn/aerc/worker/types"
 )
 
 func (imapw *IMAPWorker) handleCreateDirectory(msg *types.CreateDirectory) {
 	if err := imapw.client.Create(msg.Directory); err != nil {
-		if strings.HasPrefix(err.Error(), "Mailbox already exists") {
-			// ignore "already exists" error
+		if msg.Quiet {
 			return
 		}
 		imapw.worker.PostMessage(&types.Error{
diff --git a/worker/types/messages.go b/worker/types/messages.go
index bab14e0..34a1e5c 100644
--- a/worker/types/messages.go
+++ b/worker/types/messages.go
@@ -90,6 +90,7 @@ type SearchDirectory struct {
 type CreateDirectory struct {
 	Message
 	Directory string
+	Quiet     bool
 }
 
 type FetchMessageHeaders struct {