submodule: use argv_array instead of hand-building arrays
authorJens Lehmann <Jens.Lehmann@web.de>
Sat, 1 Sep 2012 15:27:06 +0000 (17:27 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 3 Sep 2012 04:13:50 +0000 (21:13 -0700)
commit50d89ad6542c8acafefa6d42f8b42dfa9b8fafe1
tree15fdf8cce305fb0f82deb78c820f34c341a732f1
parent85556d4e37db4c8ed88c68a602f6f85054996bea
submodule: use argv_array instead of hand-building arrays

fetch_populated_submodules() allocates the full argv array it uses to
recurse into the submodules from the number of given options plus the six
argv values it is going to add. It then initializes it with those values
which won't change during the iteration and copies the given options into
it. Inside the loop the two argv values different for each submodule get
replaced with those currently valid.

However, this technique is brittle and error-prone (as the comment to
explain the magic number 6 indicates), so let's replace it with an
argv_array. Instead of replacing the argv values, push them to the
argv_array just before the run_command() call (including the option
separating them) and pop them from the argv_array right after that.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fetch.c
submodule.c
submodule.h