aboutsummaryrefslogtreecommitdiff
path: root/src/pl/plpython/plpython.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pl/plpython/plpython.h')
-rw-r--r--src/pl/plpython/plpython.h43
1 files changed, 37 insertions, 6 deletions
diff --git a/src/pl/plpython/plpython.h b/src/pl/plpython/plpython.h
index eaf3e4a154f..8cb922de724 100644
--- a/src/pl/plpython/plpython.h
+++ b/src/pl/plpython/plpython.h
@@ -33,8 +33,14 @@
* Sometimes python carefully scribbles on our *printf macros.
* So we undefine them here and redefine them after it's done its dirty deed.
*/
-#undef snprintf
#undef vsnprintf
+#undef snprintf
+#undef vsprintf
+#undef sprintf
+#undef vfprintf
+#undef fprintf
+#undef vprintf
+#undef printf
#if defined(_MSC_VER) && defined(_DEBUG)
/* Python uses #pragma to bring in a non-default libpython on VC++ if
@@ -120,15 +126,40 @@ typedef int Py_ssize_t;
#include <compile.h>
#include <eval.h>
-/* put back our snprintf and vsnprintf */
+/* put back our *printf macros ... this must match src/include/port.h */
+#ifdef vsnprintf
+#undef vsnprintf
+#endif
#ifdef snprintf
#undef snprintf
#endif
-#ifdef vsnprintf
-#undef vsnprintf
+#ifdef vsprintf
+#undef vsprintf
#endif
-#define vsnprintf pg_vsnprintf
-#define snprintf pg_snprintf
+#ifdef sprintf
+#undef sprintf
+#endif
+#ifdef vfprintf
+#undef vfprintf
+#endif
+#ifdef fprintf
+#undef fprintf
+#endif
+#ifdef vprintf
+#undef vprintf
+#endif
+#ifdef printf
+#undef printf
+#endif
+
+#define vsnprintf pg_vsnprintf
+#define snprintf pg_snprintf
+#define vsprintf pg_vsprintf
+#define sprintf pg_sprintf
+#define vfprintf pg_vfprintf
+#define fprintf pg_fprintf
+#define vprintf pg_vprintf
+#define printf(...) pg_printf(__VA_ARGS__)
/*
* Used throughout, and also by the Python 2/3 porting layer, so it's easier to