Merge branch 'jk/common-main' into maint

There are certain house-keeping tasks that need to be performed at
the very beginning of any Git program, and programs that are not
built-in commands had to do them exactly the same way as "git"
potty does.  It was easy to make mistakes in one-off standalone
programs (like test helpers).  A common "main()" function that
calls cmd_main() of individual program has been introduced to
make it harder to make mistakes.

* jk/common-main:
  mingw: declare main()'s argv as const
  common-main: call git_setup_gettext()
  common-main: call restore_sigpipe_to_default()
  common-main: call sanitize_stdfds()
  common-main: call git_extract_argv0_path()
  add an extra level of indirection to main()
This commit is contained in:
Junio C Hamano
2016-09-08 21:35:50 -07:00
53 changed files with 126 additions and 153 deletions

View File

@ -1692,12 +1692,12 @@ static void run_request_queue(void)
#endif
}
int main(int argc, char **argv)
int cmd_main(int argc, const char **argv)
{
struct transfer_request *request;
struct transfer_request *next_request;
int nr_refspec = 0;
char **refspec = NULL;
const char **refspec = NULL;
struct remote_lock *ref_lock = NULL;
struct remote_lock *info_ref_lock = NULL;
struct rev_info revs;
@ -1709,15 +1709,11 @@ int main(int argc, char **argv)
int new_refs;
struct ref *ref, *local_refs;
git_setup_gettext();
git_extract_argv0_path(argv[0]);
repo = xcalloc(1, sizeof(*repo));
argv++;
for (i = 1; i < argc; i++, argv++) {
char *arg = *argv;
const char *arg = *argv;
if (*arg == '-') {
if (!strcmp(arg, "--all")) {