aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2026-01-19 15:55:38 +0100
committerAleksandr Nogikh <nogikh@google.com>2026-01-20 08:35:12 +0000
commitc3117fc5b6ef9751fabc4522a4e9183c82c13b0a (patch)
tree0006285340068899dde8be288f19116b6b6992ac /pkg
parent75769ae79e1f7c200dfc52bd7711b2b43f88f28c (diff)
pkg/subsystem: adjust the wildcard matching rules
Contrary to the description on top of MAINTAINERS, many F: records that point to folders actually don't end with / or /*. The get_maintainer.pl script already tolerates this, so let's do the same.
Diffstat (limited to 'pkg')
-rw-r--r--pkg/subsystem/linux/maintainers.go5
-rw-r--r--pkg/subsystem/linux/maintainers_test.go5
2 files changed, 6 insertions, 4 deletions
diff --git a/pkg/subsystem/linux/maintainers.go b/pkg/subsystem/linux/maintainers.go
index 00aedda0e..07c72fdad 100644
--- a/pkg/subsystem/linux/maintainers.go
+++ b/pkg/subsystem/linux/maintainers.go
@@ -209,7 +209,6 @@ var (
func wildcardToRegexp(wildcard string, store *strings.Builder) {
store.WriteByte('^')
-
// We diverge a bit from the standard MAINTAINERS rule semantics.
// path/* corresponds to the files belonging to the `path` folder,
// but, since we also infer the parent-child relationship, it's
@@ -231,7 +230,9 @@ func wildcardToRegexp(wildcard string, store *strings.Builder) {
if tokenStart < len(wildcard) {
store.WriteString(regexp.QuoteMeta(wildcard[tokenStart:]))
}
+ // get_maintainers.pl script tolerates the absence of / when the wildcard
+ // points to a folder. Let's do the same.
if wildcard == "" || wildcard[len(wildcard)-1] != '/' {
- store.WriteByte('$')
+ store.WriteString("(?:" + escapedSeparator + "|$)")
}
}
diff --git a/pkg/subsystem/linux/maintainers_test.go b/pkg/subsystem/linux/maintainers_test.go
index f69485eae..0a0f5f75a 100644
--- a/pkg/subsystem/linux/maintainers_test.go
+++ b/pkg/subsystem/linux/maintainers_test.go
@@ -89,12 +89,13 @@ func TestRecordToPathRule(t *testing.T) {
`with-subfolders/a`,
`with-subfolders/a/b`,
`dir/only-one`,
+ `dir/only-one/a.c`,
+ `dir/only-one/a/b.c`,
`also-with-subfolders/a.c`,
`also-with-subfolders/b/a.c`,
},
noMatch: []string{
- `dir/only-one/a.c`,
- `dir/only-one/a/b.c`,
+ `dir/only-one-plus-suffix`,
},
},
{