Skip to content

Commit 19f7adc

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 648e41a commit 19f7adc

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
@@ -161,6 +161,9 @@ extern unsigned char pg_tolower(unsigned char ch);
161161
#ifdef snprintf
162162
#undef snprintf
163163
#endif
164+
#ifdef vsprintf
165+
#undef vsprintf
166+
#endif
164167
#ifdef sprintf
165168
#undef sprintf
166169
#endif
@@ -179,6 +182,7 @@ extern int
179182
pg_snprintf(char *str, size_t count, const char *fmt,...)
180183
/* This extension allows gcc to check the format string */
181184
__attribute__((format(printf, 3, 4)));
185+
extern int pg_vsprintf(char *str, const char *fmt, va_list args);
182186
extern int
183187
pg_sprintf(char *str, const char *fmt,...)
184188
/* This extension allows gcc to check the format string */
@@ -201,13 +205,15 @@ __attribute__((format(printf, 1, 2)));
201205
#ifdef __GNUC__
202206
#define vsnprintf(...) pg_vsnprintf(__VA_ARGS__)
203207
#define snprintf(...) pg_snprintf(__VA_ARGS__)
208+
#define vsprintf(...) pg_vsprintf(__VA_ARGS__)
204209
#define sprintf(...) pg_sprintf(__VA_ARGS__)
205210
#define vfprintf(...) pg_vfprintf(__VA_ARGS__)
206211
#define fprintf(...) pg_fprintf(__VA_ARGS__)
207212
#define printf(...) pg_printf(__VA_ARGS__)
208213
#else
209214
#define vsnprintf pg_vsnprintf
210215
#define snprintf pg_snprintf
216+
#define vsprintf pg_vsprintf
211217
#define sprintf pg_sprintf
212218
#define vfprintf pg_vfprintf
213219
#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