From: Tom Lane Date: Fri, 18 May 2018 16:52:28 +0000 (-0400) Subject: Recognize that MSVC can support strtoll() and strtoull(). X-Git-Tag: REL9_4_19~59 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=385f4acbf824f520287f20373ebae4713382a568;p=postgresql Recognize that MSVC can support strtoll() and strtoull(). This is needed for full support of "long long" variables in ecpg, but the previous patch for bug #15080 (commits 51057feaa et al) missed it. In MSVC versions where the functions don't exist under those names, we can nonetheless use _strtoi64() and _strtoui64(). Like the previous patch, back-patch all the way. Dang Minh Huong Discussion: https://postgr.es/m/151935568942.1461.14623890240535309745@wrigleys.postgresql.org --- diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32 index 2a1e5b396f..a39c0a547b 100644 --- a/src/include/pg_config.h.win32 +++ b/src/include/pg_config.h.win32 @@ -366,13 +366,25 @@ #define HAVE_STRING_H 1 /* Define to 1 if you have the `strtoll' function. */ -//#define HAVE_STRTOLL 1 +#ifdef HAVE_LONG_LONG_INT_64 +#define HAVE_STRTOLL 1 +/* Before VS2013, use Microsoft's nonstandard equivalent function */ +#if (_MSC_VER < 1800) +#define strtoll _strtoi64 +#endif +#endif /* Define to 1 if you have the `strtoq' function. */ /* #undef HAVE_STRTOQ */ /* Define to 1 if you have the `strtoull' function. */ -//#define HAVE_STRTOULL 1 +#ifdef HAVE_LONG_LONG_INT_64 +#define HAVE_STRTOULL 1 +/* Before VS2013, use Microsoft's nonstandard equivalent function */ +#if (_MSC_VER < 1800) +#define strtoull _strtoui64 +#endif +#endif /* Define to 1 if you have the `strtouq' function. */ /* #undef HAVE_STRTOUQ */