Skip to content

Commit db1d80b

Browse files
bk2204gitster
authored andcommitted
contrib/coccinelle: add basic Coccinelle transforms
Coccinelle (http://coccinelle.lip6.fr/) is a program which performs mechanical transformations on C programs using semantic patches. These semantic patches can be used to implement automatic refactoring and maintenance tasks. Add a set of basic semantic patches to convert common patterns related to the struct object_id transformation, as well as a README. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 55c529a commit db1d80b

File tree

2 files changed

+97
-0
lines changed

2 files changed

+97
-0
lines changed

contrib/coccinelle/README

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
This directory provides examples of Coccinelle (http://coccinelle.lip6.fr/)
2+
semantic patches that might be useful to developers.

contrib/coccinelle/object_id.cocci

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
@@
2+
expression E1;
3+
@@
4+
- is_null_sha1(E1.hash)
5+
+ is_null_oid(&E1)
6+
7+
@@
8+
expression E1;
9+
@@
10+
- is_null_sha1(E1->hash)
11+
+ is_null_oid(E1)
12+
13+
@@
14+
expression E1;
15+
@@
16+
- sha1_to_hex(E1.hash)
17+
+ oid_to_hex(&E1)
18+
19+
@@
20+
expression E1;
21+
@@
22+
- sha1_to_hex(E1->hash)
23+
+ oid_to_hex(E1)
24+
25+
@@
26+
expression E1;
27+
@@
28+
- sha1_to_hex_r(E1.hash)
29+
+ oid_to_hex_r(&E1)
30+
31+
@@
32+
expression E1;
33+
@@
34+
- sha1_to_hex_r(E1->hash)
35+
+ oid_to_hex_r(E1)
36+
37+
@@
38+
expression E1;
39+
@@
40+
- hashclr(E1.hash)
41+
+ oidclr(&E1)
42+
43+
@@
44+
expression E1;
45+
@@
46+
- hashclr(E1->hash)
47+
+ oidclr(E1)
48+
49+
@@
50+
expression E1, E2;
51+
@@
52+
- hashcmp(E1.hash, E2.hash)
53+
+ oidcmp(&E1, &E2)
54+
55+
@@
56+
expression E1, E2;
57+
@@
58+
- hashcmp(E1->hash, E2->hash)
59+
+ oidcmp(E1, E2)
60+
61+
@@
62+
expression E1, E2;
63+
@@
64+
- hashcmp(E1->hash, E2.hash)
65+
+ oidcmp(E1, &E2)
66+
67+
@@
68+
expression E1, E2;
69+
@@
70+
- hashcmp(E1.hash, E2->hash)
71+
+ oidcmp(&E1, E2)
72+
73+
@@
74+
expression E1, E2;
75+
@@
76+
- hashcpy(E1.hash, E2.hash)
77+
+ oidcpy(&E1, &E2)
78+
79+
@@
80+
expression E1, E2;
81+
@@
82+
- hashcpy(E1->hash, E2->hash)
83+
+ oidcpy(E1, E2)
84+
85+
@@
86+
expression E1, E2;
87+
@@
88+
- hashcpy(E1->hash, E2.hash)
89+
+ oidcpy(E1, &E2)
90+
91+
@@
92+
expression E1, E2;
93+
@@
94+
- hashcpy(E1.hash, E2->hash)
95+
+ oidcpy(&E1, E2)

0 commit comments

Comments
 (0)