From 03cbb6c1d2a08d478dfbe8235d5e4ed47c9574ab Mon Sep 17 00:00:00 2001 From: Zac Medico <zmedico@gentoo.org> Date: Sat, 25 Sep 2010 14:56:05 -0700 Subject: [PATCH] Fix varexpand() so that it doesn't do redundant quote removal that is already handled by shlex. This fixes a bug in getconfig() which caused it to remove backslash characters it front of quote characters in cases where bash would have preserved them when sourcing the same input. --- pym/portage/util/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pym/portage/util/__init__.py b/pym/portage/util/__init__.py index 9542826b2..8ba6b6c81 100644 --- a/pym/portage/util/__init__.py +++ b/pym/portage/util/__init__.py @@ -656,8 +656,14 @@ def varexpand(mystring, mydict=None): newstring=newstring+chr(0o11) elif a=='v': newstring=newstring+chr(0o13) + elif a in ('\'', '"'): + # Quote removal is handled by shlex. + newstring = newstring + mystring[pos-2:pos] + continue elif a!='\n': - #remove backslash only, as bash does: this takes care of \\ and \' and \" as well + # Remove backslash only, as bash does. This takes care + # of \\. Note that we don't handle quotes here since + # quote remoal is handled by shlex. newstring=newstring+mystring[pos-1:pos] continue elif (mystring[pos]=="$") and (mystring[pos-1]!="\\"): -- 2.26.2