All of lore.kernel.org
 help / color / mirror / Atom feed
* [Cocci] Matching format strings
@ 2017-06-29 16:04 Ondřej Kuzník
  2017-06-29 16:31 ` Julia Lawall
  0 siblings, 1 reply; 39+ messages in thread
From: Ondřej Kuzník @ 2017-06-29 16:04 UTC (permalink / raw)
  To: cocci

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

^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2017-07-12  5:48 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-29 16:04 [Cocci] Matching format strings Ondřej Kuzník
2017-06-29 16:31 ` 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

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.