From: Zac Medico Date: Wed, 9 May 2007 22:59:35 +0000 (-0000) Subject: For bug #177591, increase shell compatibility by preserving quotes in varexpand(... X-Git-Tag: v2.1.2.8~22 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=465c0fe68b19f84547b328669e9fd42039f0057e;p=portage.git For bug #177591, increase shell compatibility by preserving quotes in varexpand() since quote removal is handled by shlex. (trunk r6504:6505) svn path=/main/branches/2.1.2/; revision=6510 --- diff --git a/pym/portage_util.py b/pym/portage_util.py index cc5a566b8..ec359e206 100644 --- a/pym/portage_util.py +++ b/pym/portage_util.py @@ -351,13 +351,13 @@ def getconfig(mycfg, tolerant=0, allow_sourcing=False, expand=True): #cache expansions of constant strings cexpand={} -def varexpand(mystring,mydict={}): +def varexpand(mystring, mydict={}): newstring = cexpand.get(" "+mystring, None) if newstring is not None: return newstring """ - new variable expansion code. Removes quotes, handles \n, etc. + new variable expansion code. Preserves quotes, handles \n, etc. This code is used by the configfile code, as well as others (parser) This would be a good bunch of code to port to C. """ @@ -373,6 +373,7 @@ def varexpand(mystring,mydict={}): if (indoub): newstring=newstring+"'" else: + newstring += "'" # Quote removal is handled by shlex. insing=not insing pos=pos+1 continue @@ -380,6 +381,7 @@ def varexpand(mystring,mydict={}): if (insing): newstring=newstring+'"' else: + newstring += '"' # Quote removal is handled by shlex. indoub=not indoub pos=pos+1 continue