From 84855d5241470edc1540c9bf9e93442bab752612 Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Tue, 6 Aug 2019 16:31:07 +0200 Subject: [PATCH] conftree.py: fix stringToStrings + remove before rename to existing on windows. --- src/python/recoll/recoll/conftree.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/python/recoll/recoll/conftree.py b/src/python/recoll/recoll/conftree.py index 091481d2..99e6eceb 100644 --- a/src/python/recoll/recoll/conftree.py +++ b/src/python/recoll/recoll/conftree.py @@ -152,7 +152,15 @@ class ConfSimple(object): for nm,value in mp.items(): f.write(nm + b'=' + value + b'\n') f.close() - os.rename(tname, self.confname) + try: + # os.replace works on Windows even if dst exists, but py3 only + os.replace(tname, self.confname) + except: + try: + os.rename(tname, self.confname) + except: + import shutil + shutil.move(tname, self.confname) def setbin(self, nm, value, sk = b''): if self.readonly: @@ -263,6 +271,7 @@ class ConfStack(object): def stringToStrings(s, quotes = '"', escape = '\\', escapedquotes = '"', whitespace = None): lex = shlex.shlex(s, posix=True) + lex.whitespace_split = True if quotes is not None: lex.quotes = quotes if escape is not None: