From: David E. Eisenstat Date: Thu, 20 Jul 2006 13:31:27 +0000 (+0000) Subject: Fixed bug in method __update_config_file where when updating multiple fields, the... X-Git-Tag: after-util-vserver-0_30_208-revert~16 X-Git-Url: http://git.onelab.eu/?p=util-vserver.git;a=commitdiff_plain;h=8f38f0193db0dc219639aceac5f00641f31323af 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. --- 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)