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