diff options
author | Werner Koch <[email protected]> | 2023-04-17 12:02:02 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2023-04-17 12:05:35 +0000 |
commit | 0c29119e061cbdcb7342380938a25af91290f1a0 (patch) | |
tree | aa6447e859b6c375bbc39054acfe13c597775272 /src/gpgme-w32spawn.c | |
parent | build: Update gpg-error.m4. (diff) | |
download | gpgme-0c29119e061cbdcb7342380938a25af91290f1a0.tar.gz gpgme-0c29119e061cbdcb7342380938a25af91290f1a0.zip |
core,w32: Fix invocation of gpgtar
* src/dirinfo.c (EXEEXT_S): New.
(get_gpgconf_item): Append ".exe" to gpg-wks-client and gpgtar.
* src/gpgme-w32spawn.c (mystderr): Add code to ease debugging.
Diffstat (limited to 'src/gpgme-w32spawn.c')
-rw-r--r-- | src/gpgme-w32spawn.c | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/src/gpgme-w32spawn.c b/src/gpgme-w32spawn.c index 64913b01..09dbea75 100644 --- a/src/gpgme-w32spawn.c +++ b/src/gpgme-w32spawn.c @@ -40,10 +40,18 @@ #include "priv-io.h" +/* #define DEBUG_TO_FILE 1 */ + /* Name of this program. */ #define PGM "gpgme-w32spawn" +#ifdef DEBUG_TO_FILE +static FILE *mystderr; +#else +#define mystderr stderr +#endif + static char * @@ -126,7 +134,7 @@ my_spawn (char **argv, struct spawn_fd_item_s *fd_list, unsigned int flags) i = 0; while (argv[i]) { - fprintf (stderr, PGM": argv[%2i] = %s\n", i, argv[i]); + fprintf (mystderr, PGM": argv[%2i] = %s\n", i, argv[i]); i++; } @@ -146,8 +154,6 @@ my_spawn (char **argv, struct spawn_fd_item_s *fd_list, unsigned int flags) si.hStdOutput = GetStdHandle (STD_OUTPUT_HANDLE); si.hStdError = GetStdHandle (STD_ERROR_HANDLE); - fprintf (stderr, PGM": spawning: %s\n", arg_string); - for (i = 0; fd_list[i].fd != -1; i++) { /* The handle already is inheritable. */ @@ -155,19 +161,19 @@ my_spawn (char **argv, struct spawn_fd_item_s *fd_list, unsigned int flags) { si.hStdInput = (HANDLE) fd_list[i].peer_name; duped_stdin = 1; - fprintf (stderr, PGM": dup 0x%x to stdin\n", fd_list[i].peer_name); + fprintf (mystderr, PGM": dup 0x%x to stdin\n", fd_list[i].peer_name); } else if (fd_list[i].dup_to == 1) { si.hStdOutput = (HANDLE) fd_list[i].peer_name; duped_stdout = 1; - fprintf (stderr, PGM": dup 0x%x to stdout\n", fd_list[i].peer_name); + fprintf (mystderr, PGM": dup 0x%x to stdout\n", fd_list[i].peer_name); } else if (fd_list[i].dup_to == 2) { si.hStdError = (HANDLE) fd_list[i].peer_name; duped_stderr = 1; - fprintf (stderr, PGM":dup 0x%x to stderr\n", fd_list[i].peer_name); + fprintf (mystderr, PGM":dup 0x%x to stderr\n", fd_list[i].peer_name); } } @@ -216,6 +222,7 @@ my_spawn (char **argv, struct spawn_fd_item_s *fd_list, unsigned int flags) &pi)) /* returns process information */ { free (arg_string); + fprintf (mystderr, PGM": spawn error: %d\n", (int)GetLastError ()); /* FIXME: Should translate the error code. */ errno = EIO; return -1; @@ -252,7 +259,7 @@ my_spawn (char **argv, struct spawn_fd_item_s *fd_list, unsigned int flags) if (func) { int rc = func (pi.dwProcessId); - fprintf (stderr, PGM": AllowSetForegroundWindow(%d): rc=%d\n", + fprintf (mystderr, PGM": AllowSetForegroundWindow(%d): rc=%d\n", (int)pi.dwProcessId, rc); } } @@ -418,7 +425,7 @@ translate_handles (const char *trans_file, const char * const *argv, if (aidx >= n_args) { - fprintf (stderr, PGM": translation file does not match args\n"); + fprintf (mystderr, PGM": translation file does not match args\n"); return NULL; } @@ -455,6 +462,10 @@ main (int argc, const char * const *argv) goto leave; } +#ifdef DEBUG_TO_FILE + mystderr = fopen ("h:/gpgme-w32spawn.log", "w"); +#endif + argv_spawn = translate_handles (argv[1], &argv[2], fd_list, &flags); if (!argv_spawn) { @@ -468,7 +479,7 @@ main (int argc, const char * const *argv) rc = my_spawn (argv_spawn, fd_list, flags); if (rc < 0) { - fprintf (stderr, PGM": executing `%s' failed: %s\n", + fprintf (mystderr, PGM": executing `%s' failed: %s\n", argv[0], strerror (errno)); rc = 2; goto leave; @@ -476,12 +487,12 @@ main (int argc, const char * const *argv) leave: if (rc) - fprintf (stderr, PGM": internal error\n"); + fprintf (mystderr, PGM": internal error\n"); /* Always try to delete the temporary file. */ if (argc >= 2) { if (DeleteFile (argv[1]) == 0) - fprintf (stderr, PGM": failed to delete %s: ec=%ld\n", + fprintf (mystderr, PGM": failed to delete %s: ec=%ld\n", argv[1], GetLastError ()); } return rc; |