]> git.sur5r.net Git - openldap/blobdiff - libraries/liblber/debug.c
Happy New Year!
[openldap] / libraries / liblber / debug.c
index 58849206409b3feca6314c86b2137fd788c7b65b..a47ac52711bf68f69c9bbbb87b5817c43071dded 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2013 The OpenLDAP Foundation.
+ * Copyright 1998-2016 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -33,6 +33,7 @@
 #include "ldap_pvt.h"
 
 static FILE *log_file = NULL;
+static int debug_lastc = '\n';
 
 int lutil_debug_file( FILE *file )
 {
@@ -46,6 +47,7 @@ void (lutil_debug)( int debug, int level, const char *fmt, ... )
 {
        char buffer[4096];
        va_list vl;
+       int len, off;
 
        if ( !(level & debug ) ) return;
 
@@ -62,9 +64,17 @@ void (lutil_debug)( int debug, int level, const char *fmt, ... )
        }
 #endif
 
-       sprintf(buffer, "%08x ", (unsigned) time(0L));
+       if (debug_lastc == '\n') {
+               sprintf(buffer, "%08x ", (unsigned) time(0L));
+               off = 9;
+       } else {
+               off = 0;
+       }
        va_start( vl, fmt );
-       vsnprintf( buffer+9, sizeof(buffer)-9, fmt, vl );
+       len = vsnprintf( buffer+off, sizeof(buffer)-off, fmt, vl );
+       if (len > sizeof(buffer)-off)
+               len = sizeof(buffer)-off;
+       debug_lastc = buffer[len+off-1];
        buffer[sizeof(buffer)-1] = '\0';
        if( log_file != NULL ) {
                fputs( buffer, log_file );