diff options
Diffstat (limited to 'xorg-server/os/log.c')
-rw-r--r-- | xorg-server/os/log.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/xorg-server/os/log.c b/xorg-server/os/log.c index 2c13c1a7d..de3e9f322 100644 --- a/xorg-server/os/log.c +++ b/xorg-server/os/log.c @@ -92,8 +92,14 @@ OR PERFORMANCE OF THIS SOFTWARE. #ifdef WIN32 #include <process.h> +#ifndef _MSC_VER #define getpid(x) _getpid(x) #endif +#endif + +#ifdef _MSC_VER +#define S_ISREG(m) (((m)&_S_IFMT) == _S_IFREG) +#endif #ifdef XF86BIGFONT #include "xf86bigfontsrv.h" @@ -576,7 +582,7 @@ VAuditF(const char *f, va_list args) if (auditTimer != NULL) TimerForce(auditTimer); ErrorF("%s%s", prefix != NULL ? prefix : "", buf); - strlcpy(oldbuf, buf, sizeof(oldbuf)); + strncpy(oldbuf, buf, sizeof(oldbuf)); oldlen = len; nrepeat = 0; auditTimer = TimerSet(auditTimer, 0, AUDIT_TIMEOUT, AuditFlush, NULL); @@ -584,6 +590,8 @@ VAuditF(const char *f, va_list args) free(prefix); } +extern char g_FatalErrorMessage[1024]; + void FatalError(const char *f, ...) { @@ -598,8 +606,10 @@ FatalError(const char *f, ...) va_start(args, f); +#ifndef _MSC_VER /* Make a copy for OsVendorFatalError */ va_copy(args2, args); +#endif #ifdef __APPLE__ { @@ -611,9 +621,15 @@ FatalError(const char *f, ...) va_end(apple_args); } #endif +#ifdef WIN32 + vsnprintf(g_FatalErrorMessage, 1024, f, args); +#endif VErrorF(f, args); va_end(args); ErrorF("\n"); +#ifdef _MSC_VER + va_start(args2, f); +#endif if (!beenhere) OsVendorFatalError(f, args2); va_end(args2); |