author | Jeff King <peff@peff.net> | |
Tue, 13 Sep 2011 21:57:57 +0000 (17:57 -0400) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 14 Sep 2011 18:56:36 +0000 (11:56 -0700) | ||
commit | c1189caeaf726e6c16c8bca7da8bf0b243da478d | |
tree | 8d8feeeef2e8584c11875da8dde2d04f334cb56b | tree | snapshot |
parent | 7878b07c0d86d05fa505f2464557c69addcc2c05 | commit | diff |
refactor argv_array into generic code
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>
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>
Documentation/technical/api-argv-array.txt | [new file with mode: 0644] | blob |
Makefile | diff | blob | history | |
argv-array.c | [new file with mode: 0644] | blob |
argv-array.h | [new file with mode: 0644] | blob |
submodule.c | diff | blob | history |