chiark / gitweb /
systemctl: make -f short for both --follow and --force
[elogind.git] / src / log.c
index e1f511cca6189d87c995bad265d6fa760bc99065..949936762a14c91830bd917029afeca91a205b47 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -582,26 +582,22 @@ int log_dump_internal(
         return r;
 }
 
-int log_meta(
+int log_metav(
         int level,
         const char*file,
         int line,
         const char *func,
-        const char *format, ...) {
+        const char *format,
+        va_list ap) {
 
         char buffer[LINE_MAX];
         int saved_errno, r;
-        va_list ap;
 
         if (_likely_(LOG_PRI(level) > log_max_level))
                 return 0;
 
         saved_errno = errno;
-
-        va_start(ap, format);
         vsnprintf(buffer, sizeof(buffer), format, ap);
-        va_end(ap);
-
         char_array_0(buffer);
 
         r = log_dispatch(level, file, line, func, buffer);
@@ -610,6 +606,23 @@ int log_meta(
         return r;
 }
 
+int log_meta(
+        int level,
+        const char*file,
+        int line,
+        const char *func,
+        const char *format, ...) {
+
+        int r;
+        va_list ap;
+
+        va_start(ap, format);
+        r = log_metav(level, file, line, func, format, ap);
+        va_end(ap);
+
+        return r;
+}
+
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wformat-nonliteral"
 _noreturn_ static void log_assert(const char *text, const char *file, int line, const char *func, const char *format) {