From 22641331c17214b8b49f50335693cd22a34409e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Albert?= Date: Mon, 31 Oct 2016 15:43:05 +0100 Subject: [PATCH] Fix decodefoldernames not applying in folder sync MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sync_folder_structure wasn't applying utf7 decoding before comparing folders. This is a minimal fix that only modifies one function so it doesn't interfere with rest of the code. Signed-off-by: Stéphane Albert Signed-off-by: Nicolas Sebrecht --- offlineimap/repository/Base.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/offlineimap/repository/Base.py b/offlineimap/repository/Base.py index dfea9e0..96f7596 100644 --- a/offlineimap/repository/Base.py +++ b/offlineimap/repository/Base.py @@ -182,12 +182,18 @@ class BaseRepository(CustomConfig.ConfigHelperMixin): # Create hashes with the names, but convert the source folders # to the dest folder's sep. src_hash = {} + src_list = [] for folder in src_folders: - src_hash[folder.getvisiblename().replace( + foldername = folder.getvisiblename() + src_list.append(foldername) + src_hash[foldername.replace( src_repo.getsep(), dst_repo.getsep())] = folder dst_hash = {} + dst_list = [] for folder in dst_folders: - dst_hash[folder.getvisiblename().replace( + foldername = folder.getvisiblename() + dst_list.append(foldername) + dst_hash[foldername.replace( dst_repo.getsep(), src_repo.getsep())] = folder # Find and create new folders on src_repo. @@ -196,7 +202,7 @@ class BaseRepository(CustomConfig.ConfigHelperMixin): if not dst_repo.get_create_folders(): break - if src_folder.sync_this and not src_name_t in dst_folders: + if src_folder.sync_this and not src_name_t in dst_list: try: dst_repo.makefolder(src_name_t) dst_haschanged = True # Need to refresh list. @@ -213,7 +219,7 @@ class BaseRepository(CustomConfig.ConfigHelperMixin): # Don't create missing folder on readonly repo. break - if dst_folder.sync_this and not dst_name_t in src_folders: + if dst_folder.sync_this and not dst_name_t in src_list: # nametrans sanity check! # Does nametrans back&forth lead to identical names? # 1) would src repo filter out the new folder name? In this