提交 b319ce4c 编写于 作者: C Christian Couder 提交者: Junio C Hamano

Trace and quote with argv: get rid of unneeded count argument.

Now that str_buf takes care of all the allocations, there is
no more gain to pass an argument count.

So this patch removes the "count" argument from:
	- "sq_quote_argv"
	- "trace_argv_printf"
and all the callers.
Signed-off-by: NChristian Couder <chriscool@tuxfamily.org>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 41650765
...@@ -327,7 +327,7 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix) ...@@ -327,7 +327,7 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix)
keep_dashdash ? PARSE_OPT_KEEP_DASHDASH : 0); keep_dashdash ? PARSE_OPT_KEEP_DASHDASH : 0);
strbuf_addf(&parsed, " --"); strbuf_addf(&parsed, " --");
sq_quote_argv(&parsed, argv, argc, 0); sq_quote_argv(&parsed, argv, 0);
puts(parsed.buf); puts(parsed.buf);
return 0; return 0;
} }
......
...@@ -620,7 +620,7 @@ extern void alloc_report(void); ...@@ -620,7 +620,7 @@ extern void alloc_report(void);
/* trace.c */ /* trace.c */
extern void trace_printf(const char *format, ...); extern void trace_printf(const char *format, ...);
extern void trace_argv_printf(const char **argv, int count, const char *format, ...); extern void trace_argv_printf(const char **argv, const char *format, ...);
/* convert.c */ /* convert.c */
/* returns 1 if *dst was used */ /* returns 1 if *dst was used */
......
...@@ -80,7 +80,7 @@ int execv_git_cmd(const char **argv) ...@@ -80,7 +80,7 @@ int execv_git_cmd(const char **argv)
tmp = argv[0]; tmp = argv[0];
argv[0] = cmd.buf; argv[0] = cmd.buf;
trace_argv_printf(argv, -1, "trace: exec:"); trace_argv_printf(argv, "trace: exec:");
/* execvp() can only ever return if it fails */ /* execvp() can only ever return if it fails */
execvp(cmd.buf, (char **)argv); execvp(cmd.buf, (char **)argv);
......
...@@ -169,7 +169,7 @@ static int handle_alias(int *argcp, const char ***argv) ...@@ -169,7 +169,7 @@ static int handle_alias(int *argcp, const char ***argv)
strbuf_init(&buf, PATH_MAX); strbuf_init(&buf, PATH_MAX);
strbuf_addstr(&buf, alias_string); strbuf_addstr(&buf, alias_string);
sq_quote_argv(&buf, (*argv) + 1, *argcp - 1, PATH_MAX); sq_quote_argv(&buf, (*argv) + 1, PATH_MAX);
free(alias_string); free(alias_string);
alias_string = buf.buf; alias_string = buf.buf;
} }
...@@ -198,7 +198,7 @@ static int handle_alias(int *argcp, const char ***argv) ...@@ -198,7 +198,7 @@ static int handle_alias(int *argcp, const char ***argv)
if (!strcmp(alias_command, new_argv[0])) if (!strcmp(alias_command, new_argv[0]))
die("recursive alias: %s", alias_command); die("recursive alias: %s", alias_command);
trace_argv_printf(new_argv, count, trace_argv_printf(new_argv,
"trace: alias expansion: %s =>", "trace: alias expansion: %s =>",
alias_command); alias_command);
...@@ -252,7 +252,7 @@ static int run_command(struct cmd_struct *p, int argc, const char **argv) ...@@ -252,7 +252,7 @@ static int run_command(struct cmd_struct *p, int argc, const char **argv)
if (p->option & NEED_WORK_TREE) if (p->option & NEED_WORK_TREE)
setup_work_tree(); setup_work_tree();
trace_argv_printf(argv, argc, "trace: built-in: git"); trace_argv_printf(argv, "trace: built-in: git");
status = p->fn(argc, argv, prefix); status = p->fn(argc, argv, prefix);
if (status) if (status)
......
...@@ -56,20 +56,13 @@ void sq_quote_print(FILE *stream, const char *src) ...@@ -56,20 +56,13 @@ void sq_quote_print(FILE *stream, const char *src)
fputc('\'', stream); fputc('\'', stream);
} }
void sq_quote_argv(struct strbuf *dst, const char** argv, int count, void sq_quote_argv(struct strbuf *dst, const char** argv, size_t maxlen)
size_t maxlen)
{ {
int i; int i;
/* Count argv if needed. */
if (count < 0) {
for (count = 0; argv[count]; count++)
; /* just counting */
}
/* Copy into destination buffer. */ /* Copy into destination buffer. */
strbuf_grow(dst, 32 * count); strbuf_grow(dst, 255);
for (i = 0; i < count; ++i) { for (i = 0; argv[i]; ++i) {
strbuf_addch(dst, ' '); strbuf_addch(dst, ' ');
sq_quote_buf(dst, argv[i]); sq_quote_buf(dst, argv[i]);
if (maxlen && dst->len > maxlen) if (maxlen && dst->len > maxlen)
......
...@@ -31,8 +31,7 @@ ...@@ -31,8 +31,7 @@
extern void sq_quote_print(FILE *stream, const char *src); extern void sq_quote_print(FILE *stream, const char *src);
extern void sq_quote_buf(struct strbuf *, const char *src); extern void sq_quote_buf(struct strbuf *, const char *src);
extern void sq_quote_argv(struct strbuf *, const char **argv, int count, extern void sq_quote_argv(struct strbuf *, const char **argv, size_t maxlen);
size_t maxlen);
/* This unwraps what sq_quote() produces in place, but returns /* This unwraps what sq_quote() produces in place, but returns
* NULL if the input does not look like what sq_quote would have * NULL if the input does not look like what sq_quote would have
......
...@@ -93,7 +93,7 @@ void trace_printf(const char *fmt, ...) ...@@ -93,7 +93,7 @@ void trace_printf(const char *fmt, ...)
close(fd); close(fd);
} }
void trace_argv_printf(const char **argv, int count, const char *fmt, ...) void trace_argv_printf(const char **argv, const char *fmt, ...)
{ {
struct strbuf buf; struct strbuf buf;
va_list ap; va_list ap;
...@@ -117,7 +117,7 @@ void trace_argv_printf(const char **argv, int count, const char *fmt, ...) ...@@ -117,7 +117,7 @@ void trace_argv_printf(const char **argv, int count, const char *fmt, ...)
} }
strbuf_setlen(&buf, len); strbuf_setlen(&buf, len);
sq_quote_argv(&buf, argv, count, 0); sq_quote_argv(&buf, argv, 0);
strbuf_addch(&buf, '\n'); strbuf_addch(&buf, '\n');
write_or_whine_pipe(fd, buf.buf, buf.len, err_msg); write_or_whine_pipe(fd, buf.buf, buf.len, err_msg);
strbuf_release(&buf); strbuf_release(&buf);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册