aboutsummaryrefslogtreecommitdiff
path: root/src/common/Utilities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-01-08 21:16:53 +0100
committerShauren <shauren.trinity@gmail.com>2023-01-08 21:16:53 +0100
commitd791afae1dfcfaf592326f787755ca32d629e4d3 (patch)
tree54dc9916ede5800e110a2f0edff91530811fbdb8 /src/common/Utilities
parentb6820a706f46f18b9652fcd9806e4bec8805d29d (diff)
Core/Logging: Switch from fmt::sprintf to fmt::format (c++20 standard compatible api)
Diffstat (limited to 'src/common/Utilities')
-rw-r--r--src/common/Utilities/StartProcess.cpp8
-rw-r--r--src/common/Utilities/StringFormat.h16
-rw-r--r--src/common/Utilities/Util.cpp10
3 files changed, 18 insertions, 16 deletions
diff --git a/src/common/Utilities/StartProcess.cpp b/src/common/Utilities/StartProcess.cpp
index 00e5bc0bfe7..fc0dd54557f 100644
--- a/src/common/Utilities/StartProcess.cpp
+++ b/src/common/Utilities/StartProcess.cpp
@@ -87,8 +87,8 @@ static int CreateChildProcess(T waiter, std::string const& executable,
if (!secure)
{
- TC_LOG_TRACE(logger, "Starting process \"%s\" with arguments: \"%s\".",
- executable.c_str(), boost::algorithm::join(argsVector, " ").c_str());
+ TC_LOG_TRACE(logger, "Starting process \"{}\" with arguments: \"{}\".",
+ executable, boost::algorithm::join(argsVector, " "));
}
// prepare file with only read permission (boost process opens with read_write)
@@ -146,8 +146,8 @@ static int CreateChildProcess(T waiter, std::string const& executable,
if (!secure)
{
- TC_LOG_TRACE(logger, ">> Process \"%s\" finished with return value %i.",
- executable.c_str(), result);
+ TC_LOG_TRACE(logger, ">> Process \"{}\" finished with return value {}.",
+ executable, result);
}
return result;
diff --git a/src/common/Utilities/StringFormat.h b/src/common/Utilities/StringFormat.h
index 1de56097851..5802ae8d617 100644
--- a/src/common/Utilities/StringFormat.h
+++ b/src/common/Utilities/StringFormat.h
@@ -18,22 +18,24 @@
#ifndef TRINITYCORE_STRING_FORMAT_H
#define TRINITYCORE_STRING_FORMAT_H
-#include "fmt/printf.h"
+#include "fmt/core.h"
namespace Trinity
{
+ template<typename... Args>
+ using FormatString = std::string_view;
+
/// Default TC string format function.
template<typename... Args>
- std::string StringFormat(std::string_view fmt, Args&&... args)
+ inline std::string StringFormat(FormatString<Args...> fmt, Args&&... args)
{
try
{
- return fmt::sprintf(fmt, std::forward<Args>(args)...);
+ return fmt::format(fmt, std::forward<Args>(args)...);
}
- catch (fmt::format_error const& formatError)
+ catch (std::exception const& formatError)
{
- std::string error = "An error occurred formatting string \"" + std::string(fmt) + "\" : " + formatError.what();
- return error;
+ return fmt::format("An error occurred formatting string \"{}\" : {}", fmt, formatError.what());
}
}
@@ -50,7 +52,7 @@ namespace Trinity
}
/// Returns true if the given std::string_view is empty.
- inline bool IsFormatEmptyOrNull(std::string_view const& fmt)
+ inline constexpr bool IsFormatEmptyOrNull(std::string_view fmt)
{
return fmt.empty();
}
diff --git a/src/common/Utilities/Util.cpp b/src/common/Utilities/Util.cpp
index 269784a0bfd..fdd49b49855 100644
--- a/src/common/Utilities/Util.cpp
+++ b/src/common/Utilities/Util.cpp
@@ -106,13 +106,13 @@ std::string secsToTimeString(uint64 timeInSecs, TimeFormat timeFormat, bool hour
if (timeFormat == TimeFormat::Numeric)
{
if (days)
- return Trinity::StringFormat("%u:%02u:%02u:%02u", days, hours, minutes, secs);
+ return Trinity::StringFormat("{}:{:02}:{:02}:{:02}", days, hours, minutes, secs);
else if (hours)
- return Trinity::StringFormat("%u:%02u:%02u", hours, minutes, secs);
+ return Trinity::StringFormat("{}:{:02}:{:02}", hours, minutes, secs);
else if (minutes)
- return Trinity::StringFormat("%u:%02u", minutes, secs);
+ return Trinity::StringFormat("{}:{:02}", minutes, secs);
else
- return Trinity::StringFormat("0:%02u", secs);
+ return Trinity::StringFormat("0:{:02}", secs);
}
std::ostringstream ss;
@@ -281,7 +281,7 @@ std::string TimeToTimestampStr(time_t t)
// HH hour (2 digits 00-23)
// MM minutes (2 digits 00-59)
// SS seconds (2 digits 00-59)
- return Trinity::StringFormat("%04d-%02d-%02d_%02d-%02d-%02d", aTm.tm_year + 1900, aTm.tm_mon + 1, aTm.tm_mday, aTm.tm_hour, aTm.tm_min, aTm.tm_sec);
+ return Trinity::StringFormat("{:04}-{:02}-{:02}_{:02}-{:02}-{:02}", aTm.tm_year + 1900, aTm.tm_mon + 1, aTm.tm_mday, aTm.tm_hour, aTm.tm_min, aTm.tm_sec);
}
std::string TimeToHumanReadable(time_t t)