diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h
index 0627c4bcad7..ceb51716244 100644
--- a/nt/inc/ms-w32.h
+++ b/nt/inc/ms-w32.h
@@ -120,38 +120,14 @@ along with GNU Emacs. If not, see . */
you should place, by convention, in sysdep.c). */
#ifdef __GNUC__
-#ifndef __cplusplus
-#undef inline
-#endif
-#else /* MSVC */
-#define inline __inline
-#endif
-
-#ifdef __GNUC__
+# ifndef __cplusplus
+# undef inline
/* config.h may have defined already. */
-# ifndef restrict
-# define restrict __restrict__
-# endif
-#else
- /* FIXME: should we define to __restrict, which MSVC supports? */
-# define restrict
-#endif
-
-/* `mode_t' is not defined for MSVC. Define. */
-#ifdef _MSC_VER
-typedef unsigned short mode_t;
-#endif
-
-/* A va_copy replacement for MSVC. */
-#ifdef _MSC_VER
-# ifdef _WIN64
-# ifndef va_copy /* Need to be checked (?) */
-# define va_copy(d,s) ((d) = (s))
+# ifndef restrict
+# define restrict __restrict__
# endif
-# else /* not _WIN64 */
-# define va_copy(d,s) ((d) = (s))
-# endif /* not _WIN64 */
-#endif /* _MSC_VER */
+# endif
+#endif
#ifndef WINDOWSNT
/* Some of the files of Emacs which are intended for use with other
@@ -228,17 +204,6 @@ typedef jmp_buf sigjmp_buf;
#endif
extern void w32_reset_stack_overflow_guard (void);
-#ifdef _MSC_VER
-#include
-#include
-#include
-
-/* MSVC gets link-time errors without these redirections. */
-#define fstat(a, b) sys_fstat(a, b)
-#define stat(a, b) sys_stat(a, b)
-#define utime sys_utime
-#endif
-
/* Calls that are emulated or shadowed. */
#undef chdir
#define chdir sys_chdir
@@ -310,34 +275,16 @@ extern int sys_umask (int);
#define open sys_open
/* Map to MSVC names. */
-#define execlp _execlp
-#define execvp _execvp
-#include /* for intptr_t */
-extern intptr_t _execvp (const char *, char **);
#define tcdrain _commit
#define fdopen _fdopen
#define fsync _commit
#define ftruncate _chsize
#define getpid _getpid
-#ifdef _MSC_VER
-typedef int pid_t;
-#define snprintf _snprintf
-#define strtoll _strtoi64
-#define copysign _copysign
-#endif
#define isatty _isatty
#define _longjmp longjmp
-/* MinGW64 defines lseek to invoke lseek64. */
-#ifndef lseek
-#define lseek _lseek
-#endif
-#define popen _popen
-#define pclose _pclose
-#define strdup _strdup
-#define strupr _strupr
-#define strnicmp _strnicmp
-#define stricmp _stricmp
-#define tzset _tzset
+#define execvp _execvp
+#include /* for intptr_t */
+extern intptr_t _execvp (const char *, char **);
/* We cannot include system header process.h, since there's src/process.h. */
int _getpid (void);
@@ -354,27 +301,9 @@ int _getpid (void);
extern struct tm *gmtime_r (time_t const * restrict, struct tm * restrict);
extern struct tm *localtime_r (time_t const * restrict, struct tm * restrict);
-#ifdef _MSC_VER
-/* This is hacky, but is necessary to avoid warnings about macro
- redefinitions using the MSVC compilers, since, when __STDC__ is
- undefined or zero, those compilers declare functions like fileno,
- lseek, and chdir, for which we defined macros above. */
-#ifndef __STDC__
-#define __STDC__ 1
-#define MUST_UNDEF__STDC__
-#endif
#include
#include
#include
-#ifdef MUST_UNDEF__STDC__
-#undef __STDC__
-#undef MUST_UNDEF__STDC__
-#endif
-#else /* !_MSC_VER */
-#include
-#include
-#include
-#endif /* !_MSC_VER */
#ifndef fileno
#define fileno _fileno
#endif
@@ -407,11 +336,6 @@ int sys_read (int, char *, unsigned int);
#define EOPNOTSUPP 130
#endif
-#ifdef _MSC_VER
-typedef int sigset_t;
-typedef int ssize_t;
-#endif
-
#ifdef MINGW_W64
#ifndef _POSIX
typedef _sigset_t sigset_t;
@@ -479,11 +403,7 @@ extern char *get_emacs_configuration_options (void);
/* Defines size_t and alloca (). */
#include
#include
-#ifdef _MSC_VER
-#define alloca _alloca
-#else
#include
-#endif
/* Needed in Emacs and in Gnulib. */
/* This must be after including sys/stat.h, because we need mode_t. */
@@ -564,81 +484,11 @@ extern int mkostemp (char *, int);
#endif
-#ifdef _MSC_VER
-# if defined(_WIN64)
-typedef __int64 EMACS_INT;
-typedef unsigned __int64 EMACS_UINT;
-# define EMACS_INT_MAX LLONG_MAX
-# define PRIuMAX "llu"
-# define pI "ll"
-/* Fix a bug in MSVC headers : stdint.h */
-# define _INTPTR 2
-# elif defined(_WIN32)
-/* Temporarily disable wider-than-pointer integers until they're tested more.
- Build with CFLAGS='-DWIDE_EMACS_INT' to try them out. */
-
-# ifdef WIDE_EMACS_INT
-
-/* Use pre-C99-style 64-bit integers. */
-typedef __int64 EMACS_INT;
-typedef unsigned __int64 EMACS_UINT;
-# define EMACS_INT_MAX LLONG_MAX
-# define PRIuMAX "llu"
-# define pI "I64"
-# else
-typedef int EMACS_INT;
-typedef unsigned int EMACS_UINT;
-# define EMACS_INT_MAX LONG_MAX
-# define PRIuMAX "lu"
-# define pI "l"
-# endif
-# endif
-#endif
-
#define DATA_START get_data_start ()
-/* For unexec to work on Alpha systems, we need to put Emacs'
- initialized data into a separate section from the CRT initialized
- data (because the Alpha linker freely reorders data variables, even
- across libraries, so our data and the CRT data get intermingled).
-
- Starting with MSVC 5.0, we must also place the uninitialized data
- into its own section. VC5 intermingles uninitialized data from the CRT
- between Emacs's static uninitialized data and its public uninitialized
- data. A separate .bss section for Emacs groups both static and
- public uninitialized together.
-
- Note that unexw32.c relies on this fact, and must be modified
- accordingly if this section name is changed, or if this pragma is
- removed. Also, obviously, all files that define initialized data
- must include config.h to pick up this pragma. */
-
-/* Names must be < 8 bytes. */
-#ifdef _MSC_VER
-#pragma data_seg("EMDATA")
-#pragma bss_seg("EMBSS")
-#endif
-
/* #define FULL_DEBUG */
/* #define EMACSDEBUG */
-#ifdef _MSC_VER
-#if _MSC_VER >= 800 && !defined(__cplusplus)
-/* Unnamed type definition in parentheses.
- A structure, union, or enumerated type with no name is defined in a
- parenthetical expression. The type definition is meaningless. */
-#pragma warning(disable:4116)
-/* 'argument' : conversion from 'type1' to 'type2', possible loss of
- data A floating point type was converted to an integer type. A
- possible loss of data may have occurred. */
-#pragma warning(disable:4244)
-/* Negative integral constant converted to unsigned type.
- An expression converts a negative integer constant to an unsigned type.
- The result of the expression is probably meaningless. */
-#pragma warning(disable:4308)
-#endif
-#endif
-
/* Event name for when emacsclient starts the Emacs daemon on Windows. */
#define W32_DAEMON_EVENT "EmacsServerEvent"
diff --git a/nt/inc/stdalign.h b/nt/inc/stdalign.h
index 808407156fa..3da46bc64ba 100644
--- a/nt/inc/stdalign.h
+++ b/nt/inc/stdalign.h
@@ -12,8 +12,6 @@
#if __GNUC__
# define _Alignas(a) __attribute__ ((__aligned__ (a)))
-#elif 1300 <= _MSC_VER
-# define _Alignas(a) __declspec (align (a))
#endif
#ifdef _Alignas
# define alignas _Alignas
diff --git a/nt/inc/sys/socket.h b/nt/inc/sys/socket.h
index 709555f893c..7928433ffd9 100644
--- a/nt/inc/sys/socket.h
+++ b/nt/inc/sys/socket.h
@@ -43,12 +43,6 @@ along with GNU Emacs. If not, see . */
#undef FD_ZERO
#endif
-/* Avoid duplicate definition of timeval. MinGW uses _TIMEVAL_DEFINED
- in sys/time.h to avoid that. */
-#if defined (HAVE_TIMEVAL) && defined (_MSC_VER)
-#define timeval ws_timeval
-#endif
-
#if defined __MINGW32_VERSION && __MINGW32_VERSION >= 5000002L
/* Need winerror.h before winsock2.h with mingw.org's MinGW 5.x,
otherwise some error codes are not defined. */
@@ -82,10 +76,6 @@ typedef unsigned short uint16_t;
#include "w32.h"
#endif /* EMACS_CONFIG_H */
-#if defined (HAVE_TIMEVAL) && defined (_MSC_VER)
-#undef timeval
-#endif
-
/* shadow functions where we provide our own wrapper */
#define socket sys_socket
#define bind sys_bind
diff --git a/src/w32.c b/src/w32.c
index d9fee5b6f03..903cd90d604 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -138,9 +138,7 @@ PCONTEXT ctxrec;
#include
#include
-#ifndef _MSC_VER
#include
-#endif
#if _WIN32_WINNT < 0x0500
#if !defined (__MINGW32__) || __W32API_MAJOR_VERSION < 3 || (__W32API_MAJOR_VERSION == 3 && __W32API_MINOR_VERSION < 15)
/* This either is not in psapi.h or guarded by higher value of
@@ -175,8 +173,8 @@ typedef struct _PROCESS_MEMORY_COUNTERS_EX {
#define SDDL_REVISION_1 1
#endif /* SDDL_REVISION_1 */
-#if defined(_MSC_VER) || defined(MINGW_W64)
-/* MSVC and MinGW64 don't provide the definition of
+#if defined(MINGW_W64)
+/* MinGW64 donesn't provide the definition of
REPARSE_DATA_BUFFER and the associated macros, except on ntifs.h,
which cannot be included because it triggers conflicts with other
Windows API headers. So we define it here by hand. */
@@ -7653,19 +7651,7 @@ system_process_attributes (Lisp_Object pid)
memstex.dwLength = sizeof (memstex);
if (global_memory_status_ex (&memstex))
-#if __GNUC__ || (defined (_MSC_VER) && _MSC_VER >= 1300)
totphys = memstex.ullTotalPhys / 1024.0;
-#else
- /* Visual Studio 6 cannot convert an unsigned __int64 type to
- double, so we need to do this for it... */
- {
- DWORD tot_hi = memstex.ullTotalPhys >> 32;
- DWORD tot_md = (memstex.ullTotalPhys & 0x00000000ffffffff) >> 10;
- DWORD tot_lo = memstex.ullTotalPhys % 1024;
-
- totphys = tot_hi * 4194304.0 + tot_md + tot_lo / 1024.0;
- }
-#endif /* __GNUC__ || _MSC_VER >= 1300 */
else if (global_memory_status (&memst))
totphys = memst.dwTotalPhys / 1024.0;
diff --git a/src/w32fns.c b/src/w32fns.c
index 21f1a967321..f7bf6110991 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -180,11 +180,6 @@ struct MONITOR_INFO_EX
char szDevice[CCHDEVICENAME];
};
-/* Reportedly, MSVC does not have this in its headers. */
-#if defined (_MSC_VER) && _WIN32_WINNT < 0x0500
-DECLARE_HANDLE(HMONITOR);
-#endif
-
typedef BOOL (WINAPI * TrackMouseEvent_Proc)
(IN OUT LPTRACKMOUSEEVENT lpEventTrack);
typedef LONG (WINAPI * ImmGetCompositionString_Proc)
diff --git a/src/w32term.h b/src/w32term.h
index d0d7d75f5cd..b92749f302b 100644
--- a/src/w32term.h
+++ b/src/w32term.h
@@ -881,21 +881,6 @@ extern int w32_system_caret_mode_height;
extern Window tip_window;
-#ifdef _MSC_VER
-#ifndef EnumSystemLocales
-/* MSVC headers define these only for _WIN32_WINNT >= 0x0500. */
-typedef BOOL (CALLBACK *LOCALE_ENUMPROCA)(LPSTR);
-typedef BOOL (CALLBACK *LOCALE_ENUMPROCW)(LPWSTR);
-BOOL WINAPI EnumSystemLocalesA(LOCALE_ENUMPROCA,DWORD);
-BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW,DWORD);
-#ifdef UNICODE
-#define EnumSystemLocales EnumSystemLocalesW
-#else
-#define EnumSystemLocales EnumSystemLocalesA
-#endif
-#endif
-#endif
-
#if EMACSDEBUG
extern const char*
w32_name_of_message (UINT msg);