diff --git a/src/pkgcheck/checks/codingstyle.py b/src/pkgcheck/checks/codingstyle.py index 317841bce..20d668f88 100644 --- a/src/pkgcheck/checks/codingstyle.py +++ b/src/pkgcheck/checks/codingstyle.py @@ -682,12 +682,15 @@ def _src_uri(self, var, node, value, pkg): for static_str, replacement in static_urls.items(): yield StaticSrcUri(static_str, replacement=replacement, pkg=pkg) + def canonicalize_assign(self, value: str): + return value.strip("\"'").replace("\n", "").replace("\t", " ") + def feed(self, pkg): keywords_lines = set() for node in pkg.global_query(bash.var_assign_query): name = pkg.node_str(node.child_by_field_name("name")) value_node = node.child_by_field_name("value") - value_str = pkg.node_str(value_node).strip("\"'") if value_node else "" + value_str = self.canonicalize_assign(pkg.node_str(value_node)) if value_node else "" if name in pkg.eapi.eclass_keys: if not value_str: lineno, _ = node.start_point @@ -696,7 +699,7 @@ def feed(self, pkg): for var_node, _ in bash.var_query.captures(value_node): if ( pkg.node_str(var_node) == name - and pkg.node_str(var_node.parent) == value_str + and self.canonicalize_assign(pkg.node_str(var_node.parent)) == value_str and var_node.next_named_sibling is None ): node_str = pkg.node_str(node).replace("\n", "").replace("\t", " ") diff --git a/testdata/data/repos/standalone/MetadataVarCheck/SelfAssignment/expected.json b/testdata/data/repos/standalone/MetadataVarCheck/SelfAssignment/expected.json index 314daa7f7..e77175027 100644 --- a/testdata/data/repos/standalone/MetadataVarCheck/SelfAssignment/expected.json +++ b/testdata/data/repos/standalone/MetadataVarCheck/SelfAssignment/expected.json @@ -2,4 +2,6 @@ {"__class__": "SelfAssignment", "category": "MetadataVarCheck", "package": "SelfAssignment", "version": "0", "line": "RDEPEND=\"$RDEPEND\"", "lineno": 7} {"__class__": "SelfAssignment", "category": "MetadataVarCheck", "package": "SelfAssignment", "version": "0", "line": "RDEPEND=${RDEPEND}", "lineno": 8} {"__class__": "SelfAssignment", "category": "MetadataVarCheck", "package": "SelfAssignment", "version": "0", "line": "RDEPEND=$RDEPEND", "lineno": 9} +{"__class__": "SelfAssignment", "category": "MetadataVarCheck", "package": "SelfAssignment", "version": "0", "line": "RDEPEND=\"${RDEPEND}\"", "lineno": 10} {"__class__": "SelfAssignment", "category": "MetadataVarCheck", "package": "SelfAssignment", "version": "0", "line": "RDEPEND=\" ${RDEPEND}\"", "lineno": 12} +{"__class__": "SelfAssignment", "category": "MetadataVarCheck", "package": "SelfAssignment", "version": "0", "line": "RDEPEND=\" ${RDEPEND}\"", "lineno": 14}