diff options
author | Bruce Momjian <bruce@momjian.us> | 2005-03-11 17:20:35 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2005-03-11 17:20:35 +0000 |
commit | 3bc6bdf322ea625c23b15caa97daba6f43cfcc7f (patch) | |
tree | 15dc309bd1cf3e35f0282e687da02548f68ad323 /src/include | |
parent | 6521cd9ae104bb4552d2a43e1f79152014c4d156 (diff) | |
download | postgresql-3bc6bdf322ea625c23b15caa97daba6f43cfcc7f.tar.gz postgresql-3bc6bdf322ea625c23b15caa97daba6f43cfcc7f.zip |
Define snprintf() to call pg_snprintf() so our own snprintf-like
implementation doesn't export out via libpq and get used by a user
application.
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/pg_config.h.in | 3 | ||||
-rw-r--r-- | src/include/port.h | 22 |
2 files changed, 24 insertions, 1 deletions
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index 279b6b539c8..08cbc4bb2e3 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -648,6 +648,9 @@ /* Define to 1 to build with Rendezvous support. (--with-rendezvous) */ #undef USE_RENDEZVOUS +/* Use replacement snprintf() functions. */ +#undef USE_SNPRINTF + /* Define to build with (Open)SSL support. (--with-openssl) */ #undef USE_SSL diff --git a/src/include/port.h b/src/include/port.h index cd21976041a..5a2953ce600 100644 --- a/src/include/port.h +++ b/src/include/port.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/port.h,v 1.70 2005/02/27 00:53:29 momjian Exp $ + * $PostgreSQL: pgsql/src/include/port.h,v 1.71 2005/03/11 17:20:34 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -107,6 +107,26 @@ extern int pg_strncasecmp(const char *s1, const char *s2, size_t n); extern unsigned char pg_toupper(unsigned char ch); extern unsigned char pg_tolower(unsigned char ch); +#ifdef USE_SNPRINTF +extern int pg_vsnprintf(char *str, size_t count, const char *fmt, va_list args); +extern int pg_snprintf(char *str, size_t count, const char *fmt,...) +/* This extension allows gcc to check the format string */ +__attribute__((format(printf, 3, 4))); +extern int pg_printf(const char *fmt,...) +/* This extension allows gcc to check the format string */ +__attribute__((format(printf, 1, 2))); + +#ifdef __GNUC__ +#define vsnprintf(...) pg_vsnprintf(__VA_ARGS__) +#define snprintf(...) pg_snprintf(__VA_ARGS__) +#define printf(...) pg_printf(__VA_ARGS__) +#else +#define vsnprintf pg_vsnprintf +#define snprintf pg_snprintf +#define printf pg_printf +#endif +#endif + /* Portable prompt handling */ extern char *simple_prompt(const char *prompt, int maxlen, bool echo); |