Very minor stuff.
[platform/upstream/glib.git] / gbacktrace.c
index af55223..7fa7768 100644 (file)
 #include <string.h> /* for bzero on BSD systems */
 #endif
 
-#ifdef _MSC_VER
-#include <process.h>           /* For _getpid() */
+#ifdef G_OS_WIN32
+#  define STRICT               /* Strict typing, please */
+#  include <windows.h>
+#  include <process.h>         /* For _getpid() */
 #endif
 
 #ifndef NO_FD_SET
 #  define SELECT_MASK fd_set
 #else
-#  ifndef _AIX
-     typedef long fd_mask;
-#  endif
 #  if defined(_IBMR2)
 #    define SELECT_MASK void
 #  else
@@ -85,6 +84,7 @@ volatile gboolean glib_on_error_halt = TRUE;
 void
 g_on_error_query (const gchar *prg_name)
 {
+#ifndef G_OS_WIN32
   static const gchar *query1 = "[E]xit, [H]alt";
   static const gchar *query2 = ", show [S]tack trace";
   static const gchar *query3 = " or [P]roceed";
@@ -111,7 +111,10 @@ g_on_error_query (const gchar *prg_name)
             query3);
   fflush (stdout);
   
-  fgets (buf, 8, stdin);
+  if (isatty(0) && isatty(1))
+    fgets (buf, 8, stdin); 
+  else
+    strcpy (buf, "E\n");
 
   if ((buf[0] == 'E' || buf[0] == 'e')
       && buf[1] == '\n')
@@ -136,12 +139,21 @@ g_on_error_query (const gchar *prg_name)
     }
   else
     goto retry;
+#else
+  if (!prg_name)
+    prg_name = g_get_prgname ();
+  
+  MessageBox (NULL, "g_on_error_query called, program terminating",
+             (prg_name && *prg_name) ? prg_name : NULL,
+             MB_OK|MB_ICONERROR);
+  _exit(0);
+#endif
 }
 
 void
 g_on_error_stack_trace (const gchar *prg_name)
 {
-#ifndef NATIVE_WIN32
+#ifdef G_OS_UNIX
   pid_t pid;
   gchar buf[16];
   gchar *args[4] = { "gdb", NULL, NULL, NULL };
@@ -185,7 +197,7 @@ stack_trace_sigchld (int signum)
 static void
 stack_trace (char **args)
 {
-#ifndef NATIVE_WIN32
+#ifdef G_OS_UNIX
   pid_t pid;
   int in_fd[2];
   int out_fd[2];