annotate: use argv_array
authorRené Scharfe <l.s.r@web.de>
Wed, 16 Jul 2014 08:51:33 +0000 (10:51 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 16 Jul 2014 18:10:11 +0000 (11:10 -0700)
Simplify the code and get rid of some magic constants by using
argv_array to build the argument list for cmd_blame. Be lazy and let
the OS release our allocated memory, as before.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/annotate.c
index fc43eed36b55e4966796490b8c0a02fae790229c..da413ae0d178b53d6b1e6c193577c23923255245 100644 (file)
@@ -5,20 +5,18 @@
  */
 #include "git-compat-util.h"
 #include "builtin.h"
+#include "argv-array.h"
 
 int cmd_annotate(int argc, const char **argv, const char *prefix)
 {
-       const char **nargv;
+       struct argv_array args = ARGV_ARRAY_INIT;
        int i;
-       nargv = xmalloc(sizeof(char *) * (argc + 2));
 
-       nargv[0] = "annotate";
-       nargv[1] = "-c";
+       argv_array_pushl(&args, "annotate", "-c", NULL);
 
        for (i = 1; i < argc; i++) {
-               nargv[i+1] = argv[i];
+               argv_array_push(&args, argv[i]);
        }
-       nargv[argc + 1] = NULL;
 
-       return cmd_blame(argc + 1, nargv, prefix);
+       return cmd_blame(args.argc, args.argv, prefix);
 }