helper/log: Add log_vprintf_lf()
Add log_vprintf_lf() to enable the possibility to output log messages with a variable argument list. Change-Id: I7fd6e93db63a7d98f662df2881a42e4d923c3848 Signed-off-by: Marc Schink <openocd-dev@marcschink.de> Reviewed-on: http://openocd.zylin.com/3709 Tested-by: jenkins Reviewed-by: Andreas Färber <afaerber@suse.de> Reviewed-by: Paul Fertser <fercerpav@gmail.com>gitignore-build
parent
640894e731
commit
3c8832fe6e
|
@ -191,6 +191,30 @@ void log_printf(enum log_levels level,
|
|||
va_end(ap);
|
||||
}
|
||||
|
||||
void log_vprintf_lf(enum log_levels level, const char *file, unsigned line,
|
||||
const char *function, const char *format, va_list args)
|
||||
{
|
||||
char *tmp;
|
||||
|
||||
count++;
|
||||
|
||||
if (level > debug_level)
|
||||
return;
|
||||
|
||||
tmp = alloc_vprintf(format, args);
|
||||
|
||||
if (!tmp)
|
||||
return;
|
||||
|
||||
/*
|
||||
* Note: alloc_vprintf() guarantees that the buffer is at least one
|
||||
* character longer.
|
||||
*/
|
||||
strcat(tmp, "\n");
|
||||
log_puts(level, file, line, function, tmp);
|
||||
free(tmp);
|
||||
}
|
||||
|
||||
void log_printf_lf(enum log_levels level,
|
||||
const char *file,
|
||||
unsigned line,
|
||||
|
@ -198,23 +222,10 @@ void log_printf_lf(enum log_levels level,
|
|||
const char *format,
|
||||
...)
|
||||
{
|
||||
char *string;
|
||||
va_list ap;
|
||||
|
||||
count++;
|
||||
if (level > debug_level)
|
||||
return;
|
||||
|
||||
va_start(ap, format);
|
||||
|
||||
string = alloc_vprintf(format, ap);
|
||||
if (string != NULL) {
|
||||
strcat(string, "\n"); /* alloc_vprintf guaranteed the buffer to be at least one
|
||||
*char longer */
|
||||
log_puts(level, file, line, function, string);
|
||||
free(string);
|
||||
}
|
||||
|
||||
log_vprintf_lf(level, file, line, function, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
|
|
|
@ -60,6 +60,8 @@ enum log_levels {
|
|||
void log_printf(enum log_levels level, const char *file, unsigned line,
|
||||
const char *function, const char *format, ...)
|
||||
__attribute__ ((format (PRINTF_ATTRIBUTE_FORMAT, 5, 6)));
|
||||
void log_vprintf_lf(enum log_levels level, const char *file, unsigned line,
|
||||
const char *function, const char *format, va_list args);
|
||||
void log_printf_lf(enum log_levels level, const char *file, unsigned line,
|
||||
const char *function, const char *format, ...)
|
||||
__attribute__ ((format (PRINTF_ATTRIBUTE_FORMAT, 5, 6)));
|
||||
|
|
Loading…
Reference in New Issue