pull up r19292 from trunk
authorTom Yu <tlyu@mit.edu>
Fri, 30 Mar 2007 18:54:31 +0000 (18:54 +0000)
committerTom Yu <tlyu@mit.edu>
Fri, 30 Mar 2007 18:54:31 +0000 (18:54 +0000)
 r19292@cathode-dark-space:  kpkoch | 2007-03-27 13:27:41 -0400
 Ticket: 5446
 Status: resolved
 Target_Version: 1.6.1
 Tags:  pullup

 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
version_fixed: 1.6.1

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-6@19343 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 */