diff options
author | Werner Koch <[email protected]> | 2016-05-24 13:54:48 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2016-05-24 14:07:09 +0000 |
commit | 91bc7833836f19256d56984c94cacf44853ff5c8 (patch) | |
tree | 60e051b155da3da800f797ba683753550bddb5b4 /tools/gpgtar-list.c | |
parent | common: Add simple dynamic array function. (diff) | |
download | gnupg-91bc7833836f19256d56984c94cacf44853ff5c8.tar.gz gnupg-91bc7833836f19256d56984c94cacf44853ff5c8.zip |
gpgtar: Simplify code by using ccparray.
* tools/gpgtar-create.c (gpgtar_create): Use ccparray functions.
* tools/gpgtar-extract.c (gpgtar_extract): Ditto.
* tools/gpgtar-list.c (gpgtar_list): Ditto.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'tools/gpgtar-list.c')
-rw-r--r-- | tools/gpgtar-list.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/tools/gpgtar-list.c b/tools/gpgtar-list.c index 25c70d2a5..930712a7f 100644 --- a/tools/gpgtar-list.c +++ b/tools/gpgtar-list.c @@ -27,6 +27,7 @@ #include "i18n.h" #include "gpgtar.h" #include "../common/exectool.h" +#include "../common/ccparray.h" @@ -299,8 +300,8 @@ gpgtar_list (const char *filename, int decrypt) if (decrypt) { - int i; strlist_t arg; + ccparray_t ccp; const char **argv; cipher_stream = stream; @@ -311,19 +312,19 @@ gpgtar_list (const char *filename, int decrypt) goto leave; } - argv = xtrycalloc (strlist_length (opt.gpg_arguments) + 2, - sizeof *argv); - if (argv == NULL) + ccparray_init (&ccp, 0); + + ccparray_put (&ccp, "--decrypt"); + for (arg = opt.gpg_arguments; arg; arg = arg->next) + ccparray_put (&ccp, arg->d); + + ccparray_put (&ccp, NULL); + argv = ccparray_get (&ccp, NULL); + if (!argv) { err = gpg_error_from_syserror (); goto leave; } - i = 0; - argv[i++] = "--decrypt"; - for (arg = opt.gpg_arguments; arg; arg = arg->next) - argv[i++] = arg->d; - argv[i++] = NULL; - assert (i == strlist_length (opt.gpg_arguments) + 2); err = gnupg_exec_tool_stream (opt.gpg_program, argv, cipher_stream, stream); |