Skip to content

Commit f7c4fe7

Browse files
committed
Permit use of vsprintf() in PostgreSQL code.
The next commit needs it. Back-patch to 9.0 (all supported versions).
1 parent 7a0d48a commit f7c4fe7

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/include/port.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,9 @@ extern unsigned char pg_ascii_tolower(unsigned char ch);
139139
#ifdef snprintf
140140
#undef snprintf
141141
#endif
142+
#ifdef vsprintf
143+
#undef vsprintf
144+
#endif
142145
#ifdef sprintf
143146
#undef sprintf
144147
#endif
@@ -157,6 +160,7 @@ extern int
157160
pg_snprintf(char *str, size_t count, const char *fmt,...)
158161
/* This extension allows gcc to check the format string */
159162
__attribute__((format(PG_PRINTF_ATTRIBUTE, 3, 4)));
163+
extern int pg_vsprintf(char *str, const char *fmt, va_list args);
160164
extern int
161165
pg_sprintf(char *str, const char *fmt,...)
162166
/* This extension allows gcc to check the format string */
@@ -179,13 +183,15 @@ __attribute__((format(PG_PRINTF_ATTRIBUTE, 1, 2)));
179183
#ifdef __GNUC__
180184
#define vsnprintf(...) pg_vsnprintf(__VA_ARGS__)
181185
#define snprintf(...) pg_snprintf(__VA_ARGS__)
186+
#define vsprintf(...) pg_vsprintf(__VA_ARGS__)
182187
#define sprintf(...) pg_sprintf(__VA_ARGS__)
183188
#define vfprintf(...) pg_vfprintf(__VA_ARGS__)
184189
#define fprintf(...) pg_fprintf(__VA_ARGS__)
185190
#define printf(...) pg_printf(__VA_ARGS__)
186191
#else
187192
#define vsnprintf pg_vsnprintf
188193
#define snprintf pg_snprintf
194+
#define vsprintf pg_vsprintf
189195
#define sprintf pg_sprintf
190196
#define vfprintf pg_vfprintf
191197
#define fprintf pg_fprintf

src/port/snprintf.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
/* Prevent recursion */
100100
#undef vsnprintf
101101
#undef snprintf
102+
#undef vsprintf
102103
#undef sprintf
103104
#undef vfprintf
104105
#undef fprintf
@@ -178,7 +179,7 @@ pg_snprintf(char *str, size_t count, const char *fmt,...)
178179
return len;
179180
}
180181

181-
static int
182+
int
182183
pg_vsprintf(char *str, const char *fmt, va_list args)
183184
{
184185
PrintfTarget target;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy