]> sigrok.org Git - libsigrok.git/blobdiff - src/log.c
Build: Include <config.h> first in all source files
[libsigrok.git] / src / log.c
index 2265181ea9c16c7eb87129cae522f6914e33fd96..3d65cc4e20bb755d7550f87b85959990976916c9 100644 (file)
--- a/src/log.c
+++ b/src/log.c
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
+#include <config.h>
 #include <stdarg.h>
 #include <stdio.h>
+#include <glib/gprintf.h>
 #include <libsigrok/libsigrok.h>
 #include "libsigrok-internal.h"
 
@@ -161,6 +163,7 @@ static int sr_logv(void *cb_data, int loglevel, const char *format, va_list args
 {
        uint64_t elapsed_us, minutes;
        unsigned int rest_us, seconds, microseconds;
+       int ret;
 
        /* This specific log callback doesn't need the void pointer data. */
        (void)cb_data;
@@ -177,13 +180,14 @@ static int sr_logv(void *cb_data, int loglevel, const char *format, va_list args
                seconds = rest_us / G_TIME_SPAN_SECOND;
                microseconds = rest_us % G_TIME_SPAN_SECOND;
 
-               if (fprintf(stderr, "[%.2" PRIu64 ":%.2u.%.6u] ",
-                               minutes, seconds, microseconds) < 0)
-                       return SR_ERR;
+               ret = g_fprintf(stderr, "sr: [%.2" PRIu64 ":%.2u.%.6u] ",
+                               minutes, seconds, microseconds);
+       } else {
+               ret = fputs("sr: ", stderr);
        }
-       if (vfprintf(stderr, format, args) < 0)
-               return SR_ERR;
-       if (putc('\n', stderr) < 0)
+
+       if (ret < 0 || g_vfprintf(stderr, format, args) < 0
+                       || putc('\n', stderr) < 0)
                return SR_ERR;
 
        return SR_OK;