Re: [PATCH v6 1/5] common-main: split init and exit code into new files
From: Junio C Hamano <hidden>
Date: 2025-01-15 22:40:49
Josh Steadmon [off-list ref] writes:
This split has previously been proposed ([1], [2]) to support fuzz tests and unit tests by avoiding conflicting definitions for main(). However, both of those issues were resolved by other methods of avoiding symbol conflicts. Now we are trying to make libgit.a more self-contained, so hopefully we can revisit this approach.
Yay!
Additionally, move the initialization code out of main() into a new init_git() function in its own file. Include this in libgit.a as well, so that external users can share our setup code without calling our main().
Sounds good.
quoted hunk
diff --git a/common-main.c b/common-main.c index 8e68ac9e42..6b7ab077b0 100644 --- a/common-main.c +++ b/common-main.c@@ -1,92 +1,13 @@... +#include "common-init.h" int main(int argc, const char **argv) { int result; + init_git(argv); result = cmd_main(argc, argv); /* Not exit(3), but a wrapper calling our common_exit() */ exit(result); }
Nice. Very nice. I wasn't too carefully validating what we lost here is identical to what we added to init_git(), but hopefully others would spot and stop us if that is not the case. Thanks.