summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/xwin/InitOutput.c6
-rwxr-xr-xhw/xwin/XWin.exe.manifest2
-rw-r--r--hw/xwin/winerror.c2
-rw-r--r--hw/xwin/winmultiwindowwm.c2
-rw-r--r--hw/xwin/winprocarg.c3
-rw-r--r--include/os.h3
-rw-r--r--os/backtrace.c7
-rw-r--r--os/osinit.c2
-rw-r--r--os/xdmcp.c7
9 files changed, 26 insertions, 8 deletions
diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c
index d26ebb0bf..a7773c5b8 100644
--- a/hw/xwin/InitOutput.c
+++ b/hw/xwin/InitOutput.c
@@ -219,7 +219,7 @@ ddxGiveUp(enum ExitCode error)
#endif
if (!g_fLogInited) {
- g_pszLogFile = LogInit(g_pszLogFile, NULL);
+ g_pszLogFile = LogInit(g_pszLogFile, ".old");
g_fLogInited = TRUE;
}
LogClose(error);
@@ -662,7 +662,7 @@ OsVendorInit(void)
* avoid the second call
*/
g_fLogInited = TRUE;
- g_pszLogFile = LogInit(g_pszLogFile, NULL);
+ g_pszLogFile = LogInit(g_pszLogFile, ".old");
}
LogSetParameter(XLOG_FLUSH, 1);
LogSetParameter(XLOG_VERBOSITY, g_iLogVerbose);
@@ -904,7 +904,7 @@ ddxUseMsg(void)
/* Log file will not be opened for UseMsg unless we open it now */
if (!g_fLogInited) {
- g_pszLogFile = LogInit(g_pszLogFile, NULL);
+ g_pszLogFile = LogInit(g_pszLogFile, ".old");
g_fLogInited = TRUE;
}
LogClose(EXIT_NO_ERROR);
diff --git a/hw/xwin/XWin.exe.manifest b/hw/xwin/XWin.exe.manifest
index ea0e138f5..bd44b1066 100755
--- a/hw/xwin/XWin.exe.manifest
+++ b/hw/xwin/XWin.exe.manifest
@@ -28,6 +28,8 @@
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
+ <!-- Windows 10 -->
+ <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>
diff --git a/hw/xwin/winerror.c b/hw/xwin/winerror.c
index ff2919c27..47ac20246 100644
--- a/hw/xwin/winerror.c
+++ b/hw/xwin/winerror.c
@@ -85,7 +85,7 @@ OsVendorFatalError(const char *f, va_list args)
if (!g_fLogInited) {
g_fLogInited = TRUE;
- g_pszLogFile = LogInit(g_pszLogFile, NULL);
+ g_pszLogFile = LogInit(g_pszLogFile, ".old");
}
LogClose(EXIT_ERR_ABORT);
diff --git a/hw/xwin/winmultiwindowwm.c b/hw/xwin/winmultiwindowwm.c
index 62edb7fa9..9bee66953 100644
--- a/hw/xwin/winmultiwindowwm.c
+++ b/hw/xwin/winmultiwindowwm.c
@@ -1617,9 +1617,7 @@ winMultiWindowXMsgProcErrorHandler(Display * pDisplay, XErrorEvent * pErr)
char pszErrorMsg[100];
XGetErrorText(pDisplay, pErr->error_code, pszErrorMsg, sizeof(pszErrorMsg));
-#if CYGMULTIWINDOW_DEBUG
ErrorF("winMultiWindowXMsgProcErrorHandler - ERROR: %s\n", pszErrorMsg);
-#endif
return 0;
}
diff --git a/hw/xwin/winprocarg.c b/hw/xwin/winprocarg.c
index f678f6188..0a8337482 100644
--- a/hw/xwin/winprocarg.c
+++ b/hw/xwin/winprocarg.c
@@ -1213,6 +1213,9 @@ winOS(void)
if (osvi.dwMajorVersion <= 4)
prodName = "Windows NT";
else if (osvi.dwMajorVersion == 6) {
+ if (osvi.dwMinorVersion == 4) {
+ prodName = "Windows 10";
+ }
if (osvi.dwMinorVersion == 3) {
if (osvi.wProductType == VER_NT_WORKSTATION)
prodName = "Windows 8.1";
diff --git a/include/os.h b/include/os.h
index 435f556aa..63b9df9af 100644
--- a/include/os.h
+++ b/include/os.h
@@ -690,6 +690,9 @@ LogPrintMarkers(void);
extern _X_EXPORT void
xorg_backtrace(void);
+extern _X_EXPORT void
+xorg_crashreport(void);
+
extern _X_EXPORT int
os_move_fd(int fd);
diff --git a/os/backtrace.c b/os/backtrace.c
index fcc8274e4..c11552125 100644
--- a/os/backtrace.c
+++ b/os/backtrace.c
@@ -369,6 +369,13 @@ xorg_backtrace(void)
return;
}
+/* Cygwin-specific reporter script which uses exec_wrapper */
+void
+xorg_crashreport(void)
+{
+ return xorg_backtrace_exec_wrapper(BINDIR "/xorg-crashreport");
+}
+
#endif
#endif
#endif
diff --git a/os/osinit.c b/os/osinit.c
index 2791b53f2..c59b94bed 100644
--- a/os/osinit.c
+++ b/os/osinit.c
@@ -144,6 +144,8 @@ OsSigHandler(int signo)
/* log, cleanup, and abort */
xorg_backtrace();
+ xorg_crashreport();
+
FatalError("Caught signal %d (%s). Server aborting\n",
signo, strsignal(signo));
}
diff --git a/os/xdmcp.c b/os/xdmcp.c
index 99616d94b..c5204adfb 100644
--- a/os/xdmcp.c
+++ b/os/xdmcp.c
@@ -1409,8 +1409,11 @@ recv_alive_msg(unsigned length)
static void
XdmcpFatal(const char *type, ARRAY8Ptr status)
{
- FatalError("XDMCP fatal error: %s %*.*s\n", type,
- status->length, status->length, status->data);
+ char *text = malloc(status->length + 1);
+ strncpy(text, status->data, status->length);
+ text[status->length] = 0;
+ FatalError("XDMCP fatal error: %s %s\n", type, text);
+ free(text);
}
static void