From: Zac Medico Date: Sat, 25 Sep 2010 21:56:05 +0000 (-0700) Subject: Fix varexpand() so that it doesn't do redundant quote removal that X-Git-Tag: v2.2_rc87~5 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=03cbb6c1d2a08d478dfbe8235d5e4ed47c9574ab;p=portage.git 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. --- 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]!="\\"):