diff options
Diffstat (limited to '')
| -rw-r--r-- | src/engine-gpg.c | 21 | 
1 files changed, 15 insertions, 6 deletions
| diff --git a/src/engine-gpg.c b/src/engine-gpg.c index cc249e7b..6954b596 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -1899,12 +1899,18 @@ gpg_decrypt (void *engine,      }    else      { +      const char *output = gpgme_data_get_file_name (plain);        if (!err)          err = add_arg (gpg, "--output"); -      if (!err) -        err = add_arg (gpg, "-"); -      if (!err) -        err = add_data (gpg, plain, 1, 1); +      if (!err && output) +        err = add_arg (gpg, output); +      else +        { +          if (!err) +            err = add_arg (gpg, "-"); +          if (!err) +            err = add_data (gpg, plain, 1, 1); +        }        if (!err)          err = add_input_size_hint (gpg, ciph);        if (!err) @@ -3768,9 +3774,12 @@ gpg_verify (void *engine, gpgme_verify_flags_t flags, gpgme_data_t sig,    else if (plaintext)      {        /* Normal or cleartext signature.  */ +      const char *output = gpgme_data_get_file_name (plaintext);        err = add_arg (gpg, "--output"); -      if (!err) -	err = add_data (gpg, plaintext, -1, 1); +      if (!err && output) +        err = add_arg (gpg, output); +      else if (!err) +        err = add_data (gpg, plaintext, -1, 1);        if (!err)          err = add_input_size_hint (gpg, sig);        if (!err) | 
