diff options
Diffstat (limited to 'src/engine-gpgsm.c')
| -rw-r--r-- | src/engine-gpgsm.c | 17 | 
1 files changed, 8 insertions, 9 deletions
| diff --git a/src/engine-gpgsm.c b/src/engine-gpgsm.c index 24cd34d9..6bcc0952 100644 --- a/src/engine-gpgsm.c +++ b/src/engine-gpgsm.c @@ -239,6 +239,7 @@ gpgsm_new (void **engine, const char *file_name, const char *home_dir)  {    gpgme_error_t err = 0;    engine_gpgsm_t gpgsm; +  const char *pgmname;    const char *argv[5];    int argc;  #if !USE_DESCRIPTOR_PASSING @@ -321,8 +322,10 @@ gpgsm_new (void **engine, const char *file_name, const char *home_dir)    child_fds[3] = -1;  #endif +  pgmname = file_name ? file_name : _gpgme_get_default_gpgsm_name (); +    argc = 0; -  argv[argc++] = "gpgsm"; +  argv[argc++] = _gpgme_get_basename (pgmname);    if (home_dir)      {        argv[argc++] = "--homedir"; @@ -339,10 +342,8 @@ gpgsm_new (void **engine, const char *file_name, const char *home_dir)    assuan_ctx_set_system_hooks (gpgsm->assuan_ctx, &_gpgme_assuan_system_hooks);  #if USE_DESCRIPTOR_PASSING -  err = assuan_pipe_connect -    (gpgsm->assuan_ctx, -     file_name ? file_name : _gpgme_get_default_gpgsm_name (), -     argv, NULL, NULL, NULL, ASSUAN_PIPE_CONNECT_FDPASSING); +  err = assuan_pipe_connect (gpgsm->assuan_ctx, pgmname, argv, +                             NULL, NULL, NULL, ASSUAN_PIPE_CONNECT_FDPASSING);  #else    {      assuan_fd_t achild_fds[4]; @@ -352,10 +353,8 @@ gpgsm_new (void **engine, const char *file_name, const char *home_dir)      for (i = 0; i < 4; i++)        achild_fds[i] = (assuan_fd_t) child_fds[i]; -    err = assuan_pipe_connect -      (gpgsm->assuan_ctx, -       file_name ? file_name : _gpgme_get_default_gpgsm_name (), -       argv, achild_fds, NULL, NULL, 0); +    err = assuan_pipe_connect (gpgsm->assuan_ctx, pgmname, argv, +                               achild_fds, NULL, NULL, 0);      /* For now... */      for (i = 0; i < 4; i++) | 
