]> granicus.if.org Git - postgresql/commitdiff
Recognize that MSVC can support strtoll() and strtoull().
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 18 May 2018 16:52:28 +0000 (12:52 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 18 May 2018 16:52:28 +0000 (12:52 -0400)
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

src/include/pg_config.h.win32

index 83aea69754c03187008daa3a5f5b24cdf8568659..97fc757b1ed3ae538e37ff9c876ea06ff4d5d3e2 100644 (file)
 #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 */