Code

Trace and quote with argv: get rid of unneeded count argument.
authorChristian Couder <chriscool@tuxfamily.org>
Mon, 3 Dec 2007 04:51:50 +0000 (05:51 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 4 Dec 2007 06:11:53 +0000 (22:11 -0800)
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: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-rev-parse.c
cache.h
exec_cmd.c
git.c
quote.c
quote.h
trace.c

index d1038a0e66edf728fbba9476b3b9f443647c612c..20d1789e0161ed3d2d18cec94b1915f518a5d662 100644 (file)
@@ -327,7 +327,7 @@ static int cmd_parseopt(int argc, const char **argv, const char *prefix)
                             keep_dashdash ? PARSE_OPT_KEEP_DASHDASH : 0);
 
        strbuf_addf(&parsed, " --");
-       sq_quote_argv(&parsed, argv, argc, 0);
+       sq_quote_argv(&parsed, argv, 0);
        puts(parsed.buf);
        return 0;
 }
diff --git a/cache.h b/cache.h
index d0e7a71c6e61e56c841f9670266a2e5d61211158..ed8be062990410875b6a1a4cf8663bd5b8a69879 100644 (file)
--- a/cache.h
+++ b/cache.h
@@ -620,7 +620,7 @@ extern void alloc_report(void);
 
 /* trace.c */
 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 */
 /* returns 1 if *dst was used */
index 2d0a75851284392aa8ae44bc486df6a034d0af13..e189caca629262334541ea8313d2931b06e67adf 100644 (file)
@@ -80,7 +80,7 @@ int execv_git_cmd(const char **argv)
        tmp = argv[0];
        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(cmd.buf, (char **)argv);
diff --git a/git.c b/git.c
index f510fe37069a5b11dfef445f862da9f52337d172..c4877a9714c227a1af77cfa84caa2230eb30bf9d 100644 (file)
--- a/git.c
+++ b/git.c
@@ -169,7 +169,7 @@ static int handle_alias(int *argcp, const char ***argv)
 
                                strbuf_init(&buf, PATH_MAX);
                                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);
                                alias_string = buf.buf;
                        }
@@ -198,7 +198,7 @@ static int handle_alias(int *argcp, const char ***argv)
                if (!strcmp(alias_command, new_argv[0]))
                        die("recursive alias: %s", alias_command);
 
-               trace_argv_printf(new_argv, count,
+               trace_argv_printf(new_argv,
                                  "trace: alias expansion: %s =>",
                                  alias_command);
 
@@ -252,7 +252,7 @@ static int run_command(struct cmd_struct *p, int argc, const char **argv)
        if (p->option & NEED_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);
        if (status)
diff --git a/quote.c b/quote.c
index 04557833a561b4613a511af8fb9f0fb18b36b2fa..6986b4420f66e1f01cd4517d35ce9adc300eaa8b 100644 (file)
--- a/quote.c
+++ b/quote.c
@@ -56,20 +56,13 @@ void sq_quote_print(FILE *stream, const char *src)
        fputc('\'', stream);
 }
 
-void sq_quote_argv(struct strbuf *dst, const char** argv, int count,
-                   size_t maxlen)
+void sq_quote_argv(struct strbuf *dst, const char** argv, size_t maxlen)
 {
        int i;
 
-       /* Count argv if needed. */
-       if (count < 0) {
-               for (count = 0; argv[count]; count++)
-                       ; /* just counting */
-       }
-
        /* Copy into destination buffer. */
-       strbuf_grow(dst, 32 * count);
-       for (i = 0; i < count; ++i) {
+       strbuf_grow(dst, 255);
+       for (i = 0; argv[i]; ++i) {
                strbuf_addch(dst, ' ');
                sq_quote_buf(dst, argv[i]);
                if (maxlen && dst->len > maxlen)
diff --git a/quote.h b/quote.h
index 42879909983679f31b9ac6d7e5bfc330d8167a91..ab7596f57b7f23899ef1bbb8d0c7ba6ec5baf12f 100644 (file)
--- a/quote.h
+++ b/quote.h
@@ -31,8 +31,7 @@
 extern void sq_quote_print(FILE *stream, 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,
-                          size_t maxlen);
+extern void sq_quote_argv(struct strbuf *, const char **argv, size_t maxlen);
 
 /* This unwraps what sq_quote() produces in place, but returns
  * NULL if the input does not look like what sq_quote would have
diff --git a/trace.c b/trace.c
index d3d1b6d55e86aab94ddb9712f5eee743b3bfa9a8..4713f9165c54405d51e81c3e90847120ee907e5d 100644 (file)
--- a/trace.c
+++ b/trace.c
@@ -93,7 +93,7 @@ void trace_printf(const char *fmt, ...)
                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;
        va_list ap;
@@ -117,7 +117,7 @@ void trace_argv_printf(const char **argv, int count, const char *fmt, ...)
        }
        strbuf_setlen(&buf, len);
 
-       sq_quote_argv(&buf, argv, count, 0);
+       sq_quote_argv(&buf, argv, 0);
        strbuf_addch(&buf, '\n');
        write_or_whine_pipe(fd, buf.buf, buf.len, err_msg);
        strbuf_release(&buf);