linux-stable/scripts/coccinelle/api/string_choices.cocci
Hongbo Li 8a0236bab4 coccinelle: Add rules to find str_false_true() replacements
As done with str_true_false(), add checks for str_false_true()
opportunities. A simple test can find over 9 cases currently
exist in the tree.

Signed-off-by: Hongbo Li <lihongbo22@huawei.com>
Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
2024-09-28 21:21:50 +02:00

126 lines
2.1 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0-only
/// Find places to use string_choices.h's various helpers.
//
// Confidence: Medium
// Options: --no-includes --include-headers
virtual patch
virtual context
virtual report
@str_plural depends on patch@
expression E;
@@
(
- ((E == 1) ? "" : "s")
+ str_plural(E)
|
- ((E != 1) ? "s" : "")
+ str_plural(E)
|
- ((E > 1) ? "s" : "")
+ str_plural(E)
)
@str_plural_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 << str_plural_r.P;
e << str_plural_r.E;
@@
coccilib.report.print_report(p[0], "opportunity for str_plural(%s)" % e)
@str_up_down depends on patch@
expression E;
@@
(
- ((E) ? "up" : "down")
+ str_up_down(E)
)
@str_up_down_r depends on !patch exists@
expression E;
position P;
@@
(
* ((E@P) ? "up" : "down")
)
@script:python depends on report@
p << str_up_down_r.P;
e << str_up_down_r.E;
@@
coccilib.report.print_report(p[0], "opportunity for str_up_down(%s)" % e)
@str_down_up depends on patch@
expression E;
@@
(
- ((E) ? "down" : "up")
+ str_down_up(E)
)
@str_down_up_r depends on !patch exists@
expression E;
position P;
@@
(
* ((E@P) ? "down" : "up")
)
@script:python depends on report@
p << str_down_up_r.P;
e << str_down_up_r.E;
@@
coccilib.report.print_report(p[0], "opportunity for str_down_up(%s)" % e)
@str_true_false depends on patch@
expression E;
@@
- ((E) ? "true" : "false")
+ str_true_false(E)
@str_true_false_r depends on !patch exists@
expression E;
position P;
@@
* ((E@P) ? "true" : "false")
@script:python depends on report@
p << str_true_false_r.P;
e << str_true_false_r.E;
@@
coccilib.report.print_report(p[0], "opportunity for str_true_false(%s)" % e)
@str_false_true depends on patch@
expression E;
@@
- ((E) ? "false" : "true")
+ str_false_true(E)
@str_false_true_r depends on !patch exists@
expression E;
position P;
@@
* ((E@P) ? "false" : "true")
@script:python depends on report@
p << str_false_true_r.P;
e << str_false_true_r.E;
@@
coccilib.report.print_report(p[0], "opportunity for str_false_true(%s)" % e)