refactor argv_array into generic code
authorJeff King <peff@peff.net>
Tue, 13 Sep 2011 21:57:57 +0000 (17:57 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 14 Sep 2011 18:56:36 +0000 (11:56 -0700)
The submodule code recently grew generic code to build a
dynamic argv array. Many other parts of the code can reuse
this, too, so let's make it generically available.

There are two enhancements not found in the original code:

1. We now handle the NULL-termination invariant properly,
even when no strings have been pushed (before, you
could have an empty, NULL argv). This was not a problem
for the submodule code, which always pushed at least
one argument, but was not sufficiently safe for
generic code.

2. There is a formatted variant of the "push" function.
This is a convenience function which was not needed by
the submodule code, but will make it easier to port
other users to the new code.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
No differences found