Skip to content

Commit

Permalink
Refactor, adding prepare_git_cmd(const char **argv)
Browse files Browse the repository at this point in the history
prepare_git_cmd(const char **argv) adds a first entry "git" to
the array argv.  The new array is allocated on the heap.  It's
the caller's responsibility to release it with free().  The code
was already present in execv_git_cmd() but could not be used from
outside.  Now it can also be called for preparing the command list
in the MinGW codepath in run-command.c.

Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
sprohaska authored and gitster committed Jul 29, 2008
1 parent d276189 commit 4933e5e
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
7 changes: 6 additions & 1 deletion exec_cmd.c
Expand Up @@ -78,7 +78,7 @@ void setup_path(void)
strbuf_release(&new_path);
}

int execv_git_cmd(const char **argv)
const char **prepare_git_cmd(const char **argv)
{
int argc;
const char **nargv;
Expand All @@ -91,6 +91,11 @@ int execv_git_cmd(const char **argv)
for (argc = 0; argv[argc]; argc++)
nargv[argc + 1] = argv[argc];
nargv[argc + 1] = NULL;
return nargv;
}

int execv_git_cmd(const char **argv) {
const char **nargv = prepare_git_cmd(argv);
trace_argv_printf(nargv, "trace: exec:");

/* execvp() can only ever return if it fails */
Expand Down
1 change: 1 addition & 0 deletions exec_cmd.h
Expand Up @@ -5,6 +5,7 @@ extern void git_set_argv_exec_path(const char *exec_path);
extern void git_set_argv0_path(const char *path);
extern const char* git_exec_path(void);
extern void setup_path(void);
extern const char **prepare_git_cmd(const char **argv);
extern int execv_git_cmd(const char **argv); /* NULL terminated */
extern int execl_git_cmd(const char *cmd, ...);
extern const char *system_path(const char *path);
Expand Down

0 comments on commit 4933e5e

Please sign in to comment.