From 8b398f3aa89c3d06edf87fc4c4cb464c7ac1b8f5 Mon Sep 17 00:00:00 2001 From: Urs Liska Date: Thu, 28 Sep 2017 23:48:54 +0200 Subject: [PATCH] utf8: Safeguard against use of old *and* new option The new 'utf8foldernames' will not work together with the existing 'decodefoldernames' option (which will be documented in the next commit). Therefore this commit will check for this condition and abort the synchronization of a misconfigured account before doing any changes. Other accounts are not affected. Signed-off-by: Urs Liska Signed-off-by: Nicolas Sebrecht --- offlineimap/accounts.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/offlineimap/accounts.py b/offlineimap/accounts.py index 7f10aed..3aa13e2 100644 --- a/offlineimap/accounts.py +++ b/offlineimap/accounts.py @@ -274,6 +274,21 @@ class SyncableAccount(Account): raise return + if self.utf_8_support and self.remoterepos.getdecodefoldernames(): + e = OfflineImapError("Configuration mismatch in account " + + "'%s'. "% self.getname() + + "\nAccount setting 'utf8foldernames' and repository " + + "setting 'decodefoldernames'\nmay not be used at the " + + "same time. This account has not been synchronized.\n" + + "Please check the configuration and documentation.", + OfflineImapError.ERROR.REPO) + self.ui.error(e, exc_info()[2], + msg="Configuration mismatch in account " + + "'%s'. "% self.getname()) + # Abort *this* account without doing any changes. + # Other accounts are not affected. + return + # Loop account sync if needed (bail out after 3 failures). looping = 3 while looping: