提交 9b0b5093 编写于 作者: S Shawn O. Pearce 提交者: Junio C Hamano

Remove unnecessary argc parameter from run_command_v.

The argc parameter is never used by the run_command_v family of
functions.  Instead they require that the passed argv[] be NULL
terminated so they can rely on the operating system's execvp
function to correctly pass the arguments to the new process.

Making the caller pass the argc is just confusing, as the caller
could be mislead into believing that the argc might take precendece
over the argv, or that the argv does not need to be NULL terminated.
So goodbye argc.  Don't come back.
Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
Signed-off-by: NJunio C Hamano <junkio@cox.net>
上级 ad1a382f
......@@ -275,7 +275,7 @@ static int do_push(const char *repo)
argv[dest_argc] = NULL;
if (verbose)
fprintf(stderr, "Pushing to %s\n", dest);
err = run_command_v(argc, argv);
err = run_command_v(argv);
if (!err)
continue;
switch (err) {
......
......@@ -187,7 +187,7 @@ static void run_update_post_hook(struct command *cmd)
argc++;
}
argv[argc] = NULL;
run_command_v_opt(argc, argv, RUN_COMMAND_NO_STDIO);
run_command_v_opt(argv, RUN_COMMAND_NO_STDIO);
}
/*
......@@ -283,7 +283,7 @@ static const char *unpack(void)
unpacker[0] = "unpack-objects";
unpacker[1] = hdr_arg;
unpacker[2] = NULL;
code = run_command_v_opt(1, unpacker, RUN_GIT_CMD);
code = run_command_v_opt(unpacker, RUN_GIT_CMD);
switch (code) {
case 0:
return NULL;
......
......@@ -2,7 +2,7 @@
#include "run-command.h"
#include "exec_cmd.h"
int run_command_v_opt(int argc, const char **argv, int flags)
int run_command_v_opt(const char **argv, int flags)
{
pid_t pid = fork();
......@@ -46,9 +46,9 @@ int run_command_v_opt(int argc, const char **argv, int flags)
}
}
int run_command_v(int argc, const char **argv)
int run_command_v(const char **argv)
{
return run_command_v_opt(argc, argv, 0);
return run_command_v_opt(argv, 0);
}
int run_command(const char *cmd, ...)
......@@ -69,5 +69,5 @@ int run_command(const char *cmd, ...)
va_end(param);
if (MAX_RUN_COMMAND_ARGS <= argc)
return error("too many args to run %s", cmd);
return run_command_v_opt(argc, argv, 0);
return run_command_v_opt(argv, 0);
}
......@@ -13,8 +13,8 @@ enum {
#define RUN_COMMAND_NO_STDIO 1
#define RUN_GIT_CMD 2 /*If this is to be git sub-command */
int run_command_v_opt(int argc, const char **argv, int opt);
int run_command_v(int argc, const char **argv);
int run_command_v_opt(const char **argv, int opt);
int run_command_v(const char **argv);
int run_command(const char *cmd, ...);
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册