diff options
-rw-r--r-- | lib/bb/data.py | 2 | ||||
-rw-r--r-- | lib/bb/data_smart.py | 23 |
2 files changed, 14 insertions, 11 deletions
diff --git a/lib/bb/data.py b/lib/bb/data.py index a21de112e..f6415a467 100644 --- a/lib/bb/data.py +++ b/lib/bb/data.py @@ -202,7 +202,7 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False): return False if all: - d.varhistory.emit(var, oval, val, o) + d.varhistory.emit(var, oval, val, o, d) if (var.find("-") != -1 or var.find(".") != -1 or var.find('{') != -1 or var.find('}') != -1 or var.find('+') != -1) and not all: return False diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py index f0187b7a1..26f69d105 100644 --- a/lib/bb/data_smart.py +++ b/lib/bb/data_smart.py @@ -252,8 +252,20 @@ class VariableHistory(object): else: return [] - def emit(self, var, oval, val, o): + def emit(self, var, oval, val, o, d): history = self.variable(var) + + # Append override history + if var in d.overridedata: + for (r, override) in d.overridedata[var]: + for event in self.variable(r): + loginfo = event.copy() + if 'flag' in loginfo and not loginfo['flag'].startswith("_"): + continue + loginfo['variable'] = var + loginfo['op'] = 'override[%s]:%s' % (override, loginfo['op']) + history.append(loginfo) + commentVal = re.sub('\n', '\n#', str(oval)) if history: if len(history) == 1: @@ -496,15 +508,6 @@ class DataSmart(MutableMapping): # Force CoW by recreating the list first self.overridedata[shortvar] = list(self.overridedata[shortvar]) self.overridedata[shortvar].append([var, override]) - for event in self.varhistory.variable(var): - if 'flag' in loginfo and not loginfo['flag'].startswith("_"): - continue - loginfo = event.copy() - loginfo['variable'] = shortvar - loginfo['op'] = 'override[%s]:%s' % (override, loginfo['op']) - loginfo['nodups'] = True - self.varhistory.record(**loginfo) - override = None if "_" in shortvar: override = var[shortvar.rfind('_')+1:] |