Commit 9c0b2a08 authored by Stefan Westerfeld's avatar Stefan Westerfeld

Provide string_printf helper.

Signed-off-by: Stefan Westerfeld's avatarStefan Westerfeld <stefan@space.twc.de>
parent c6991a4b
......@@ -108,6 +108,35 @@ vec_to_hex_str (const vector<unsigned char>& vec)
return s;
}
static string
string_vprintf (const char *format, va_list vargs)
{
string s;
char *str = NULL;
if (vasprintf (&str, format, vargs) >= 0 && str)
{
s = str;
free (str);
}
else
s = format;
return s;
}
string
string_printf (const char *format, ...)
{
va_list ap;
va_start (ap, format);
string s = string_vprintf (format, ap);
va_end (ap);
return s;
}
static Log log_level = Log::INFO;
void
......@@ -121,12 +150,10 @@ logv (Log log, const char *format, va_list vargs)
{
if (log >= log_level)
{
char buffer[1024];
vsnprintf (buffer, sizeof (buffer), format, vargs);
string s = string_vprintf (format, vargs);
/* could support custom log function here */
fprintf (stderr, "%s", buffer);
fprintf (stderr, "%s", s.c_str());
fflush (stderr);
}
}
......
......@@ -58,6 +58,8 @@ enum class Log { ERROR = 3, WARNING = 2, INFO = 1, DEBUG = 0 };
void set_log_level (Log level);
std::string string_printf (const char *fmt, ...) AUDIOWMARK_PRINTF (1, 2);
class Error
{
public:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment