* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
*
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/*
+ * Modified by the GLib Team and others 1997-2000. See the AUTHORS
+ * file for a list of people on the GLib Team. See the ChangeLog
+ * files for a list of changes. These files are distributed with
+ * GLib at ftp://ftp.gtk.org/pub/gtk/.
+ */
+
/*
* MT safe ; except for g_on_error_stack_trace, but who wants thread safety
* then
#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>
#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
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";
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')
}
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 };
static void
stack_trace (char **args)
{
-#ifndef NATIVE_WIN32
+#ifdef G_OS_UNIX
pid_t pid;
int in_fd[2];
int out_fd[2];