summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/error/elog.c16
-rw-r--r--src/include/utils/elog.h1
-rw-r--r--src/port/win32security.c4
3 files changed, 16 insertions, 5 deletions
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index 648d2d2e70c..29643c51439 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -3795,13 +3795,24 @@ write_stderr(const char *fmt,...)
{
va_list ap;
+ va_start(ap, fmt);
+ vwrite_stderr(fmt, ap);
+ va_end(ap);
+}
+
+
+/*
+ * Write errors to stderr (or by equal means when stderr is
+ * not available) - va_list version
+ */
+void
+vwrite_stderr(const char *fmt, va_list ap)
+{
#ifdef WIN32
char errbuf[2048]; /* Arbitrary size? */
#endif
fmt = _(fmt);
-
- va_start(ap, fmt);
#ifndef WIN32
/* On Unix, we just fprintf to stderr */
vfprintf(stderr, fmt, ap);
@@ -3824,5 +3835,4 @@ write_stderr(const char *fmt,...)
fflush(stderr);
}
#endif
- va_end(ap);
}
diff --git a/src/include/utils/elog.h b/src/include/utils/elog.h
index 348dafbf906..001ab93ae6c 100644
--- a/src/include/utils/elog.h
+++ b/src/include/utils/elog.h
@@ -528,5 +528,6 @@ extern void write_jsonlog(ErrorData *edata);
* safely (memory context, GUC load etc)
*/
extern void write_stderr(const char *fmt,...) pg_attribute_printf(1, 2);
+extern void vwrite_stderr(const char *fmt, va_list ap) pg_attribute_printf(1, 0);
#endif /* ELOG_H */
diff --git a/src/port/win32security.c b/src/port/win32security.c
index a46b82dd048..b7608ab1706 100644
--- a/src/port/win32security.c
+++ b/src/port/win32security.c
@@ -31,9 +31,9 @@ log_error(const char *fmt,...)
va_start(ap, fmt);
#ifndef FRONTEND
- write_stderr(fmt, ap);
+ vwrite_stderr(fmt, ap);
#else
- fprintf(stderr, fmt, ap);
+ vfprintf(stderr, fmt, ap);
#endif
va_end(ap);
}