Add :application-type parameter for save-lisp-and-die on Windows.
[sbcl.git] / src / runtime / print.c
index 9a7a3c6..7d0c97e 100644 (file)
@@ -27,6 +27,7 @@
 #include <stdarg.h>
 #include "thread.h"              /* genesis/primitive-objects.h needs this */
 #include <errno.h>
+#include <stdlib.h>
 
 /* FSHOW and odxprint provide debugging output for low-level information
  * (signal handling, exceptions, safepoints) which is hard to debug by
@@ -68,6 +69,8 @@ dyndebug_init()
     dyndebug_init1(seh,            "SEH");
     dyndebug_init1(misc,           "MISC");
     dyndebug_init1(pagefaults,     "PAGEFAULTS");
+    dyndebug_init1(io,             "IO");
+    dyndebug_init1(runtime_link,   "RUNTIME_LINK");
 
     int n_output_flags = n;
     dyndebug_init1(backtrace_when_lost, "BACKTRACE_WHEN_LOST");
@@ -76,7 +79,9 @@ dyndebug_init()
     if (n != DYNDEBUG_NFLAGS)
         fprintf(stderr, "Bug in dyndebug_init\n");
 
+#if defined(LISP_FEATURE_GENCGC)
     gencgc_verbose = dyndebug_config.dyndebug_gencgc_verbose;
+#endif
 
     char *featurelist = getenv("SBCL_DYNDEBUG");
     if (featurelist) {
@@ -125,6 +130,8 @@ dyndebug_init()
  * be restored to its full win32 branch functionality, where output to a
  * file or to the debugger can be selected at runtime. */
 
+void vodxprint_fun(const char *, va_list);
+
 void
 odxprint_fun(const char *fmt, ...)
 {
@@ -139,9 +146,8 @@ vodxprint_fun(const char *fmt, va_list args)
 {
 #ifdef LISP_FEATURE_WIN32
     DWORD lastError = GetLastError();
-#else
-    int original_errno = errno;
 #endif
+    int original_errno = errno;
 
     QSHOW_BLOCK;
 
@@ -178,9 +184,8 @@ vodxprint_fun(const char *fmt, va_list args)
 
 #ifdef LISP_FEATURE_WIN32
     SetLastError(lastError);
-#else
-    errno = original_errno;
 #endif
+    errno = original_errno;
 }
 
 /* Translate the rather awkward syntax
@@ -210,6 +215,9 @@ fshow_fun(void __attribute__((__unused__)) *ignored,
 #ifdef LISP_FEATURE_GENCGC
 #include "gencgc-alloc-region.h" /* genesis/thread.h needs this */
 #endif
+#if defined(LISP_FEATURE_WIN32)
+# include "win32-thread-private-events.h" /* genesis/thread.h needs this */
+#endif
 #include "genesis/static-symbols.h"
 #include "genesis/primitive-objects.h"
 #include "genesis/static-symbols.h"