Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py
- index 8b9baa7..bf06f62 100644
- --- a/bitbake/lib/bb/parse/ast.py
- +++ b/bitbake/lib/bb/parse/ast.py
- @@ -69,6 +69,23 @@ class ExportNode(AstNode):
- def eval(self, data):
- data.setVarFlag(self.var, "export", 1, op = 'exported')
- +class UnsetNode(AstNode):
- + def __init__(self, filename, lineno, var):
- + AstNode.__init__(self, filename, lineno)
- + self.var = var
- +
- + def eval(self, data):
- + data.delVar(self.var)
- +
- +class UnsetFlagNode(AstNode):
- + def __init__(self, filename, lineno, var, flag):
- + AstNode.__init__(self, filename, lineno)
- + self.var = var
- + self.flag = flag
- +
- + def eval(self, data):
- + data.delVarFlag(self.var, self.flag)
- +
- class DataNode(AstNode):
- """
- Various data related updates. For the sake of sanity
- @@ -270,6 +287,12 @@ def handleInclude(statements, filename, lineno, m, force):
- def handleExport(statements, filename, lineno, m):
- statements.append(ExportNode(filename, lineno, m.group(1)))
- +def handleUnset(statements, filename, lineno, m):
- + statements.append(UnsetNode(filename, lineno, m.group(1)))
- +
- +def handleUnsetFlag(statements, filename, lineno, m):
- + statements.append(UnsetFlagNode(filename, lineno, m.group(1), m.group(2)))
- +
- def handleData(statements, filename, lineno, groupd):
- statements.append(DataNode(filename, lineno, groupd))
- diff --git a/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
- index b971292..875250d 100644
- --- a/bitbake/lib/bb/parse/parse_py/ConfHandler.py
- +++ b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
- @@ -57,6 +57,8 @@ __config_regexp__ = re.compile( r"""
- __include_regexp__ = re.compile( r"include\s+(.+)" )
- __require_regexp__ = re.compile( r"require\s+(.+)" )
- __export_regexp__ = re.compile( r"export\s+([a-zA-Z0-9\-_+.${}/]+)$" )
- +__unset_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/]+)$" )
- +__unset_flag_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/]+)\[([a-zA-Z0-9\-_+.${}/]+)\]$" )
- def init(data):
- topdir = data.getVar('TOPDIR', False)
- @@ -185,6 +187,16 @@ def feeder(lineno, s, fn, statements):
- ast.handleExport(statements, fn, lineno, m)
- return
- + m = __unset_regexp__.match(s)
- + if m:
- + ast.handleUnset(statements, fn, lineno, m)
- + return
- +
- + m = __unset_flag_regexp__.match(s)
- + if m:
- + ast.handleUnsetFlag(statements, fn, lineno, m)
- + return
- +
- raise ParseError("unparsed line: '%s'" % s, fn, lineno);
- # Add us to the handlers list
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement