All Windows apps were popping MessageBoxes when stderr is redirected. Console apps...
authorKevin Koch <kpkoch@mit.edu>
Tue, 27 Mar 2007 17:27:41 +0000 (17:27 +0000)
committerKevin Koch <kpkoch@mit.edu>
Tue, 27 Mar 2007 17:27:41 +0000 (17:27 +0000)
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

src/util/et/com_err.c

index 5a274d2c17f514231e6423307d9fe3a7b072ce4d..c759e17b60344f8a03e888df37df3f77a20e0d1d 100644 (file)
 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 */