Eh oui, un petit logiciel que j'ai découvert récemment (en fait, il y a 5 min ^^). Le principe est de pouvoir faire des patchs pour corriger un fichier ou une série de fichier par comparaison, mais de patcher un pattern.
Par exemple, dans un programme, on souhaite remplacer les appels à la fonction fputs, par puts.
Avec la méthode classique, i.e. avec patch, il faut faire toutes les modifications dans tous les fichiers, puis créer un patch.
Avec coccinelle, il suffit de faire une règle comme suit
@@
expression str;
expression file;
@@
- fputs(str, file)
+ puts(str)
Et il fera le boulot pour vous, pour toutes les occurances de fputs dans tout les fichiers de votre projet !
Pour plus d'info,
http://www.emn.fr/x-info/coccinelle
[edit]
Petit oublie. Contrairement à l'utilitaire patch qui n'a pas besoin de connaitre le type de fichier qu'il patch, notamment le langage, Coccinelle se doit de connaitre le langage contenu dans les fichiers. Coccinelle est un outli développé à la base pour le noyau linux. Il reconnait donc le C. Je n'ai pas trouvé d'info sur d'éventuel d'autre langage supporté, mais je pense que le C++ devrait aussi passer.
[/edit]
Edité par Francesco ( 19/07/2009 13:23:36 )Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)