From d968bd85494e2486ba41e97969a0d0a9d80908d2 Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Wed, 13 Jun 2012 15:49:22 +1000 Subject: [PATCH] Use string object for log output buffering. Clang doesn't want to pass a char array to boost::format and I can't be arsed finding out why. --- log.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/log.cpp b/log.cpp index fb920072..c021afed 100644 --- a/log.cpp +++ b/log.cpp @@ -115,10 +115,12 @@ util::detail::log (level_t level, boost::format &&format) { static const boost::format LEVEL_FORMAT ("%s [%s] "); - char time_string[strlen("YYYY-mm-dd HHMMhSS") + 1]; + static const size_t time_len = strlen("YYYY-mm-dd HHMMhSS") + 1; + std::string time_string (time_len, '\0'); time_t unix_time = time (nullptr); - if (0 == strftime (time_string, - elems (time_string), + + if (0 == strftime (&time_string[0], + time_len, "%Y-%m-%d %H%Mh%S", localtime (&unix_time))) { unusual ();