All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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.