From 64fbcdc1ca074f49952d4d12c4942dc900dc886e Mon Sep 17 00:00:00 2001 From: Michal Horejsek Date: Mon, 12 Oct 2020 15:23:19 +0200 Subject: [PATCH] Fix mbox scanning --- internal/transfer/provider_mbox_gmail_labels.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/internal/transfer/provider_mbox_gmail_labels.go b/internal/transfer/provider_mbox_gmail_labels.go index 3fec8cb7..be5cdbd0 100644 --- a/internal/transfer/provider_mbox_gmail_labels.go +++ b/internal/transfer/provider_mbox_gmail_labels.go @@ -40,6 +40,8 @@ func getGmailLabelsFromMboxFile(filePath string) (stringSet, error) { func getGmailLabelsFromMboxReader(f io.Reader) (stringSet, error) { allLabels := map[string]bool{} + // Scanner is not used as it does not support long lines and some mbox + // files contain very long lines even though that should not be happening. r := bufio.NewReader(f) for { b, isPrefix, err := r.ReadLine() @@ -49,14 +51,11 @@ func getGmailLabelsFromMboxReader(f io.Reader) (stringSet, error) { if err != nil { return nil, err } - if isPrefix { - for !isPrefix { - _, isPrefix, err = r.ReadLine() - if err != nil { - break - } + for isPrefix { + _, isPrefix, err = r.ReadLine() + if err != nil { + break } - continue } if bytes.HasPrefix(b, []byte(xGmailLabelsHeader)) { for label := range getGmailLabelsFromValue(string(b)) {