git-fetch: use fetch--tool pick-rref to avoid local fetch from alternate
[gitweb.git] / exec_cmd.c
index 62f51fcd6e367d2dc7e3dc8d967ee05fd1648d04..9b74ed2f42ad9a452f5a1d9ab55d5ca1e1de2594 100644 (file)
@@ -5,7 +5,7 @@
 
 extern char **environ;
 static const char *builtin_exec_path = GIT_EXEC_PATH;
-static const char *current_exec_path = NULL;
+static const char *current_exec_path;
 
 void git_set_exec_path(const char *exec_path)
 {
@@ -21,7 +21,7 @@ const char *git_exec_path(void)
        if (current_exec_path)
                return current_exec_path;
 
-       env = getenv("GIT_EXEC_PATH");
+       env = getenv(EXEC_PATH_ENVIRONMENT);
        if (env && *env) {
                return env;
        }
@@ -35,7 +35,7 @@ int execv_git_cmd(const char **argv)
        char git_command[PATH_MAX + 1];
        int i;
        const char *paths[] = { current_exec_path,
-                               getenv("GIT_EXEC_PATH"),
+                               getenv(EXEC_PATH_ENVIRONMENT),
                                builtin_exec_path };
 
        for (i = 0; i < ARRAY_SIZE(paths); ++i) {
@@ -56,7 +56,7 @@ int execv_git_cmd(const char **argv)
                        len = strlen(git_command);
 
                        /* Trivial cleanup */
-                       while (!strncmp(exec_dir, "./", 2)) {
+                       while (!prefixcmp(exec_dir, "./")) {
                                exec_dir += 2;
                                while (*exec_dir == '/')
                                        exec_dir++;
@@ -97,26 +97,12 @@ int execv_git_cmd(const char **argv)
                tmp = argv[0];
                argv[0] = git_command;
 
-               if (getenv("GIT_TRACE")) {
-                       const char **p = argv;
-                       fputs("trace: exec:", stderr);
-                       while (*p) {
-                               fputc(' ', stderr);
-                               sq_quote_print(stderr, *p);
-                               ++p;
-                       }
-                       putc('\n', stderr);
-                       fflush(stderr);
-               }
+               trace_argv_printf(argv, -1, "trace: exec:");
 
                /* execve() can only ever return if it fails */
                execve(git_command, (char **)argv, environ);
 
-               if (getenv("GIT_TRACE")) {
-                       fprintf(stderr, "trace: exec failed: %s\n",
-                               strerror(errno));
-                       fflush(stderr);
-               }
+               trace_printf("trace: exec failed: %s\n", strerror(errno));
 
                argv[0] = tmp;
        }