Re: [PATCH] cocci: simplify check for trivial format strings
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Feb 2, 2018, 14:34 UTC
- Message-ID
- <CAM0VKjnoux1CBq-HvzRW14hXZyviG_z_Rv-qv7d0kakh18zXcw@mail.gmail.com>
- In-Reply-To
- <376eb2e8-0a95-233b-743b-cdc1caa49015@web.de>
On Thu, Feb 1, 2018 at 7:56 PM, René Scharfe <l.s.r@web.de> wrote:
Show 11 quoted lines
> 353d84c537 (coccicheck: make transformation for strbuf_addf(sb, "...") > more precise) added a check to avoid transforming calls with format > strings which contain percent signs, as that would change the result. > It uses embedded Python code for that. Simplify this rule by using the > regular expression matching operator instead. > > Signed-off-by: Rene Scharfe <l.s.r@web.de> > --- > Inspired by the Coccinelle package in Debian experimental, which lost > support for Python for some reason. Tested only with that version > (1.0.6.deb-3) and Debian testing's 1.0.4.deb-3+b3.
FWIW, it appears to be working fine with Coccinelle version 1.0.0~rc19.deb-3 running on Travis CI. Applied it on top of 'rs/strbuf-cocci-workaround' currently at cd9a4b6d9 (cocci: use format keyword instead of a literal string, 2018-01-19) along with an other patch to show the resulting suggestions in '.../*.cocci.patch' files, and the results look fine:
https://travis-ci.org/szeder/git/jobs/336573242#L1466
and are the same as without this patch:
https://travis-ci.org/szeder/git/jobs/336257153#L1466
Show 33 quoted lines
>
> contrib/coccinelle/strbuf.cocci | 17 +----------------
> 1 file changed, 1 insertion(+), 16 deletions(-)
>
> diff --git a/contrib/coccinelle/strbuf.cocci b/contrib/coccinelle/strbuf.cocci
> index 6fe8727421..e34eada1ad 100644
> --- a/contrib/coccinelle/strbuf.cocci
> +++ b/contrib/coccinelle/strbuf.cocci
> @@ -1,21 +1,6 @@
> @ strbuf_addf_with_format_only @
> expression E;
> -constant fmt;
> -@@
> - strbuf_addf(E,
> -(
> - fmt
> -|
> - _(fmt)
> -)
> - );
> -
> -@ script:python @
> -fmt << strbuf_addf_with_format_only.fmt;
> -@@
> -cocci.include_match("%" not in fmt)
> -
> -@ extends strbuf_addf_with_format_only @
> +constant fmt !~ "%";
> @@
> - strbuf_addf
> + strbuf_addstr
> --
> 2.16.1