Skip to content

Commit d5abbd1

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 f4c12b4 commit d5abbd1

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
@@ -169,6 +169,9 @@ extern unsigned char pg_ascii_tolower(unsigned char ch);
169169
#ifdef snprintf
170170
#undef snprintf
171171
#endif
172+
#ifdef vsprintf
173+
#undef vsprintf
174+
#endif
172175
#ifdef sprintf
173176
#undef sprintf
174177
#endif
@@ -187,6 +190,7 @@ extern int
187190
pg_snprintf(char *str, size_t count, const char *fmt,...)
188191
/* This extension allows gcc to check the format string */
189192
__attribute__((format(PG_PRINTF_ATTRIBUTE, 3, 4)));
193+
extern int pg_vsprintf(char *str, const char *fmt, va_list args);
190194
extern int
191195
pg_sprintf(char *str, const char *fmt,...)
192196
/* This extension allows gcc to check the format string */
@@ -209,13 +213,15 @@ __attribute__((format(PG_PRINTF_ATTRIBUTE, 1, 2)));
209213
#ifdef __GNUC__
210214
#define vsnprintf(...) pg_vsnprintf(__VA_ARGS__)
211215
#define snprintf(...) pg_snprintf(__VA_ARGS__)
216+
#define vsprintf(...) pg_vsprintf(__VA_ARGS__)
212217
#define sprintf(...) pg_sprintf(__VA_ARGS__)
213218
#define vfprintf(...) pg_vfprintf(__VA_ARGS__)
214219
#define fprintf(...) pg_fprintf(__VA_ARGS__)
215220
#define printf(...) pg_printf(__VA_ARGS__)
216221
#else
217222
#define vsnprintf pg_vsnprintf
218223
#define snprintf pg_snprintf
224+
#define vsprintf pg_vsprintf
219225
#define sprintf pg_sprintf
220226
#define vfprintf pg_vfprintf
221227
#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