Message ID | 20240215180156.work.548-kees@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | cocci: Add rules to find str_plural() replacements | expand |
On Thu, Feb 15, 2024 at 10:02:00AM -0800, Kees Cook wrote: > Add rules for finding places where str_plural() can be used. This > currently finds: > 54 files changed, 62 insertions(+), 61 deletions(-) Can we extend this to cover string_choices and call the script probably str_choices.cocci ?
On Thu, Feb 15, 2024 at 09:33:31PM +0200, Andy Shevchenko wrote: > On Thu, Feb 15, 2024 at 10:02:00AM -0800, Kees Cook wrote: > > Add rules for finding places where str_plural() can be used. This > > currently finds: > > 54 files changed, 62 insertions(+), 61 deletions(-) > > Can we extend this to cover string_choices and call the script probably > str_choices.cocci ? (And add it to MAINTAINERS?)
On Thu, Feb 15, 2024 at 09:34:01PM +0200, Andy Shevchenko wrote: > On Thu, Feb 15, 2024 at 09:33:31PM +0200, Andy Shevchenko wrote: > > On Thu, Feb 15, 2024 at 10:02:00AM -0800, Kees Cook wrote: > > > Add rules for finding places where str_plural() can be used. This > > > currently finds: > > > 54 files changed, 62 insertions(+), 61 deletions(-) > > > > Can we extend this to cover string_choices and call the script probably > > str_choices.cocci ? > > (And add it to MAINTAINERS?) Sure! I'll send a v2.
diff --git a/scripts/coccinelle/api/str_plural.cocci b/scripts/coccinelle/api/str_plural.cocci new file mode 100644 index 000000000000..c28cb6f7b803 --- /dev/null +++ b/scripts/coccinelle/api/str_plural.cocci @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: GPL-2.0-only +// Find places to use string_choices.h's str_plural() helper. +// +// Confidence: Medium +virtual patch +virtual context +virtual report + +@depends on patch@ +expression E; +@@ +( +- ((E == 1) ? "" : "s") ++ str_plural(E) +| +- ((E != 1) ? "s" : "") ++ str_plural(E) +| +- ((E > 1) ? "s" : "") ++ str_plural(E) +) + +@r depends on !patch exists@ +expression E; +position P; +@@ +( +* ((E@P == 1) ? "" : "s") +| +* ((E@P != 1) ? "s" : "") +| +* ((E@P > 1) ? "s" : "") +) + +@script:python depends on report@ +p << r.P; +e << r.E; +@@ + +coccilib.report.print_report(p[0], "opportunity for str_plural(%s)" % e) +