core,w32: Show w32-spawn warning only once
* src/w32-io.c (_gpgme_io_spawn): Show MessageBox only once. -- This prevents multiple message boxes from showing when the GPGME installation is unworkable. GnuPG-Bug-Id: T4453
This commit is contained in:
parent
4a4680f890
commit
937adfdcbb
@ -1389,6 +1389,7 @@ _gpgme_io_spawn (const char *path, char *const argv[], unsigned int flags,
|
|||||||
int tmp_fd;
|
int tmp_fd;
|
||||||
char *tmp_name;
|
char *tmp_name;
|
||||||
const char *spawnhelper;
|
const char *spawnhelper;
|
||||||
|
static int spawn_warning_shown = 0;
|
||||||
|
|
||||||
TRACE_BEG (DEBUG_SYSIO, "_gpgme_io_spawn", path,
|
TRACE_BEG (DEBUG_SYSIO, "_gpgme_io_spawn", path,
|
||||||
"path=%s", path);
|
"path=%s", path);
|
||||||
@ -1456,6 +1457,8 @@ _gpgme_io_spawn (const char *path, char *const argv[], unsigned int flags,
|
|||||||
up their installation this should also be properly communicated
|
up their installation this should also be properly communicated
|
||||||
as otherwise calls to gnupg will result in unsupported protocol
|
as otherwise calls to gnupg will result in unsupported protocol
|
||||||
errors that do not explain a lot. */
|
errors that do not explain a lot. */
|
||||||
|
if (!spawn_warning_shown)
|
||||||
|
{
|
||||||
char *msg;
|
char *msg;
|
||||||
gpgrt_asprintf (&msg, "gpgme-w32spawn.exe was not found in the "
|
gpgrt_asprintf (&msg, "gpgme-w32spawn.exe was not found in the "
|
||||||
"detected installation directory of GpgME"
|
"detected installation directory of GpgME"
|
||||||
@ -1470,6 +1473,8 @@ _gpgme_io_spawn (const char *path, char *const argv[], unsigned int flags,
|
|||||||
_gpgme_get_inst_dir ());
|
_gpgme_get_inst_dir ());
|
||||||
MessageBoxA (NULL, msg, "GpgME not installed correctly", MB_OK);
|
MessageBoxA (NULL, msg, "GpgME not installed correctly", MB_OK);
|
||||||
gpgrt_free (msg);
|
gpgrt_free (msg);
|
||||||
|
spawn_warning_shown = 1;
|
||||||
|
}
|
||||||
gpg_err_set_errno (EIO);
|
gpg_err_set_errno (EIO);
|
||||||
close (tmp_fd);
|
close (tmp_fd);
|
||||||
DeleteFileA (tmp_name);
|
DeleteFileA (tmp_name);
|
||||||
|
Loading…
Reference in New Issue
Block a user