utils/checkpackagelib/lib_mk.py: fix check for overridden variable
Currently this .mk snippet results in unexpected behavior from check-package: |VAR_1 = VALUE1 |ifeq (condition) |VAR_1 := $(VAR_1), VALUE2 |endif Fix commit "163f160a8e utils/{check-package, checkpackagelib}: consistently use raw strings for re.compile" that ended up doing this: - CONCATENATING = re.compile("^([A-Z0-9_]+)\s*(\+|:|)=\s*\$\(\\1\)") + CONCATENATING = re.compile(r"^([A-Z0-9_]+)\s*(\+|:|)=\s*\$\(\\1\)") But raw strings do not expect escaping when referencing \1 and the pattern ends up searching for a raw '\\1' instead of an occurrence of the first pattern inside parenthesis. |$ python3 |Python 3.8.10 (default, Sep 28 2021, 16:10:42) |[GCC 9.3.0] on linux |Type "help", "copyright", "credits" or "license" for more information. |>>> import re |>>> p1 = re.compile('(foo)bar\\1') |>>> p2 = re.compile(r'(foo)bar\\1') |>>> p3 = re.compile(r'(foo)bar\1') |>>> s1 = 'foobarfoo' |>>> s2 = 'foobar\\1' |>>> print(p1.search(s1)) |<re.Match object; span=(0, 9), match='foobarfoo'> |>>> print(p2.search(s1)) |None |>>> print(p3.search(s1)) |<re.Match object; span=(0, 9), match='foobarfoo'> |>>> print(p1.search(s2)) |None |>>> print(p2.search(s2)) |<re.Match object; span=(0, 8), match='foobar\\1'> |>>> print(p3.search(s2)) |None |>>> So use '\1' instead of '\\1' in the raw string. Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: Titouan Christophe <titouan.christophe@railnova.eu> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
parent
c06bed7296
commit
5bbedea9c2
@ -77,7 +77,7 @@ class Indent(_CheckFunction):
|
||||
|
||||
|
||||
class OverriddenVariable(_CheckFunction):
|
||||
CONCATENATING = re.compile(r"^([A-Z0-9_]+)\s*(\+|:|)=\s*\$\(\\1\)")
|
||||
CONCATENATING = re.compile(r"^([A-Z0-9_]+)\s*(\+|:|)=\s*\$\(\1\)")
|
||||
END_CONDITIONAL = re.compile(r"^\s*({})".format("|".join(end_conditional)))
|
||||
OVERRIDING_ASSIGNMENTS = [':=', "="]
|
||||
START_CONDITIONAL = re.compile(r"^\s*({})".format("|".join(start_conditional)))
|
||||
|
Loading…
Reference in New Issue
Block a user