aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2023-01-23 11:17:22 +0000
committerIngo Klöcker <[email protected]>2023-01-23 11:17:22 +0000
commit419adf41afa40e5b34f646f2cb16d8aebda20048 (patch)
tree36bc59215f41a551f6dfeecd3fe5b4c975969c35 /src
parentdoc: Update NEWS and API documentation (diff)
downloadgpgme-419adf41afa40e5b34f646f2cb16d8aebda20048.tar.gz
gpgme-419adf41afa40e5b34f646f2cb16d8aebda20048.zip
core: Allow setting the base directory when creating an archive
* src/engine-gpg.c (gpg_encrypt, gpg_encrypt_sign, gpg_sign): Pass file name set in data with --directory option to gpgtar. * tests/run-encrypt.c (show_usage): New option --directory. (main): Parse new option. Set file name of input data to option value. * tests/run-sign.c (show_usage): New option --directory. (main): Parse new option. Set file name of input data to option value. -- GnuPG-bug-id: 6342
Diffstat (limited to 'src')
-rw-r--r--src/engine-gpg.c46
1 files changed, 30 insertions, 16 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c
index 16dfcc48..06eb3e18 100644
--- a/src/engine-gpg.c
+++ b/src/engine-gpg.c
@@ -2369,13 +2369,15 @@ gpg_encrypt (void *engine, gpgme_key_t recp[], const char *recpstring,
err = add_arg (gpg, "-");
if (!err)
err = add_data (gpg, ciph, 1, 1);
- if (gpgme_data_get_file_name (plain))
- {
- if (!err)
- err = add_gpg_arg_with_value (gpg, "--set-filename=", gpgme_data_get_file_name (plain), 0);
- }
if (gpg->flags.use_gpgtar)
{
+ const char *file_name = gpgme_data_get_file_name (plain);
+ if (!err && file_name)
+ {
+ err = add_arg (gpg, "--directory");
+ if (!err)
+ err = add_arg (gpg, file_name);
+ }
if (!err)
err = add_arg (gpg, "--files-from");
if (!err)
@@ -2390,6 +2392,9 @@ gpg_encrypt (void *engine, gpgme_key_t recp[], const char *recpstring,
}
else
{
+ const char *file_name = gpgme_data_get_file_name (plain);
+ if (!err && file_name)
+ err = add_gpg_arg_with_value (gpg, "--set-filename=", file_name, 0);
if (!err)
err = add_input_size_hint (gpg, plain);
if (!err)
@@ -2476,13 +2481,15 @@ gpg_encrypt_sign (void *engine, gpgme_key_t recp[],
err = add_arg (gpg, "-");
if (!err)
err = add_data (gpg, ciph, 1, 1);
- if (gpgme_data_get_file_name (plain))
- {
- if (!err)
- err = add_gpg_arg_with_value (gpg, "--set-filename=", gpgme_data_get_file_name (plain), 0);
- }
if (gpg->flags.use_gpgtar)
{
+ const char *file_name = gpgme_data_get_file_name (plain);
+ if (!err && file_name)
+ {
+ err = add_arg (gpg, "--directory");
+ if (!err)
+ err = add_arg (gpg, file_name);
+ }
if (!err)
err = add_arg (gpg, "--files-from");
if (!err)
@@ -2497,6 +2504,9 @@ gpg_encrypt_sign (void *engine, gpgme_key_t recp[],
}
else
{
+ const char *file_name = gpgme_data_get_file_name (plain);
+ if (!err && file_name)
+ err = add_gpg_arg_with_value (gpg, "--set-filename=", file_name, 0);
if (!err)
err = add_input_size_hint (gpg, plain);
if (!err)
@@ -3584,15 +3594,16 @@ gpg_sign (void *engine, gpgme_data_t in, gpgme_data_t out,
if (!err)
err = append_args_from_sig_notations (gpg, ctx, NOTATION_FLAG_SIG);
- if (gpgme_data_get_file_name (in))
- {
- if (!err)
- err = add_gpg_arg_with_value (gpg, "--set-filename=", gpgme_data_get_file_name (in), 0);
- }
-
/* Tell the gpg object about the data. */
if (gpg->flags.use_gpgtar)
{
+ const char *file_name = gpgme_data_get_file_name (in);
+ if (!err && file_name)
+ {
+ err = add_arg (gpg, "--directory");
+ if (!err)
+ err = add_arg (gpg, file_name);
+ }
if (!err)
err = add_arg (gpg, "--files-from");
if (!err)
@@ -3607,6 +3618,9 @@ gpg_sign (void *engine, gpgme_data_t in, gpgme_data_t out,
}
else
{
+ const char *file_name = gpgme_data_get_file_name (in);
+ if (!err && file_name)
+ err = add_gpg_arg_with_value (gpg, "--set-filename=", file_name, 0);
if (!err)
err = add_input_size_hint (gpg, in);
if (!err)