summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2018-04-30 00:37:15 +0200
committerLioncash <mathew1800@gmail.com>2018-04-30 00:52:33 +0200
commit3abba08080c88c49359e91ab2688c23fa066110a (patch)
treec354d58817e230cc2ba1306e449628ef8dafeb3d /src/common
parentMerge pull request #421 from Subv/sh_pred3 (diff)
downloadyuzu-3abba08080c88c49359e91ab2688c23fa066110a.tar
yuzu-3abba08080c88c49359e91ab2688c23fa066110a.tar.gz
yuzu-3abba08080c88c49359e91ab2688c23fa066110a.tar.bz2
yuzu-3abba08080c88c49359e91ab2688c23fa066110a.tar.lz
yuzu-3abba08080c88c49359e91ab2688c23fa066110a.tar.xz
yuzu-3abba08080c88c49359e91ab2688c23fa066110a.tar.zst
yuzu-3abba08080c88c49359e91ab2688c23fa066110a.zip
Diffstat (limited to 'src/common')
-rw-r--r--src/common/memory_util.cpp3
-rw-r--r--src/common/string_util.cpp70
-rw-r--r--src/common/string_util.h14
-rw-r--r--src/common/timer.cpp13
4 files changed, 9 insertions, 91 deletions
diff --git a/src/common/memory_util.cpp b/src/common/memory_util.cpp
index 79b7215d3..4d1ec8fb9 100644
--- a/src/common/memory_util.cpp
+++ b/src/common/memory_util.cpp
@@ -167,8 +167,7 @@ std::string MemUsage() {
return "MemUsage Error";
if (GetProcessMemoryInfo(hProcess, &pmc, sizeof(pmc)))
- Ret = Common::StringFromFormat(
- "%s K", Common::ThousandSeparate(pmc.WorkingSetSize / 1024, 7).c_str());
+ Ret = fmt::format("{} K", Common::ThousandSeparate(pmc.WorkingSetSize / 1024, 7));
CloseHandle(hProcess);
return Ret;
diff --git a/src/common/string_util.cpp b/src/common/string_util.cpp
index 96c52e3ba..1d952874d 100644
--- a/src/common/string_util.cpp
+++ b/src/common/string_util.cpp
@@ -46,76 +46,6 @@ bool AsciiToHex(const char* _szValue, u32& result) {
return true;
}
-bool CharArrayFromFormatV(char* out, int outsize, const char* format, va_list args) {
- int writtenCount;
-
-#ifdef _MSC_VER
- // You would think *printf are simple, right? Iterate on each character,
- // if it's a format specifier handle it properly, etc.
- //
- // Nooooo. Not according to the C standard.
- //
- // According to the C99 standard (7.19.6.1 "The fprintf function")
- // The format shall be a multibyte character sequence
- //
- // Because some character encodings might have '%' signs in the middle of
- // a multibyte sequence (SJIS for example only specifies that the first
- // byte of a 2 byte sequence is "high", the second byte can be anything),
- // printf functions have to decode the multibyte sequences and try their
- // best to not screw up.
- //
- // Unfortunately, on Windows, the locale for most languages is not UTF-8
- // as we would need. Notably, for zh_TW, Windows chooses EUC-CN as the
- // locale, and completely fails when trying to decode UTF-8 as EUC-CN.
- //
- // On the other hand, the fix is simple: because we use UTF-8, no such
- // multibyte handling is required as we can simply assume that no '%' char
- // will be present in the middle of a multibyte sequence.
- //
- // This is why we lookup an ANSI (cp1252) locale here and use _vsnprintf_l.
- static locale_t c_locale = nullptr;
- if (!c_locale)
- c_locale = _create_locale(LC_ALL, ".1252");
- writtenCount = _vsnprintf_l(out, outsize, format, c_locale, args);
-#else
- writtenCount = vsnprintf(out, outsize, format, args);
-#endif
-
- if (writtenCount > 0 && writtenCount < outsize) {
- out[writtenCount] = '\0';
- return true;
- } else {
- out[outsize - 1] = '\0';
- return false;
- }
-}
-
-std::string StringFromFormat(const char* format, ...) {
- va_list args;
- char* buf = nullptr;
-#ifdef _WIN32
- int required = 0;
-
- va_start(args, format);
- required = _vscprintf(format, args);
- buf = new char[required + 1];
- CharArrayFromFormatV(buf, required + 1, format, args);
- va_end(args);
-
- std::string temp = buf;
- delete[] buf;
-#else
- va_start(args, format);
- if (vasprintf(&buf, format, args) < 0)
- NGLOG_ERROR(Common, "Unable to allocate memory for string");
- va_end(args);
-
- std::string temp = buf;
- free(buf);
-#endif
- return temp;
-}
-
// For Debugging. Read out an u8 array.
std::string ArrayToString(const u8* data, size_t size, int line_len, bool spaces) {
std::ostringstream oss;
diff --git a/src/common/string_util.h b/src/common/string_util.h
index ec0c31a24..65e4ea5d3 100644
--- a/src/common/string_util.h
+++ b/src/common/string_util.h
@@ -4,7 +4,6 @@
#pragma once
-#include <cstdarg>
#include <cstddef>
#include <iomanip>
#include <sstream>
@@ -20,19 +19,6 @@ std::string ToLower(std::string str);
/// Make a string uppercase
std::string ToUpper(std::string str);
-std::string StringFromFormat(const char* format, ...);
-// Cheap!
-bool CharArrayFromFormatV(char* out, int outsize, const char* format, va_list args);
-
-template <size_t Count>
-inline void CharArrayFromFormat(char (&out)[Count], const char* format, ...) {
- va_list args;
- va_start(args, format);
- CharArrayFromFormatV(out, Count, format, args);
- va_end(args);
-}
-
-// Good
std::string ArrayToString(const u8* data, size_t size, int line_len = 20, bool spaces = true);
std::string StripSpaces(const std::string& s);
diff --git a/src/common/timer.cpp b/src/common/timer.cpp
index c9803109e..f0c5b1a43 100644
--- a/src/common/timer.cpp
+++ b/src/common/timer.cpp
@@ -2,7 +2,10 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <time.h>
+#include <ctime>
+
+#include <fmt/format.h>
+
#ifdef _WIN32
#include <windows.h>
// windows.h needs to be included before other windows headers
@@ -104,8 +107,8 @@ std::string Timer::GetTimeElapsedFormatted() const {
// Hours
u32 Hours = Minutes / 60;
- std::string TmpStr = StringFromFormat("%02i:%02i:%02i:%03i", Hours, Minutes % 60, Seconds % 60,
- Milliseconds % 1000);
+ std::string TmpStr = fmt::format("{:02}:{:02}:{:02}:{:03}", Hours, Minutes % 60, Seconds % 60,
+ Milliseconds % 1000);
return TmpStr;
}
@@ -165,11 +168,11 @@ std::string Timer::GetTimeFormatted() {
#ifdef _WIN32
struct timeb tp;
(void)::ftime(&tp);
- return StringFromFormat("%s:%03i", tmp, tp.millitm);
+ return fmt::format("{}:{:03}", tmp, tp.millitm);
#else
struct timeval t;
(void)gettimeofday(&t, nullptr);
- return StringFromFormat("%s:%03d", tmp, (int)(t.tv_usec / 1000));
+ return fmt::format("{}:{:03}", tmp, static_cast<int>(t.tv_usec / 1000));
#endif
}