Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 5765063

Browse files
committed
Re-allow building on Microsoft Visual Studio 2013.
In commit 450ee70 I supposed that all platforms we now care about have snprintf(), since that's required by C99. Turns out that Microsoft did not get around to adding that until VS2015. We've dropped support for VS2013 as of HEAD (cf 6203583), but not in the back branches, so add a hack for this in the back branches only. There's no easy shortcut to an exact emulation of standard snprintf in VS2013, but fortunately we don't need one: this code was just fine with using sprintf before 450ee70, so we can make it do so again on that platform (and any others where the problem might crop up). Per bug #17681 from Daisuke Higuchi. Back-patch to v12, like the previous patch. Discussion: https://postgr.es/m/17681-485ba2ec13e7f392@postgresql.org
1 parent daadb42 commit 5765063

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/port/snprintf.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,16 @@
109109
#undef vprintf
110110
#undef printf
111111

112+
/*
113+
* We use the platform's native snprintf() for some machine-dependent cases.
114+
* While that's required by C99, Microsoft Visual Studio lacks it before
115+
* VS2015. Fortunately, we don't really need the length check in practice,
116+
* so just fall back to native sprintf() on that platform.
117+
*/
118+
#if defined(_MSC_VER) && _MSC_VER < 1900 /* pre-VS2015 */
119+
#define snprintf(str,size,...) sprintf(str,__VA_ARGS__)
120+
#endif
121+
112122
/*
113123
* Info about where the formatted output is going.
114124
*

0 commit comments

Comments
 (0)