diff --git a/git.c b/git.c index 6793178210..6bea8eeaac 100644 --- a/git.c +++ b/git.c @@ -55,7 +55,7 @@ static void commit_pager_choice(void) { static int handle_options(const char ***argv, int *argc, int *envchanged) { - int handled = 0; + const char **orig_argv = *argv; while (*argc > 0) { const char *cmd = (*argv)[0]; @@ -105,7 +105,6 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) *envchanged = 1; (*argv)++; (*argc)--; - handled++; } else if (!prefixcmp(cmd, "--git-dir=")) { setenv(GIT_DIR_ENVIRONMENT, cmd + 10, 1); if (envchanged) @@ -145,9 +144,8 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) (*argv)++; (*argc)--; - handled++; } - return handled; + return (*argv) - orig_argv; } static int handle_alias(int *argcp, const char ***argv) diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh index 52c9ac9b65..de2a014d8f 100755 --- a/t/t1300-repo-config.sh +++ b/t/t1300-repo-config.sh @@ -854,7 +854,7 @@ test_expect_success 'git -c "key=value" support' ' test_must_fail git -c core.name=value config name ' -test_expect_failure 'git -c works with aliases of builtins' ' +test_expect_success 'git -c works with aliases of builtins' ' git config alias.checkconfig "-c foo.check=bar config foo.check" && echo bar >expect && git checkconfig >actual &&