Graf please would you consider upgrading the GZDoom source code to be compliant with MSVC 2005 as soon as possible? This is now the "official" current C compiler from Microsoft, the one that replaces the old 2003 and V6 compilers.
Those "people" (must use a polite word there) at Microsoft have decided to deprecate half the standard C library due to buffer overruns and POSIX names. This makes compiling ZDoom and GZDoom very difficult due to the blizzard of warnings. In an ideal world, the code would be rewritten to overcome the problems properly, but of course that would take a lot of time.
Therefore at the very least, could a set of macros be loaded by EVERY source file in ZDoom and its dependencies that needs them in order to remove the warnings? In particular we do not want to permanently change the source to use the new ISO names as it would then screw up compilation with MinGW and Linux.
Below please find below the list of macros that are potentially needed as if they were in some globally included file. Of course some files (such as zlib) already redefine, for example, fdopen to be _fdopen so it isn't quite as simple as that, but the following should be a useful starting point.
Code: Select all
#if defined(_MSC_VER) && (_MSC_VER >= 1400)
#define _CRT_SECURE_NO_DEPRECATE
#define access      _access
#define cabs        _cabs
#define cgets       _cgets
#define chdir       _chdir
#define chmod       _chmod
#define chsize      _chsize
#define close       _close
#define cprintf     _cprintf
#define cputs       _cputs
#define creat       _creat
#define cscanf      _cscanf
#define cwait       _cwait
#define dup         _dup
#define dup2        _dup2
#define ecvt        _ecvt
#define eof         _eof
#define execl       _execl
#define execle      _execle
#define execlp      _execlp
#define execlpe     _execlpe
#define execv       _execv
#define execve      _execve
#define execvp      _execvp
#define execvpe     _execvpe
#define fcloseall   _fcloseall
#define fcvt        _fcvt
#define fdopen      _fdopen
#define fgetchar    _fgetchar
#define filelength  _filelength
#define fileno      _fileno
#define flushall    _flushall
#define fputchar    _fputchar
#define gcvt        _gcvt
#define getch       _getch
#define getche      _getche
#define getcwd      _getcwd
#define getpid      _getpid
#define getw        _getw
#define hypot       _hypot
#define inp         _inp
#define inpw        _inpw
#define isascii     __isascii
#define isatty      _isatty
#define iscsym      __iscsym
#define iscsymf     __iscsymf
#define itoa        _itoa
#define j0          _j0
#define j1          _j1
#define jn          _jn
#define kbhit       _kbhit
#define lfind       _lfind
#define locking     _locking
#define lsearch     _lsearch
#define lseek       _lseek
#define ltoa        _ltoa
#define memccpy     _memccpy
#define memicmp     _memicmp
#define mkdir       _mkdir
#define mktemp      _mktemp
#define open        _open
#define outp        _outp
#define outpw       _outpw
#define putch       _putch
#define putenv      _putenv
#define putw        _putw
#define read        _read
#define rmdir       _rmdir
#define rmtmp       _rmtmp
#define setmode     _setmode
#define sopen       _sopen
#define spawnl      _spawnl
#define spawnle     _spawnle
#define spawnlp     _spawnlp
#define spawnlpe    _spawnlpe
#define spawnv      _spawnv
#define spawnve     _spawnve
#define spawnvp     _spawnvp
#define spawnvpe    _spawnvpe
#define strcmpi     _stricmp
#define strdup      _strdup
#define stricmp     _stricmp
#define strlwr      _strlwr
#define strnicmp    _strnicmp
#define strnset     _strnset
#define strrev      _strrev
#define strset      _strset
#define strupr      _strupr
#define swab        _swab
#define tell        _tell
#define tempnam     _tempnam
#define toascii     __toascii
#define tzset       _tzset
#define ultoa       _ultoa
#define umask       _umask
#define ungetch     _ungetch
#define unlink      _unlink
#define wcsdup      _wcsdup
#define wcsicmp     _wcsicmp
#define wcsicoll    _wcsicoll
#define wcslwr      _wcslwr
#define wcsnicmp    _wcsnicmp
#define wcsnset     _wcsnset
#define wcsrev      _wcsrev
#define wcsset      _wcsset
#define wcsupr      _wcsupr
#define write       _write
#define y0          _y0
#define y1          _y1
#define yn          _yn
#endif