Advertisement
Guest User

Untitled

a guest
Jul 20th, 2016
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 2.62 KB | None | 0 0
  1. diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py
  2. index 8b9baa7..bf06f62 100644
  3. --- a/bitbake/lib/bb/parse/ast.py
  4. +++ b/bitbake/lib/bb/parse/ast.py
  5. @@ -69,6 +69,23 @@ class ExportNode(AstNode):
  6.      def eval(self, data):
  7.          data.setVarFlag(self.var, "export", 1, op = 'exported')
  8.  
  9. +class UnsetNode(AstNode):
  10. +    def __init__(self, filename, lineno, var):
  11. +        AstNode.__init__(self, filename, lineno)
  12. +        self.var = var
  13. +
  14. +    def eval(self, data):
  15. +        data.delVar(self.var)
  16. +
  17. +class UnsetFlagNode(AstNode):
  18. +    def __init__(self, filename, lineno, var, flag):
  19. +        AstNode.__init__(self, filename, lineno)
  20. +        self.var = var
  21. +        self.flag = flag
  22. +
  23. +    def eval(self, data):
  24. +        data.delVarFlag(self.var, self.flag)
  25. +
  26.  class DataNode(AstNode):
  27.      """
  28.      Various data related updates. For the sake of sanity
  29. @@ -270,6 +287,12 @@ def handleInclude(statements, filename, lineno, m, force):
  30.  def handleExport(statements, filename, lineno, m):
  31.      statements.append(ExportNode(filename, lineno, m.group(1)))
  32.  
  33. +def handleUnset(statements, filename, lineno, m):
  34. +    statements.append(UnsetNode(filename, lineno, m.group(1)))
  35. +
  36. +def handleUnsetFlag(statements, filename, lineno, m):
  37. +    statements.append(UnsetFlagNode(filename, lineno, m.group(1), m.group(2)))
  38. +
  39.  def handleData(statements, filename, lineno, groupd):
  40.      statements.append(DataNode(filename, lineno, groupd))
  41.  
  42. diff --git a/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
  43. index b971292..875250d 100644
  44. --- a/bitbake/lib/bb/parse/parse_py/ConfHandler.py
  45. +++ b/bitbake/lib/bb/parse/parse_py/ConfHandler.py
  46. @@ -57,6 +57,8 @@ __config_regexp__  = re.compile( r"""
  47.  __include_regexp__ = re.compile( r"include\s+(.+)" )
  48.  __require_regexp__ = re.compile( r"require\s+(.+)" )
  49.  __export_regexp__ = re.compile( r"export\s+([a-zA-Z0-9\-_+.${}/]+)$" )
  50. +__unset_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/]+)$" )
  51. +__unset_flag_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/]+)\[([a-zA-Z0-9\-_+.${}/]+)\]$" )
  52.  
  53.  def init(data):
  54.      topdir = data.getVar('TOPDIR', False)
  55. @@ -185,6 +187,16 @@ def feeder(lineno, s, fn, statements):
  56.          ast.handleExport(statements, fn, lineno, m)
  57.          return
  58.  
  59. +    m = __unset_regexp__.match(s)
  60. +    if m:
  61. +        ast.handleUnset(statements, fn, lineno, m)
  62. +        return
  63. +
  64. +    m = __unset_flag_regexp__.match(s)
  65. +    if m:
  66. +        ast.handleUnsetFlag(statements, fn, lineno, m)
  67. +        return
  68. +
  69.      raise ParseError("unparsed line: '%s'" % s, fn, lineno);
  70.  
  71.  # Add us to the handlers list
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement