gpg-interface: use child_process.args

Our argv allocations are relatively straightforward, but
this avoids us having to manually keep the count up to date
(or create new to-be-replaced slots in the declaration) when
we add new arguments.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2016-06-17 19:38:35 -04:00 коммит произвёл Junio C Hamano
Родитель 05219a1276
Коммит aedb5dc343
1 изменённых файлов: 9 добавлений и 10 удалений

Просмотреть файл

@ -150,17 +150,15 @@ const char *get_signing_key(void)
int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *signing_key)
{
struct child_process gpg = CHILD_PROCESS_INIT;
const char *args[4];
ssize_t len;
size_t i, j, bottom;
gpg.argv = args;
gpg.in = -1;
gpg.out = -1;
args[0] = gpg_program;
args[1] = "-bsau";
args[2] = signing_key;
args[3] = NULL;
argv_array_pushl(&gpg.args,
gpg_program,
"-bsau", signing_key,
NULL);
if (start_command(&gpg))
return error(_("could not run gpg."));
@ -210,13 +208,11 @@ int verify_signed_buffer(const char *payload, size_t payload_size,
struct strbuf *gpg_output, struct strbuf *gpg_status)
{
struct child_process gpg = CHILD_PROCESS_INIT;
const char *args_gpg[] = {NULL, "--status-fd=1", "--verify", "FILE", "-", NULL};
char path[PATH_MAX];
int fd, ret;
struct strbuf buf = STRBUF_INIT;
struct strbuf *pbuf = &buf;
args_gpg[0] = gpg_program;
fd = git_mkstemp(path, PATH_MAX, ".git_vtag_tmpXXXXXX");
if (fd < 0)
return error_errno(_("could not create temporary file '%s'"), path);
@ -224,12 +220,15 @@ int verify_signed_buffer(const char *payload, size_t payload_size,
return error_errno(_("failed writing detached signature to '%s'"), path);
close(fd);
gpg.argv = args_gpg;
argv_array_pushl(&gpg.args,
gpg_program,
"--status-fd=1",
"--verify", path, "-",
NULL);
gpg.in = -1;
gpg.out = -1;
if (gpg_output)
gpg.err = -1;
args_gpg[3] = path;
if (start_command(&gpg)) {
unlink(path);
return error(_("could not run gpg."));