From 50a50d736b5d5f1e9e2ef3c6afa6b4c0d3e50677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Sun, 17 Oct 2021 13:33:55 +0200 Subject: #62: Root can be empty --- internal/imap/folder.go | 10 +++++++++- internal/imap/imap.go | 6 ++++-- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'internal') diff --git a/internal/imap/folder.go b/internal/imap/folder.go index 6353bb3..d7562b8 100644 --- a/internal/imap/folder.go +++ b/internal/imap/folder.go @@ -15,8 +15,16 @@ func (f Folder) Append(other Folder) Folder { if f.delimiter != other.delimiter { panic("Delimiters do not match") } + + var prefix string + if f.str == "" { + prefix = "" + } else { + prefix = f.str + f.delimiter + } + return Folder{ - str: f.str + f.delimiter + other.str, + str: prefix + other.str, delimiter: f.delimiter, } } diff --git a/internal/imap/imap.go b/internal/imap/imap.go index a6995af..4a18a94 100644 --- a/internal/imap/imap.go +++ b/internal/imap/imap.go @@ -39,8 +39,10 @@ func Connect(url config.Url) (*Client, error) { log.Printf("Determined '%s' as toplevel, with '%s' as delimiter", client.toplevel, client.delimiter) - if err = conn.ensureFolder(client.toplevel); err != nil { - return nil, err + if toplevel != "" { + if err = conn.ensureFolder(client.toplevel); err != nil { + return nil, err + } } // the other connections -- cgit v1.2.3