From: okuznik@symas.com (Ondřej Kuzník)
To: cocci@systeme.lip6.fr
Subject: [Cocci] Matching format strings
Date: Thu, 29 Jun 2017 17:04:37 +0100 [thread overview]
Message-ID: <20170629160437.nvpn32fsetlzvni7@eos.mistotebe.net> (raw)
Hi all,
I'm looking into what's needed to replace OpenLDAP's debug macro
implementation which at the moment always takes 3 arguments:
Debug(LEVEL, "format", arg1, arg2, arg3);
to something more useful (and get rid of the obvious compiler warnings
we get from doing things like that).
There are two (or three) cases I need to handle where I hope coccinelle
would be able to help:
1. Where less than three arguments are needed, they are always filled
with zeros:
Debug(level, "text with less than three format specifiers", 0, 0, 0);
We want to change that to
Debug( level, "format" );
or equivalent. This is by far the most common one. But obviously where
we have zeros as arguments, but there is a corresponding % format
specifier, we don't want to drop those.
2. When more are needed, usually the code looks like this:
snprintf( buffer, size, "format", ... );
Debug( level, "text: %s\n", buffer, ... );
We'd like to change that to:
Debug( level, "new format", merged arguments );
There are fewer of those but still too many for a human to maintain
while we discuss the merits of this change on openldap-devel with
regards to C89, old compilers and stuff like that :)
2a. There might be a place that reuses the buffer contents, but that's
easy to check for I guess?
Looking around the docs and the archive, there is some python support,
but I have no idea how to use it yet to pick up the format strings, test
whether a Debug line matches and prepare the change.
Is coccinelle capable of expressing a semantic patch like that, and if
yes, do you have any pointers and suggestions about how I should go
about writing it?
Thanks!
--
Ond?ej Kuzn?k
Senior Software Engineer
Symas Corporation http://www.symas.com
Packaged, certified, and supported LDAP solutions powered by OpenLDAP
next reply other threads:[~2017-06-29 16:04 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-29 16:04 Ondřej Kuzník [this message]
2017-06-29 16:31 ` [Cocci] Matching format strings Julia Lawall
[not found] ` <WM!fa141e32a0b1e5356bb136cefca80be54d02a269aa1d5e1c1d01b9dd1e9da14f2f9fffdc08676c298a48132a86f2037e!@mailstronghold-1.zmailcloud.com>
2017-06-29 17:58 ` Ondřej Kuzník
2017-06-29 20:07 ` Julia Lawall
2017-06-29 23:40 ` Julia Lawall
[not found] ` <WM!a6114e049b67df39e40551cd95bf5d65e432ff2f8c0445b0273a6b12349ae6346924a09e4c027fdcc87febe26a5e6a4e!@mailstronghold-2.zmailcloud.com>
[not found] ` <20170630135727.lyjp7ayalzxf73jf@eos.mistotebe.net>
2017-07-04 13:22 ` Ondřej Kuzník
2017-07-04 13:32 ` Julia Lawall
[not found] ` <WM!8666006bd8d2547072f2aaa49a217ebee942918ea85a26184b30aa0c245a807e35f125c1045776851fe6d85360d3ed76!@mailstronghold-3.zmailcloud.com>
2017-07-04 13:50 ` Ondřej Kuzník
2017-07-04 13:53 ` Julia Lawall
[not found] ` <WM!65159de96edf810da1e56d42962da09a256f7f76b7d8eab05109b214b5dc8c18f88b6a34ac273725a5e7afd1a6bed1d7!@mailstronghold-2.zmailcloud.com>
2017-07-04 15:11 ` Ondřej Kuzník
2017-07-04 15:25 ` Julia Lawall
[not found] ` <WM!e764e7a6685d1e3af9c59f905772f1c4a8db9db4c655054ccb07f1b8485096c0979716269a6920eeac860b62d25a700e!@mailstronghold-2.zmailcloud.com>
2017-07-04 16:01 ` Ondřej Kuzník
2017-07-04 16:09 ` Julia Lawall
[not found] ` <WM!cc508729d042cf12207adee814670b88c105ae73cdaf601fdeb9c3e26fa32e7df0d4d49f847a216810550421de0d8de6!@mailstronghold-3.zmailcloud.com>
2017-07-04 16:27 ` Ondřej Kuzník
2017-07-04 16:40 ` Julia Lawall
[not found] ` <WM!eb7db9be9e260b8b332afe997cbb4412d355372680c68c06376375f785c138afeda43804b4aaff43c0242a17ff2d826f!@mailstronghold-3.zmailcloud.com>
2017-07-04 16:56 ` Ondřej Kuzník
2017-07-04 16:59 ` Julia Lawall
[not found] ` <WM!6445a14b41a047e62e6e93d9a0da969d5ea2daf83555655349684d54f3d26f5ca8795d092a053f4ee93c2a22f577a788!@mailstronghold-1.zmailcloud.com>
2017-07-04 17:46 ` Ondřej Kuzník
2017-07-04 17:53 ` Julia Lawall
[not found] ` <WM!afea88a820c9c853667fab8a120e0e62e64bc1c9aacab0e42f4149cedda4906e7b85ddc1f742afe16ea78098b42a61f6!@mailstronghold-3.zmailcloud.com>
2017-07-04 19:17 ` Ondřej Kuzník
2017-07-04 21:05 ` Julia Lawall
2017-07-04 21:09 ` Julia Lawall
2017-07-05 12:20 ` Julia Lawall
[not found] ` <WM!da212a33f363d5e8666de4eea7afef6ff657b4ba0eea72f6c914a365ab717eec189b136e17bf2c01cc76cdde89f25962!@mailstronghold-2.zmailcloud.com>
2017-07-05 16:25 ` Ondřej Kuzník
2017-07-05 18:33 ` Julia Lawall
2017-07-05 18:39 ` Julia Lawall
2017-07-05 20:38 ` Julia Lawall
[not found] ` <WM!3b412209b28e186e2cf1ceaaa46d40e6d1947012ed574b129f9c461a255f53e26f88920405ecdf4a7d052d70724bc64e!@mailstronghold-2.zmailcloud.com>
2017-07-10 16:12 ` Ondřej Kuzník
2017-07-10 16:18 ` Julia Lawall
[not found] ` <WM!18ce1dcc914ca4f9b61f6c3aaf891296df9651e3b4d79666e0682dd2ff392a761c732ee0cf4f6500e93b392f83991daf!@mailstronghold-1.zmailcloud.com>
2017-07-10 16:28 ` Ondřej Kuzník
2017-07-10 17:26 ` Julia Lawall
[not found] ` <WM!5b84796296144341d624902eddc2fab8cb72294094f53296fafa12642d6a73a74f5216fe1a48aa1018fdaf2162eca726!@mailstronghold-2.zmailcloud.com>
2017-07-11 13:06 ` Ondřej Kuzník
2017-07-11 13:10 ` Julia Lawall
[not found] ` <WM!c47e11010083686c9aadfde329eb4f31090053d095a60ac9df8bbc8224796e493af84b1948709a4b0a11aa0da4f34967!@mailstronghold-2.zmailcloud.com>
2017-07-11 14:25 ` Ondřej Kuzník
2017-07-11 19:24 ` Julia Lawall
[not found] ` <WM!722e339a1005fef2c134dd9ac0ae6a397244b31d97d213bd70f018388df0843856b835981db31cfffbbceb8ea4d36bdf!@mailstronghold-2.zmailcloud.com>
2017-07-11 22:05 ` Ondřej Kuzník
2017-07-11 22:17 ` Ondřej Kuzník
2017-07-12 5:48 ` Julia Lawall
2017-07-04 16:25 ` Julia Lawall
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=20170629160437.nvpn32fsetlzvni7@eos.mistotebe.net \
--to=okuznik@symas.com \
--cc=cocci@systeme.lip6.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.