From 47ebd3df89c48fdf1c4b7f7d874828263e9a8501 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Fri, 1 Sep 2000 20:41:27 +0200
Subject: [PATCH] Added wrapper for abort() on NT to avoid interactive
 requesters.

Rev: src/error.c:1.63
---
 src/error.c | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/error.c b/src/error.c
index 7d4dbd636a..70cc1cf0e3 100644
--- a/src/error.c
+++ b/src/error.c
@@ -21,7 +21,7 @@
 #include "threads.h"
 #include "gc.h"
 
-RCSID("$Id: error.c,v 1.62 2000/08/21 21:32:37 grubba Exp $");
+RCSID("$Id: error.c,v 1.63 2000/09/01 18:41:27 grubba Exp $");
 
 #undef ATTRIBUTE
 #define ATTRIBUTE(X)
@@ -449,13 +449,26 @@ PMOD_EXPORT void exit_on_error(void *msg)
   exit(1);
 }
 
+#ifdef __NT__
+/* Wrapper around abort() to avoid interactive requesters on NT. */
+static void do_abort()
+{
+  if (!d_flag && !getenv("PIKE_DEBUG")) {
+    exit(-6);	/* -SIGIOT */
+  }
+  abort();
+}
+#else /* !__NT__ */
+#define do_abort()	abort()
+#endif /* __NT__ */
+
 PMOD_EXPORT void fatal_on_error(void *msg)
 {
 #ifdef PIKE_DEBUG
   dump_backlog();
 #endif
   fprintf(stderr,"%s\n",(char *)msg);
-  abort();
+  do_abort();
 }
 
 PMOD_EXPORT DECLSPEC(noreturn) void error(const char *fmt,...) ATTRIBUTE((noreturn,format (printf, 1, 2)))
@@ -476,7 +489,7 @@ PMOD_EXPORT DECLSPEC(noreturn) void debug_fatal(const char *fmt, ...) ATTRIBUTE(
   if (in_fatal)
   {
     (void)VFPRINTF(stderr, fmt, args);
-    abort();
+    do_abort();
   }
 
   in_fatal = 1;
@@ -507,7 +520,7 @@ PMOD_EXPORT DECLSPEC(noreturn) void debug_fatal(const char *fmt, ...) ATTRIBUTE(
     fprintf(stderr,"No stack - no backtrace.\n");
   }
   fflush(stderr);
-  abort();
+  do_abort();
 }
 
 #if 1
-- 
GitLab