1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00

[W32] Avoid extra console window when importing or exporting.

Fixes bug 875.
This commit is contained in:
Werner Koch 2008-01-27 14:43:52 +00:00
parent c3b9005ec3
commit d84d5ea748
32 changed files with 3643 additions and 3519 deletions

View file

@ -1,3 +1,8 @@
2008-01-27 Werner Koch <wk@g10code.com>
* exechelp.c (gnupg_spawn_process): Add arg FLAGS and changed all
callers to pass 0 for it.
2007-12-13 Werner Koch <wk@g10code.com>
* sexputil.c (hash_algo_from_sigval): New.

View file

@ -1,5 +1,5 @@
/* exechelp.c - fork and exec helpers
* Copyright (C) 2004, 2007 Free Software Foundation, Inc.
* Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@ -322,11 +322,18 @@ gnupg_create_inbound_pipe (int filedes[2])
PREEXEC is not NULL, that function will be called right before the
exec. Calling gnupg_wait_process is required.
FLAGS is a bit vector with just one bit defined for now:
Bit 7: If set the process will be started as a background process.
This flag is only useful under W32 systems, so that no new
console is created and pops up a console window when
starting the server
Returns 0 on success or an error code. */
gpg_error_t
gnupg_spawn_process (const char *pgmname, const char *argv[],
FILE *infile, FILE *outfile,
void (*preexec)(void),
void (*preexec)(void), unsigned int flags,
FILE **statusfile, pid_t *pid)
{
#ifdef HAVE_W32_SYSTEM
@ -384,6 +391,7 @@ gnupg_spawn_process (const char *pgmname, const char *argv[],
si.hStdError = fd_to_handle (rp[1]);
cr_flags = (CREATE_DEFAULT_ERROR_MODE
| ((flags & 128)? DETACHED_PROCESS : 0)
| GetPriorityClass (GetCurrentProcess ())
| CREATE_SUSPENDED);
log_debug ("CreateProcess, path=`%s' cmdline=`%s'\n", pgmname, cmdline);

View file

@ -30,13 +30,14 @@ gpg_error_t gnupg_create_inbound_pipe (int filedes[2]);
stdin, write the output to OUTFILE, return a new stream in
STATUSFILE for stderr and the pid of the process in PID. The
arguments for the process are expected in the NULL terminated array
ARGV. The program name itself should not be included there. if
ARGV. The program name itself should not be included there. If
PREEXEC is not NULL, that function will be called right before the
exec. Calling gnupg_wait_process is required. Returns 0 on
exec. FLAGS is currently only useful for W32, see the source for
details. Calling gnupg_wait_process is required. Returns 0 on
success or an error code. */
gpg_error_t gnupg_spawn_process (const char *pgmname, const char *argv[],
FILE *infile, FILE *outfile,
void (*preexec)(void),
void (*preexec)(void), unsigned int flags,
FILE **statusfile, pid_t *pid);