Commit ecabe27e authored by Nikos Skalkotos's avatar Nikos Skalkotos Committed by Michael Hanselmann
Browse files

Fix a bug in command line option parsing code



Fix bug affecting command line options of "keyval" type. Although
escaping commands with \ is supported, it is is not applied to the
input recursively.
Signed-off-by: default avatarNikos Skalkotos <skalkoto@grnet.gr>
Signed-off-by: default avatarIustin Pop <iustin@google.com>
Reviewed-by: default avatarIustin Pop <iustin@google.com>
parent 232aab3f
......@@ -383,10 +383,12 @@ def UnescapeAndSplit(text, sep=","):
num_b = len(e1) - len(e1.rstrip("\\"))
if num_b % 2 == 1 and slist:
e2 = slist.pop(0)
# here the backslashes remain (all), and will be reduced in
# the next step
rlist.append(e1 + sep + e2)
# Merge the two elements and push the result back to the source list for
# revisiting. If e2 ended with backslashes, further merging may need to
# be done.
slist.insert(0, e1 + sep + e2)
continue
# here the backslashes remain (all), and will be reduced in the next step
rlist.append(e1)
# finally, replace backslash-something with something
rlist = [re.sub(r"\\(.)", r"\1", v) for v in rlist]
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment