From 60beebc9ac94252b0e436c3406dad7bddfde1e44 Mon Sep 17 00:00:00 2001 From: Thomas Bernard Date: Tue, 20 Feb 2018 15:31:45 +0100 Subject: [PATCH] fixes for MSVC non-standard C library strcase => _stricmp strncase => _strnicmp strdup => _strdup snprintf => _snprintf a compliant snprintf() is supposed to be available in MS Visual Studio 2015 and later --- src/buttons.c | 7 ++----- src/fileformats.c | 6 ++++++ src/filesel.c | 3 +++ src/help.c | 2 +- src/init.c | 8 +++++--- src/loadsave.c | 6 ++++++ src/readini.c | 3 +++ src/readline.c | 3 +++ src/struct.h | 4 ++++ src/text.c | 3 +++ src/windows.c | 2 ++ 11 files changed, 38 insertions(+), 9 deletions(-) diff --git a/src/buttons.c b/src/buttons.c index 1db089af..bf75e846 100644 --- a/src/buttons.c +++ b/src/buttons.c @@ -40,11 +40,8 @@ #if !defined(_MSC_VER) #include #else -#if (_MSC_VER >= 1400) -#define strncasecmp _memicmp -#else -#define strncasecmp memicmp -#endif +#define strdup _strdup +#define strncasecmp _strnicmp #endif #include #if !defined(__VBCC__) && !defined(_MSC_VER) diff --git a/src/fileformats.c b/src/fileformats.c index b369f7ff..4591d70e 100644 --- a/src/fileformats.c +++ b/src/fileformats.c @@ -53,6 +53,12 @@ #include +#if defined(_MSC_VER) +#include +#if _MSC_VER < 1900 +#define snprintf _snprintf +#endif +#endif #include "errors.h" #include "global.h" diff --git a/src/filesel.c b/src/filesel.c index d3ad4043..82c3a937 100644 --- a/src/filesel.c +++ b/src/filesel.c @@ -43,7 +43,10 @@ #include #ifdef _MSC_VER #include +#define strdup _strdup +#if _MSC_VER < 1900 #define snprintf _snprintf +#endif #else #include #include diff --git a/src/help.c b/src/help.c index 06451ded..57903306 100644 --- a/src/help.c +++ b/src/help.c @@ -27,7 +27,7 @@ #if defined(__WIN32__) || defined(WIN32) #include -#ifdef _MSC_VER +#if defined(_MSC_VER) && _MSC_VER < 1900 #define snprintf _snprintf #endif #elif defined(__macosx__) || defined(__FreeBSD__) diff --git a/src/init.c b/src/init.c index 0259e78b..43c3949b 100644 --- a/src/init.c +++ b/src/init.c @@ -35,7 +35,6 @@ #endif #include -//#include #include #if !defined(__VBCC__) && !defined(_MSC_VER) @@ -58,10 +57,13 @@ #ifdef GRAFX2_CATCHES_SIGNALS #include #endif -#ifdef _MSC_VER -#include +#if defined(_MSC_VER) +#define strncasecmp _strnicmp +#define strdup _strdup +#if _MSC_VER < 1900 #define snprintf _snprintf #endif +#endif #include "buttons.h" #include "const.h" diff --git a/src/loadsave.c b/src/loadsave.c index b3abaaca..19828f85 100644 --- a/src/loadsave.c +++ b/src/loadsave.c @@ -33,6 +33,12 @@ #endif #if defined(WIN32) #include +#if defined(_MSC_VER) +#define strdup _strdup +#if _MSC_VER < 1900 +#define snprintf _snprintf +#endif +#endif #endif #include #include diff --git a/src/readini.c b/src/readini.c index 8a6ba2cf..4a9be95f 100644 --- a/src/readini.c +++ b/src/readini.c @@ -29,6 +29,9 @@ #include #include #include +#if defined(_MSC_VER) +#define strdup _strdup +#endif #include "const.h" #include "errors.h" diff --git a/src/readline.c b/src/readline.c index 06fbb103..0927c64b 100644 --- a/src/readline.c +++ b/src/readline.c @@ -60,8 +60,11 @@ #ifdef _MSC_VER #include +#define strdup _strdup +#if _MSC_VER < 1900 #define snprintf _snprintf #endif +#endif // Virtual keyboard is ON by default on these platforms: #if defined(__GP2X__) || defined(__WIZ__) || defined(__CAANOO__) || defined(GCWZERO) diff --git a/src/struct.h b/src/struct.h index 20c5496c..e2f043b0 100644 --- a/src/struct.h +++ b/src/struct.h @@ -40,8 +40,12 @@ // POSIX calls it strcasecmp, Windows uses stricmp... no ANSI standard. #ifdef WIN32 +#ifdef _MSC_VER + #define strcasecmp _stricmp +#else #define strcasecmp stricmp #endif +#endif // Definition of the base data types /// 8bit unsigned integer diff --git a/src/text.c b/src/text.c index e662a27d..869dca4a 100644 --- a/src/text.c +++ b/src/text.c @@ -52,8 +52,11 @@ #ifdef _MSC_VER #include +#define strdup _strdup +#if _MSC_VER < 1900 #define snprintf _snprintf #endif +#endif #include #include "SFont.h" diff --git a/src/windows.c b/src/windows.c index baf65180..416c90eb 100644 --- a/src/windows.c +++ b/src/windows.c @@ -31,8 +31,10 @@ #ifdef _MSC_VER #include +#if _MSC_VER < 1900 #define snprintf _snprintf #endif +#endif #include "windows.h"