{"thread":{"id":"52244","subject":"[PATCH] coccinelle: merge eight rules from strbuf.cocci","startedAt":"2019-11-12T16:55:48Z","lastAt":"2019-11-12T16:55:48Z","messageCount":1,"participants":["Markus Elfring"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"386022","messageId":"31d2b9c8-31ec-4921-d38d-12712de819a7@web.de","threadId":"52244","inReplyTo":null,"subject":"[PATCH] coccinelle: merge eight rules from strbuf.cocci","fromName":"Markus Elfring","fromEmail":"markus.elfring@web.de","sentAt":"2019-11-12T16:55:40Z","receivedAt":"2019-11-12T16:55:48Z","isPatch":true,"sender":{"key":"markus.elfring@web.de","avatar":null},"body":"From: Markus Elfring <elfring@users.sourceforge.net>\nDate: Tue, 12 Nov 2019 17:50:13 +0100\n\nThis script contained transformation rules for the semantic patch language\nwhich used similar code.\nCombine these rules by using two SmPL disjunctions so that the run time\ncharacteristics can be nicer because of common usage of a few metavariables.\n\nSigned-off-by: Markus Elfring <elfring@users.sourceforge.net>\n---\n contrib/coccinelle/strbuf.cocci | 49 +++++++++++----------------------\n 1 file changed, 16 insertions(+), 33 deletions(-)\n\ndiff --git a/contrib/coccinelle/strbuf.cocci b/contrib/coccinelle/strbuf.cocci\nindex d9ada69b43..b66c9bf8e3 100644\n--- a/contrib/coccinelle/strbuf.cocci\n+++ b/contrib/coccinelle/strbuf.cocci\n@@ -1,7 +1,11 @@\n-@ strbuf_addf_with_format_only @\n+@replacement1@\n expression E;\n constant fmt !~ \"%\";\n+struct strbuf SB;\n+struct strbuf *SBP;\n+format F =~ \"s\";\n @@\n+(\n - strbuf_addf\n + strbuf_addstr\n   (E,\n@@ -11,52 +15,31 @@ constant fmt !~ \"%\";\n   _(fmt)\n )\n   );\n-\n-@@\n-expression E;\n-struct strbuf SB;\n-format F =~ \"s\";\n-@@\n+|\n - strbuf_addf(E, \"%@F@\", SB.buf);\n + strbuf_addbuf(E, &SB);\n-\n-@@\n-expression E;\n-struct strbuf *SBP;\n-format F =~ \"s\";\n-@@\n+|\n - strbuf_addf(E, \"%@F@\", SBP->buf);\n + strbuf_addbuf(E, SBP);\n-\n-@@\n-expression E;\n-struct strbuf SB;\n-@@\n+|\n - strbuf_addstr(E, SB.buf);\n + strbuf_addbuf(E, &SB);\n-\n-@@\n-expression E;\n-struct strbuf *SBP;\n-@@\n+|\n - strbuf_addstr(E, SBP->buf);\n + strbuf_addbuf(E, SBP);\n+)\n\n-@@\n-expression E1, E2;\n+@replacement2@\n+expression E1, E2, E3;\n format F =~ \"s\";\n @@\n+(\n - strbuf_addf(E1, \"%@F@\", E2);\n + strbuf_addstr(E1, E2);\n-\n-@@\n-expression E1, E2, E3;\n-@@\n+|\n - strbuf_addstr(E1, find_unique_abbrev(E2, E3));\n + strbuf_add_unique_abbrev(E1, E2, E3);\n-\n-@@\n-expression E1, E2;\n-@@\n+|\n - strbuf_addstr(E1, real_path(E2));\n + strbuf_add_real_path(E1, E2);\n+)\n--\n2.24.0\n\n"}]}