aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2021-07-28 11:52:58 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-07-30 14:35:45 +0100
commit9b2d96b27f550da0fa68ba9ea96be98eb3a832a6 (patch)
tree90e4c71504db37bf849e579f627c7936b36601b2
parentf8d1bc200460fc1cb5cbf7a7d1986fd86424b22d (diff)
downloadbitbake-9b2d96b27f550da0fa68ba9ea96be98eb3a832a6.tar.gz
bitbake-9b2d96b27f550da0fa68ba9ea96be98eb3a832a6.tar.bz2
bitbake-9b2d96b27f550da0fa68ba9ea96be98eb3a832a6.zip
data_smart: Allow colon in variable expansion regex
Now that ":" is a valid character in variable key names, it needs to be allowed by the variable expansion code too, to match. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/data_smart.py2
-rw-r--r--lib/bb/tests/codeparser.py4
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index f48726a3..b4ed62a4 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -28,7 +28,7 @@ logger = logging.getLogger("BitBake.Data")
__setvar_keyword__ = ["_append", "_prepend", "_remove"]
__setvar_regexp__ = re.compile(r'(?P<base>.*?)(?P<keyword>_append|_prepend|_remove)(_(?P<add>[^A-Z]*))?$')
-__expand_var_regexp__ = re.compile(r"\${[a-zA-Z0-9\-_+./~]+?}")
+__expand_var_regexp__ = re.compile(r"\${[a-zA-Z0-9\-_+./~:]+?}")
__expand_python_regexp__ = re.compile(r"\${@.+?}")
__whitespace_split__ = re.compile(r'(\s)')
__override_regexp__ = re.compile(r'[a-z0-9]+')
diff --git a/lib/bb/tests/codeparser.py b/lib/bb/tests/codeparser.py
index 826a2d2f..f4852047 100644
--- a/lib/bb/tests/codeparser.py
+++ b/lib/bb/tests/codeparser.py
@@ -111,9 +111,9 @@ ${D}${libdir}/pkgconfig/*.pc
self.assertExecs(set(["sed"]))
def test_parameter_expansion_modifiers(self):
- # - and + are also valid modifiers for parameter expansion, but are
+ # -,+ and : are also valid modifiers for parameter expansion, but are
# valid characters in bitbake variable names, so are not included here
- for i in ('=', ':-', ':=', '?', ':?', ':+', '#', '%', '##', '%%'):
+ for i in ('=', '?', '#', '%', '##', '%%'):
name = "foo%sbar" % i
self.parseExpression("${%s}" % name)
self.assertNotIn(name, self.references)