diff options
| author | Werner Koch <[email protected]> | 2001-01-30 17:36:03 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2001-01-30 17:36:03 +0000 | 
| commit | 6e9b15d7ed5ee3d5340f2d9bb2886caeac1883ae (patch) | |
| tree | 690316e070d47273c95211a33daab68f00904fad | |
| parent | slash/backslash conversion (diff) | |
| download | gpgme-6e9b15d7ed5ee3d5340f2d9bb2886caeac1883ae.tar.gz gpgme-6e9b15d7ed5ee3d5340f2d9bb2886caeac1883ae.zip | |
Fixed version string and W32 spawn function
| -rw-r--r-- | gpgme/ChangeLog | 4 | ||||
| -rw-r--r-- | gpgme/version.c | 33 | ||||
| -rw-r--r-- | gpgme/w32-io.c | 4 | ||||
| -rw-r--r-- | gpgme/w32-util.c | 6 | 
4 files changed, 38 insertions, 9 deletions
| diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index 0f704a5a..2b8c2370 100644 --- a/gpgme/ChangeLog +++ b/gpgme/ChangeLog @@ -1,5 +1,9 @@  2001-01-30  Werner Koch  <[email protected]> +	* w32-io.c (_gpgme_io_spawn): Use the supplied path arg. + +	* version.c (get_engine_info): Return better error information. +  	* posix-util.c, w32-util.c: New.  	(_gpgme_get_gpg_path): New, suggested by Jan-Oliver.  	* rungpg.c (_gpgme_gpg_spawn): Use new function to get GPG's path. diff --git a/gpgme/version.c b/gpgme/version.c index f1c83970..6013d27d 100644 --- a/gpgme/version.c +++ b/gpgme/version.c @@ -219,11 +219,13 @@ get_engine_info (void)      const char *engine_info =NULL;      GpgmeCtx c = NULL;      GpgmeError err = 0; +    const char *path = NULL;      /* FIXME: make sure that only one instance does run */      if (engine_info)          goto leave; +    path = _gpgme_get_gpg_path ();      err = gpgme_new (&c);      if (err)           goto leave; @@ -250,15 +252,17 @@ get_engine_info (void)          fmt = "<GnupgInfo>\n"                " <engine>\n"                "  <version>%s</version>\n" +              "  <path>%s</path>\n"                " </engine>\n"                "</GnupgInfo>\n";          /*(yes, I know that we allocating 2 extra bytes)*/ -        p = xtrymalloc ( strlen(fmt) + strlen (tmp_engine_version) + 1); +        p = xtrymalloc ( strlen(fmt) + strlen(path) +                         + strlen (tmp_engine_version) + 1);          if (!p) {              err = mk_error (Out_Of_Core);              goto leave;          } -        sprintf (p, fmt, tmp_engine_version); +        sprintf (p, fmt, tmp_engine_version, path);          engine_info = p;          xfree (tmp_engine_version); tmp_engine_version = NULL;      } @@ -267,8 +271,29 @@ get_engine_info (void)      }   leave: -    if (err) -        engine_info = "<GnupgInfo>\n<error>No engine</error>\n</GnupgInfo>\n"; +    if (err) { +        const char *fmt; +        const char *errstr = gpgme_strerror (err); +        char *p; + +        fmt = "<GnupgInfo>\n" +            " <engine>\n" +            "  <error>%s</error>\n"                 +            "  <path>%s</path>\n" +            " </engine>\n" +            "</GnupgInfo>\n"; + +        p = xtrymalloc ( strlen(fmt) + strlen(errstr) + strlen(path) + 1); +        if (p) {  +            sprintf (p, fmt, errstr, path); +            engine_info = p; +        } +        else { +            engine_info = "<GnupgInfo>\n" +                          "  <error>Out of core</error>\n" +                          "</GnupgInfo>\n"; +        } +    }      gpgme_release ( c );      return engine_info;  } diff --git a/gpgme/w32-io.c b/gpgme/w32-io.c index 1e67a642..8c19d818 100644 --- a/gpgme/w32-io.c +++ b/gpgme/w32-io.c @@ -484,9 +484,9 @@ _gpgme_io_spawn ( const char *path, char **argv,          }      } -    DEBUG1 ("CreateProcess, args=`%s'", arg_string); +    DEBUG2 ("CreateProcess, path=`%s' args=`%s'", path, arg_string);      cr_flags |= CREATE_SUSPENDED;  -    if ( !CreateProcessA (GPG_PATH, +    if ( !CreateProcessA (path,                            arg_string,                            &sec_attr,     /* process security attributes */                            &sec_attr,     /* thread security attributes */ diff --git a/gpgme/w32-util.c b/gpgme/w32-util.c index e8428577..000ce048 100644 --- a/gpgme/w32-util.c +++ b/gpgme/w32-util.c @@ -99,10 +99,10 @@ _gpgme_get_gpg_path (void)          if (gpg_program) {              int i; -            DEBUG1 ("found gpgProgram in registry: `%s'", gpgProgram ); -            for (i=0; gpg_program[i]; s++) { +            DEBUG1 ("found gpgProgram in registry: `%s'", gpg_program ); +            for (i=0; gpg_program[i]; i++) {                  if (gpg_program[i] == '/') -                    gpg_program[i] == '\\'; +                    gpg_program[i] = '\\';              }          }          else { | 
