From: Kevin Koch Date: Tue, 27 Mar 2007 17:27:41 +0000 (+0000) Subject: All Windows apps were popping MessageBoxes when stderr is redirected. Console apps... X-Git-Tag: krb5-1.7-alpha1~1211 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=ebe7571630540b34875ff9b916b6ebd2c6450324;p=krb5.git All Windows apps were popping MessageBoxes when stderr is redirected. Console apps shouldn't and no longer do that. Added isGuiApp, which tests gui resource usage Removed duplicate nested tests for _WIN32. Ticket: 5446 Status: resolved Target_Version: 1.6.1 Tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19292 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/util/et/com_err.c b/src/util/et/com_err.c index 5a274d2c1..c759e17b6 100644 --- a/src/util/et/com_err.c +++ b/src/util/et/com_err.c @@ -33,6 +33,16 @@ static /*@null@*/ et_old_error_hook_func com_err_hook = 0; k5_mutex_t com_err_hook_lock = K5_MUTEX_PARTIAL_INITIALIZER; +#if defined(_WIN32) +BOOL isGuiApp() { + DWORD mypid; + HANDLE myprocess; + mypid = GetCurrentProcessId(); + myprocess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, mypid); + return GetGuiResources(myprocess, 1) > 0; + } +#endif + static void default_com_err_proc (const char *whoami, errcode_t code, const char *fmt, va_list ap) { @@ -55,14 +65,12 @@ static void default_com_err_proc (const char *whoami, errcode_t code, vsprintf (errbuf + strlen (errbuf), fmt, ap); errbuf[sizeof(errbuf) - 1] = '\0'; -#ifdef _WIN32 - if (_isatty(_fileno(stderr))) { + if (_isatty(_fileno(stderr)) || !isGuiApp()) { fputs(errbuf, stderr); fputc('\r', stderr); fputc('\n', stderr); fflush(stderr); } else -#endif /* _WIN32 */ MessageBox ((HWND)NULL, errbuf, "Kerberos", MB_ICONEXCLAMATION); #else /* !_WIN32 */