> Yikes, that is certainly not standard C. I have never seen that

before.
> Looks like a GNU-ism.  I nice one, but still a GNU-ism.

Sorry, I didn't know it is a GNU extension. I have written this patch
which should fix the problem. Let me know if you still have problems.

Massimo Dal Zotto
This commit is contained in:
Bruce Momjian 1998-09-03 02:20:30 +00:00
parent 9fbaf1d851
commit d318315200
2 changed files with 37 additions and 2 deletions

View File

@ -129,6 +129,34 @@ tprintf(int flag, const char *fmt,...)
return 1;
}
/*
* Print a timestamp and a message to stdout or to syslog.
*/
int
tprintf1(const char *fmt, ... )
{
va_list ap;
char line[ELOG_MAXLEN+TIMESTAMP_SIZE+1];
va_start(ap, fmt);
#ifdef ELOG_TIMESTAMPS
strcpy(line, tprintf_timestamp());
#endif
vsprintf(line+TIMESTAMP_SIZE, fmt, ap);
va_end(ap);
#ifdef USE_SYSLOG
write_syslog(LOG_INFO, line+TIMESTAMP_SIZE);
#endif
if (UseSyslog <= 1) {
puts(line);
fflush(stdout);
}
return 1;
}
/*
* Print a timestamp and a message to stderr.
*/

View File

@ -27,6 +27,7 @@ char *tprintf_timestamp(void);
#define TIMESTAMP_SIZE 0
#endif
extern int tprintf1(const char *fmt, ...);
extern int tprintf(int flag, const char *fmt,...);
extern int eprintf(const char *fmt,...);
extern int option_flag(int flag);
@ -75,9 +76,15 @@ enum pg_option_enum
extern int pg_options[NUM_PG_OPTIONS];
#define PRINTF(args...) tprintf(TRACE_ALL, args)
#define EPRINTF(args...) eprintf(args)
#ifdef __GNUC__
#define PRINTF(args...) tprintf1(args)
#define EPRINTF(args...) eprintf(args)
#define TPRINTF(flag, args...) tprintf(flag, args)
#else
#define PRINTF tprintf1
#define EPRINTF eprintf
#define TPRINTF tprintf
#endif
#endif /* TRACE_H */