From aa7f1250b0454f95f037486e0b27cdfdd225bb95 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 12 May 2008 00:01:26 +0000 Subject: Fix the variable subsitution code from bug #221755 so that variable assignments from earlier files don't leak into variable assignments from later files (except through substitution). (trunk r10294:10297) svn path=/main/branches/2.1.2/; revision=10298 --- pym/portage.py | 9 +++------ pym/portage_util.py | 8 +++++--- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/pym/portage.py b/pym/portage.py index a48f23e3d..3947db8cd 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -1440,12 +1440,9 @@ class config: self.make_defaults_use = [] self.mygcfg = {} if self.profiles: - mygcfg_dlists = [] - var_map = {} - for x in self.profiles: - var_map = getconfig(os.path.join(x, "make.defaults"), - expand=var_map) - mygcfg_dlists.append(var_map) + expand_map = {} + mygcfg_dlists = [getconfig(os.path.join(x, "make.defaults"), + expand=expand_map) for x in self.profiles] for cfg in mygcfg_dlists: if cfg: diff --git a/pym/portage_util.py b/pym/portage_util.py index e75e0cb15..b9fc90354 100644 --- a/pym/portage_util.py +++ b/pym/portage_util.py @@ -309,10 +309,11 @@ def getconfig(mycfg, tolerant=0, allow_sourcing=False, expand=True): if isinstance(expand, dict): # Some existing variable definitions have been # passed in, for use in substitutions. - mykeys = expand.copy() + expand_map = expand expand = True else: - mykeys = {} + expand_map = {} + mykeys = {} try: f=open(mycfg,'r') except IOError, e: @@ -371,7 +372,8 @@ def getconfig(mycfg, tolerant=0, allow_sourcing=False, expand=True): else: return mykeys if expand: - mykeys[key] = varexpand(val, mykeys) + mykeys[key] = varexpand(val, expand_map) + expand_map[key] = mykeys[key] else: mykeys[key] = val except SystemExit, e: -- cgit v1.2.3-1-g7c22