From 8f38f0193db0dc219639aceac5f00641f31323af Mon Sep 17 00:00:00 2001 From: "David E. Eisenstat" Date: Thu, 20 Jul 2006 13:31:27 +0000 Subject: [PATCH] Fixed bug in method __update_config_file where when updating multiple fields, the character count from the regular expression match might get out of sync with data. --- python/vserver.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python/vserver.py b/python/vserver.py index 81e5203..c6d07b6 100644 --- a/python/vserver.py +++ b/python/vserver.py @@ -86,11 +86,13 @@ class VServer: f.close() todo = newvars.copy() changed = False + offset = 0 for m in self.config_var_re.finditer(data): (key, val) = m.groups() newval = todo.pop(key, None) if newval != None: - data = data[:m.start(2)] + str(newval) + data[m.end(2):] + data = data[:offset+m.start(2)] + str(newval) + data[offset+m.end(2):] + offset += len(str(newval)) - (m.end(2)-m.start(2)) changed = True for (newkey, newval) in todo.items(): data += "%s=%s\n" % (newkey, newval) -- 2.43.0