diff options
author | Justus Winter <[email protected]> | 2015-11-25 17:29:22 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2015-11-25 17:29:22 +0000 |
commit | 127aba9a4d6c1aabb4a18a74b16d3bddc6eb5c54 (patch) | |
tree | acadf0ca51c1fdad8ea62e0e3864905f2968d04b /tools/gpgtar-extract.c | |
parent | tools/gpgtar: Handle '--gpg' argument. (diff) | |
download | gnupg-127aba9a4d6c1aabb4a18a74b16d3bddc6eb5c54.tar.gz gnupg-127aba9a4d6c1aabb4a18a74b16d3bddc6eb5c54.zip |
tools/gpgtar: Handle '--directory' argument.
* tools/gpgtar-extract.c (gpgtar_extract): Only generate a directory
name if none is given via arguments.
* tools/gpgtar.c (enum cmd_and_opt_values): New constant.
(opts): Add argument.
(main): Parse argument.
* tools/gpgtar.h (opt): New field 'directory'.
Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to '')
-rw-r--r-- | tools/gpgtar-extract.c | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/tools/gpgtar-extract.c b/tools/gpgtar-extract.c index 92346b0e0..fa2f3626a 100644 --- a/tools/gpgtar-extract.c +++ b/tools/gpgtar-extract.c @@ -312,31 +312,36 @@ gpgtar_extract (const char *filename, int decrypt) goto leave; } - if (filename) - { - dirprefix = strrchr (filename, '/'); - if (dirprefix) - dirprefix++; - else - dirprefix = filename; - } - else if (opt.filename) + if (opt.directory) + dirname = xtrystrdup (opt.directory); + else { - dirprefix = strrchr (opt.filename, '/'); - if (dirprefix) - dirprefix++; - else - dirprefix = opt.filename; - } + if (filename) + { + dirprefix = strrchr (filename, '/'); + if (dirprefix) + dirprefix++; + else + dirprefix = filename; + } + else if (opt.filename) + { + dirprefix = strrchr (opt.filename, '/'); + if (dirprefix) + dirprefix++; + else + dirprefix = opt.filename; + } - if (!dirprefix || !*dirprefix) - dirprefix = "GPGARCH"; + if (!dirprefix || !*dirprefix) + dirprefix = "GPGARCH"; - dirname = create_directory (dirprefix); - if (!dirname) - { - err = gpg_error (GPG_ERR_GENERAL); - goto leave; + dirname = create_directory (dirprefix); + if (!dirname) + { + err = gpg_error (GPG_ERR_GENERAL); + goto leave; + } } if (opt.verbose) |