X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fdebug.c;h=09e03f1e499f81a9476a6ce279af089803ed631e;hb=1b7cf216d933b395dee691f05becca4dd44b26f7;hp=3cd6d0c92e0afb4975114d3b9fab5e7b058b1d29;hpb=e1d04f48a45c9f8e8ff75610003048f8ead73219;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/debug.c b/src/src/debug.c index 3cd6d0c92..09e03f1e4 100644 --- a/src/src/debug.c +++ b/src/src/debug.c @@ -152,33 +152,22 @@ void debug_printf_indent(const char * format, ...) { va_list ap; -unsigned depth = acl_level + expand_level, i; - -if (!debug_file) return; -if (depth > 0) - { - for (i = depth >> 2; i > 0; i--) - fprintf(debug_file, " ."); - fprintf(debug_file, "%*s", depth & 3, ""); - } - va_start(ap, format); -debug_vprintf(format, ap); +debug_vprintf(acl_level + expand_level, format, ap); va_end(ap); } - void debug_printf(const char *format, ...) { va_list ap; va_start(ap, format); -debug_vprintf(format, ap); +debug_vprintf(0, format, ap); va_end(ap); } void -debug_vprintf(const char *format, va_list ap) +debug_vprintf(int indent, const char *format, va_list ap) { int save_errno = errno; @@ -193,17 +182,21 @@ if (debug_ptr == debug_buffer) { DEBUG(D_timestamp) { - time_t now = time(NULL); - struct tm *t = timestamps_utc? gmtime(&now) : localtime(&now); - (void) sprintf(CS debug_ptr, "%02d:%02d:%02d ", t->tm_hour, t->tm_min, - t->tm_sec); - while(*debug_ptr != 0) debug_ptr++; + struct timeval now; + time_t tmp; + struct tm * t; + + gettimeofday(&now, NULL); + tmp = now.tv_sec; + t = timestamps_utc ? gmtime(&tmp) : localtime(&tmp); + debug_ptr += sprintf(CS debug_ptr, + LOGGING(millisec) ? "%02d:%02d:%02d.%03d " : "%02d:%02d:%02d ", + t->tm_hour, t->tm_min, t->tm_sec, (int)(now.tv_usec/1000)); } DEBUG(D_pid) { - sprintf(CS debug_ptr, "%5d ", (int)getpid()); - while(*debug_ptr != 0) debug_ptr++; + debug_ptr += sprintf(CS debug_ptr, "%5d ", (int)getpid()); } /* Set up prefix if outputting for host checking and not debugging */ @@ -217,6 +210,20 @@ if (debug_ptr == debug_buffer) debug_prefix_length = debug_ptr - debug_buffer; } +if (indent > 0) + { + int i; + for (i = indent >> 2; i > 0; i--) + { + Ustrcpy(debug_ptr, " " UTF8_VERT_2DASH); + debug_ptr += 6; /* 3 spaces + 3 UTF-8 octets */ + debug_prefix_length += 6; + } + Ustrncpy(debug_ptr, " ", indent &= 3); + debug_ptr += indent; + debug_prefix_length += indent; + } + /* Use the checked formatting routine to ensure that the buffer does not overflow. Ensure there's space for a newline at the end. */