{"thread":{"id":"6165","subject":"[PATCH 1/3] Remove unnecessary argc parameter from run_command_v.","startedAt":"2006-12-31T02:55:15Z","lastAt":"2006-12-31T02:55:15Z","messageCount":1,"participants":["Shawn O. Pearce"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"30538","messageId":"20061231025515.GA5530@spearce.org","threadId":"6165","inReplyTo":null,"subject":"[PATCH 1/3] Remove unnecessary argc parameter from run_command_v.","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2006-12-31T02:55:15Z","receivedAt":"2006-12-31T02:55:15Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"The argc parameter is never used by the run_command_v family of\nfunctions.  Instead they require that the passed argv[] be NULL\nterminated so they can rely on the operating system's execvp\nfunction to correctly pass the arguments to the new process.\n\nMaking the caller pass the argc is just confusing, as the caller\ncould be mislead into believing that the argc might take precendece\nover the argv, or that the argv does not need to be NULL terminated.\nSo goodbye argc.  Don't come back.\n\nSigned-off-by: Shawn O. Pearce <spearce@spearce.org>\n---\n builtin-push.c |    2 +-\n receive-pack.c |    4 ++--\n run-command.c  |    8 ++++----\n run-command.h  |    4 ++--\n 4 files changed, 9 insertions(+), 9 deletions(-)\n\ndiff --git a/builtin-push.c b/builtin-push.c\nindex b7412e8..7a3d2bb 100644\n--- a/builtin-push.c\n+++ b/builtin-push.c\n@@ -275,7 +275,7 @@ static int do_push(const char *repo)\n \t\targv[dest_argc] = NULL;\n \t\tif (verbose)\n \t\t\tfprintf(stderr, \"Pushing to %s\\n\", dest);\n-\t\terr = run_command_v(argc, argv);\n+\t\terr = run_command_v(argv);\n \t\tif (!err)\n \t\t\tcontinue;\n \t\tswitch (err) {\ndiff --git a/receive-pack.c b/receive-pack.c\nindex eea7e48..af05a61 100644\n--- a/receive-pack.c\n+++ b/receive-pack.c\n@@ -187,7 +187,7 @@ static void run_update_post_hook(struct command *cmd)\n \t\targc++;\n \t}\n \targv[argc] = NULL;\n-\trun_command_v_opt(argc, argv, RUN_COMMAND_NO_STDIO);\n+\trun_command_v_opt(argv, RUN_COMMAND_NO_STDIO);\n }\n \n /*\n@@ -283,7 +283,7 @@ static const char *unpack(void)\n \t\tunpacker[0] = \"unpack-objects\";\n \t\tunpacker[1] = hdr_arg;\n \t\tunpacker[2] = NULL;\n-\t\tcode = run_command_v_opt(1, unpacker, RUN_GIT_CMD);\n+\t\tcode = run_command_v_opt(unpacker, RUN_GIT_CMD);\n \t\tswitch (code) {\n \t\tcase 0:\n \t\t\treturn NULL;\ndiff --git a/run-command.c b/run-command.c\nindex 492ad3e..d0330c3 100644\n--- a/run-command.c\n+++ b/run-command.c\n@@ -2,7 +2,7 @@\n #include \"run-command.h\"\n #include \"exec_cmd.h\"\n \n-int run_command_v_opt(int argc, const char **argv, int flags)\n+int run_command_v_opt(const char **argv, int flags)\n {\n \tpid_t pid = fork();\n \n@@ -46,9 +46,9 @@ int run_command_v_opt(int argc, const char **argv, int flags)\n \t}\n }\n \n-int run_command_v(int argc, const char **argv)\n+int run_command_v(const char **argv)\n {\n-\treturn run_command_v_opt(argc, argv, 0);\n+\treturn run_command_v_opt(argv, 0);\n }\n \n int run_command(const char *cmd, ...)\n@@ -69,5 +69,5 @@ int run_command(const char *cmd, ...)\n \tva_end(param);\n \tif (MAX_RUN_COMMAND_ARGS <= argc)\n \t\treturn error(\"too many args to run %s\", cmd);\n-\treturn run_command_v_opt(argc, argv, 0);\n+\treturn run_command_v_opt(argv, 0);\n }\ndiff --git a/run-command.h b/run-command.h\nindex 70b477a..82a0861 100644\n--- a/run-command.h\n+++ b/run-command.h\n@@ -13,8 +13,8 @@ enum {\n \n #define RUN_COMMAND_NO_STDIO 1\n #define RUN_GIT_CMD\t     2\t/*If this is to be git sub-command */\n-int run_command_v_opt(int argc, const char **argv, int opt);\n-int run_command_v(int argc, const char **argv);\n+int run_command_v_opt(const char **argv, int opt);\n+int run_command_v(const char **argv);\n int run_command(const char *cmd, ...);\n \n #endif\n-- \n1.5.0.rc0.g6bb1\n"}]}