More console tweaks.
authorgerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 4 Apr 2011 18:03:24 +0000 (18:03 +0000)
committergerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 4 Apr 2011 18:03:24 +0000 (18:03 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@36458 f5534014-38df-0310-8fa8-9805f1628bb7

gtk/main.c

index bd27cf1c903e296a1c949a87577ca47892741eee..118987f2f41908dd579b18ddcb39cf55cab27b97 100644 (file)
@@ -217,6 +217,7 @@ static guint  tap_update_timer_id;
 
 #ifdef _WIN32
 static gboolean has_console;   /* TRUE if app has console */
+static gboolean console_wait;  /* "Press any key..." */
 static void destroy_console(void);
 static gboolean stdin_capture = FALSE; /* Don't grab stdin & stdout if TRUE */
 #endif
@@ -3056,6 +3057,7 @@ WinMain (struct HINSTANCE__ *hInstance,
   ws_load_library("riched20.dll");
 
   has_console = FALSE;
+  console_wait = FALSE;
   return main (__argc, __argv);
 }
 
@@ -3094,12 +3096,6 @@ create_console(void)
     if (!AttachConsole(ATTACH_PARENT_PROCESS)) {
       if (AllocConsole()) {
         SetConsoleTitle(_T("Wireshark Debug Console"));
-        /* Now register "destroy_console()" as a routine to be called just
-           before the application exits, so that we can destroy the console
-           after the user has typed a key (so that the console doesn't just
-           disappear out from under them, giving the user no chance to see
-           the message(s) we put in there). */
-        atexit(destroy_console);
       } else {
         return;   /* couldn't create console */
       }
@@ -3109,6 +3105,13 @@ create_console(void)
     ws_freopen("CONOUT$", "w", stdout);
     ws_freopen("CONOUT$", "w", stderr);
 
+    /* Now register "destroy_console()" as a routine to be called just
+       before the application exits, so that we can destroy the console
+       after the user has typed a key (so that the console doesn't just
+       disappear out from under them, giving the user no chance to see
+       the message(s) we put in there). */
+    atexit(destroy_console);
+
     /* Well, we have a console now. */
     has_console = TRUE;
   }
@@ -3117,11 +3120,11 @@ create_console(void)
 static void
 destroy_console(void)
 {
-  if (has_console) {
+  if (console_wait) {
     printf("\n\nPress any key to exit\n");
     _getch();
-    FreeConsole();
   }
+  FreeConsole();
 }
 #endif /* _WIN32 */