git
144 строки · 2.0 Кб
1@ get_fn @
2identifier fn, R;
3@@
4(
5(
6git_config_from_file
7|
8git_config_from_file_with_options
9|
10git_config_from_mem
11|
12git_config_from_blob_oid
13|
14read_early_config
15|
16read_very_early_config
17|
18config_with_options
19|
20git_config
21|
22git_protected_config
23|
24config_from_gitmodules
25)
26(fn, ...)
27|
28repo_config(R, fn, ...)
29)
30
31@ extends get_fn @
32identifier C1, C2, D;
33@@
34int fn(const char *C1, const char *C2,
35+ const struct config_context *ctx,
36void *D);
37
38@ extends get_fn @
39@@
40int fn(const char *, const char *,
41+ const struct config_context *,
42void *);
43
44@ extends get_fn @
45// Don't change fns that look like callback fns but aren't
46identifier fn2 != tar_filter_config && != git_diff_heuristic_config &&
47!= git_default_submodule_config && != git_color_config &&
48!= bundle_list_update && != parse_object_filter_config;
49identifier C1, C2, D1, D2, S;
50attribute name UNUSED;
51@@
52int fn(const char *C1, const char *C2,
53+ const struct config_context *ctx,
54void *D1) {
55<+...
56(
57fn2(C1, C2
58+ , ctx
59, D2);
60|
61if(fn2(C1, C2
62+ , ctx
63, D2) < 0) { ... }
64|
65return fn2(C1, C2
66+ , ctx
67, D2);
68|
69S = fn2(C1, C2
70+ , ctx
71, D2);
72)
73...+>
74}
75
76@ extends get_fn@
77identifier C1, C2, D;
78attribute name UNUSED;
79@@
80int fn(const char *C1, const char *C2,
81+ const struct config_context *ctx UNUSED,
82void *D) {...}
83
84
85// The previous rules don't catch all callbacks, especially if they're defined
86// in a separate file from the git_config() call. Fix these manually.
87@@
88identifier C1, C2, D;
89attribute name UNUSED;
90@@
91int
92(
93git_ident_config
94|
95urlmatch_collect_fn
96|
97write_one_config
98|
99forbid_remote_url
100|
101credential_config_callback
102)
103(const char *C1, const char *C2,
104+ const struct config_context *ctx UNUSED,
105void *D) {...}
106
107@@
108identifier C1, C2, D, D2, S, fn2;
109@@
110int
111(
112http_options
113|
114git_status_config
115|
116git_commit_config
117|
118git_default_core_config
119|
120grep_config
121)
122(const char *C1, const char *C2,
123+ const struct config_context *ctx,
124void *D) {
125<+...
126(
127fn2(C1, C2
128+ , ctx
129, D2);
130|
131if(fn2(C1, C2
132+ , ctx
133, D2) < 0) { ... }
134|
135return fn2(C1, C2
136+ , ctx
137, D2);
138|
139S = fn2(C1, C2
140+ , ctx
141, D2);
142)
143...+>
144}
145