All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: Julia Lawall <julia.lawall@inria.fr>
Cc: Coccinelle ML <cocci@inria.fr>
Subject: Re: [cocci] How do I disable formatting for the "+"-side of a rule?
Date: Thu, 14 Jul 2022 11:52:08 +0200	[thread overview]
Message-ID: <220714.867d4g2ewo.gmgdl@evledraar.gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.22.394.2207141138450.3019@hadrien>


On Thu, Jul 14 2022, Julia Lawall wrote:

> On Thu, 14 Jul 2022, Ævar Arnfjörð Bjarmason wrote:
>
>> How do I stop coccinelle from turning my "{ 0 };\n" into
>> "{\n\t\t0\n\t};\n"?
>>
>> I haven't been able to find in the docs how to disable formatting on the
>> "+"-side of a rule. I have a rule like:
>>
>> 	@@
>> 	type T;
>> 	identifier I;
>> 	@@
>> 	- T I;
>> 	+ T I = { 0 };
>> 	... when != \( I \| &I \)
>> 	- memset(&I, 0, ...);
>>
>> Which produces the expected results as far as the patch is concerned:
>>
>> 	diff -u -p a/builtin/for-each-ref.c b/builtin/for-each-ref.c
>> 	--- a/builtin/for-each-ref.c
>> 	+++ b/builtin/for-each-ref.c
>> 	@@ -20,7 +20,9 @@ int cmd_for_each_ref(int argc, const cha
>> 	 	struct ref_sorting *sorting;
>> 	 	struct string_list sorting_options = STRING_LIST_INIT_DUP;
>> 	 	int maxcount = 0, icase = 0;
>> 	-	struct ref_array array;
>> 	+	struct ref_array array = {
>> 	+		0
>> 	+	};
>> 	 	struct ref_filter filter;
>> 	 	struct ref_format format = REF_FORMAT_INIT;
>> 	 	struct strbuf output = STRBUF_INIT;
>> 	@@ -52,7 +54,6 @@ int cmd_for_each_ref(int argc, const cha
>> 	 		OPT_END(),
>> 	 	};
>>
>> 	-	memset(&array, 0, sizeof(array));
>> 	 	memset(&filter, 0, sizeof(filter));
>>
>> 	 	format.format = "%(objectname) %(objecttype)\t%(refname)";
>>
>> But I'd like for that to be e.g.:
>>
>> 	struct ref_array array = { 0 };
>>
>> Which is a common idiom both in this codebase (git) and elsewhere.
>>
>> Usually I can find an answer in one of the coccinelle.git's *.cocci
>> files, the man page, or the grammar PDF, but in this case I've come up
>> blank...
>
> Try --smpl-spacing.  I'm not sure whether it affects newlines, though.

Thanks, no it just changes the spacing of the "=", i.e.:

	+       struct ref_array array = {

v.s. with --smpl-spacing:

	+       struct ref_array array<TAB>= {

(Or similar, I think it's aligning to the "=" above it?)

But the rest is the same, i.e. a \n after the "{", the "0" on its own
line etc.



  reply	other threads:[~2022-07-14  9:59 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-14  9:31 [cocci] How do I disable formatting for the "+"-side of a rule? Ævar Arnfjörð Bjarmason
2022-07-14  9:39 ` Julia Lawall
2022-07-14  9:52   ` Ævar Arnfjörð Bjarmason [this message]
2022-07-14 10:47     ` Julia Lawall
2022-07-15  9:50       ` Ævar Arnfjörð Bjarmason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=220714.867d4g2ewo.gmgdl@evledraar.gmail.com \
    --to=avarab@gmail.com \
    --cc=cocci@inria.fr \
    --cc=julia.lawall@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.