Commit d3183152 authored by Bruce Momjian's avatar Bruce Momjian

> 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
parent 9fbaf1d8
...@@ -129,6 +129,34 @@ tprintf(int flag, const char *fmt,...) ...@@ -129,6 +129,34 @@ tprintf(int flag, const char *fmt,...)
return 1; 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. * Print a timestamp and a message to stderr.
*/ */
......
...@@ -27,6 +27,7 @@ char *tprintf_timestamp(void); ...@@ -27,6 +27,7 @@ char *tprintf_timestamp(void);
#define TIMESTAMP_SIZE 0 #define TIMESTAMP_SIZE 0
#endif #endif
extern int tprintf1(const char *fmt, ...);
extern int tprintf(int flag, const char *fmt,...); extern int tprintf(int flag, const char *fmt,...);
extern int eprintf(const char *fmt,...); extern int eprintf(const char *fmt,...);
extern int option_flag(int flag); extern int option_flag(int flag);
...@@ -75,9 +76,15 @@ enum pg_option_enum ...@@ -75,9 +76,15 @@ enum pg_option_enum
extern int pg_options[NUM_PG_OPTIONS]; extern int pg_options[NUM_PG_OPTIONS];
#define PRINTF(args...) tprintf(TRACE_ALL, args) #ifdef __GNUC__
#define EPRINTF(args...) eprintf(args) #define PRINTF(args...) tprintf1(args)
#define EPRINTF(args...) eprintf(args)
#define TPRINTF(flag, args...) tprintf(flag, args) #define TPRINTF(flag, args...) tprintf(flag, args)
#else
#define PRINTF tprintf1
#define EPRINTF eprintf
#define TPRINTF tprintf
#endif
#endif /* TRACE_H */ #endif /* TRACE_H */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment