145 lines
2.0 KiB
Plaintext
145 lines
2.0 KiB
Plaintext
@ get_fn @
|
|
identifier fn, R;
|
|
@@
|
|
(
|
|
(
|
|
git_config_from_file
|
|
|
|
|
git_config_from_file_with_options
|
|
|
|
|
git_config_from_mem
|
|
|
|
|
git_config_from_blob_oid
|
|
|
|
|
read_early_config
|
|
|
|
|
read_very_early_config
|
|
|
|
|
config_with_options
|
|
|
|
|
git_config
|
|
|
|
|
git_protected_config
|
|
|
|
|
config_from_gitmodules
|
|
)
|
|
(fn, ...)
|
|
|
|
|
repo_config(R, fn, ...)
|
|
)
|
|
|
|
@ extends get_fn @
|
|
identifier C1, C2, D;
|
|
@@
|
|
int fn(const char *C1, const char *C2,
|
|
+ const struct config_context *ctx,
|
|
void *D);
|
|
|
|
@ extends get_fn @
|
|
@@
|
|
int fn(const char *, const char *,
|
|
+ const struct config_context *,
|
|
void *);
|
|
|
|
@ extends get_fn @
|
|
// Don't change fns that look like callback fns but aren't
|
|
identifier fn2 != tar_filter_config && != git_diff_heuristic_config &&
|
|
!= git_default_submodule_config && != git_color_config &&
|
|
!= bundle_list_update && != parse_object_filter_config;
|
|
identifier C1, C2, D1, D2, S;
|
|
attribute name UNUSED;
|
|
@@
|
|
int fn(const char *C1, const char *C2,
|
|
+ const struct config_context *ctx,
|
|
void *D1) {
|
|
<+...
|
|
(
|
|
fn2(C1, C2
|
|
+ , ctx
|
|
, D2);
|
|
|
|
|
if(fn2(C1, C2
|
|
+ , ctx
|
|
, D2) < 0) { ... }
|
|
|
|
|
return fn2(C1, C2
|
|
+ , ctx
|
|
, D2);
|
|
|
|
|
S = fn2(C1, C2
|
|
+ , ctx
|
|
, D2);
|
|
)
|
|
...+>
|
|
}
|
|
|
|
@ extends get_fn@
|
|
identifier C1, C2, D;
|
|
attribute name UNUSED;
|
|
@@
|
|
int fn(const char *C1, const char *C2,
|
|
+ const struct config_context *ctx UNUSED,
|
|
void *D) {...}
|
|
|
|
|
|
// The previous rules don't catch all callbacks, especially if they're defined
|
|
// in a separate file from the git_config() call. Fix these manually.
|
|
@@
|
|
identifier C1, C2, D;
|
|
attribute name UNUSED;
|
|
@@
|
|
int
|
|
(
|
|
git_ident_config
|
|
|
|
|
urlmatch_collect_fn
|
|
|
|
|
write_one_config
|
|
|
|
|
forbid_remote_url
|
|
|
|
|
credential_config_callback
|
|
)
|
|
(const char *C1, const char *C2,
|
|
+ const struct config_context *ctx UNUSED,
|
|
void *D) {...}
|
|
|
|
@@
|
|
identifier C1, C2, D, D2, S, fn2;
|
|
@@
|
|
int
|
|
(
|
|
http_options
|
|
|
|
|
git_status_config
|
|
|
|
|
git_commit_config
|
|
|
|
|
git_default_core_config
|
|
|
|
|
grep_config
|
|
)
|
|
(const char *C1, const char *C2,
|
|
+ const struct config_context *ctx,
|
|
void *D) {
|
|
<+...
|
|
(
|
|
fn2(C1, C2
|
|
+ , ctx
|
|
, D2);
|
|
|
|
|
if(fn2(C1, C2
|
|
+ , ctx
|
|
, D2) < 0) { ... }
|
|
|
|
|
return fn2(C1, C2
|
|
+ , ctx
|
|
, D2);
|
|
|
|
|
S = fn2(C1, C2
|
|
+ , ctx
|
|
, D2);
|
|
)
|
|
...+>
|
|
}
|