mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-12-16 04:09:39 +00:00
fmt: Replace removed locale-based format overloads for fmt >= 12
`fmt::format(std::locale, ...)` was removed in fmt 12, causing link errors when building with newer versions. Update `Movie.cpp` and `State.cpp` to conditionally use `std::ostringstream` + `std::put_time` when building against fmt >= 12, while keeping the existing locale-aware fmt calls for fmt 11. This ensures Dolphin builds cleanly with both fmt 11 and 12 while retaining localized time output.
This commit is contained in:
parent
fce5f7c74e
commit
88148a9960
@ -159,8 +159,15 @@ std::string MovieManager::GetRTCDisplay() const
|
|||||||
const time_t current_time = CEXIIPL::GetEmulatedTime(m_system, CEXIIPL::UNIX_EPOCH);
|
const time_t current_time = CEXIIPL::GetEmulatedTime(m_system, CEXIIPL::UNIX_EPOCH);
|
||||||
const tm gm_time = fmt::gmtime(current_time);
|
const tm gm_time = fmt::gmtime(current_time);
|
||||||
|
|
||||||
// Use current locale for formatting time, as fmt is locale-agnostic by default.
|
#if FMT_VERSION < 120000 // fmt < 12 still supports locale overload
|
||||||
return fmt::format(std::locale{""}, "Date/Time: {:%c}", gm_time);
|
return fmt::format(std::locale{""}, "Date/Time: {:%c}", gm_time);
|
||||||
|
#else
|
||||||
|
// fmt >= 12: no locale overload, fall back to standard library
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss.imbue(std::locale(""));
|
||||||
|
oss << "Date/Time: " << std::put_time(&gm_time, "%c");
|
||||||
|
return oss.str();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: GPU Thread
|
// NOTE: GPU Thread
|
||||||
|
|||||||
@ -285,8 +285,14 @@ static std::string SystemTimeAsDoubleToString(double time)
|
|||||||
if (!local_time)
|
if (!local_time)
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
// fmt is locale agnostic by default, so explicitly use current locale.
|
#if FMT_VERSION < 120000 // fmt < 12 still supports locale overload
|
||||||
return fmt::format(std::locale{""}, "{:%x %X}", *local_time);
|
return fmt::format(std::locale{""}, "{:%x %X}", *local_time);
|
||||||
|
#else
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss.imbue(std::locale(""));
|
||||||
|
oss << std::put_time(&*local_time, "%x %X");
|
||||||
|
return oss.str();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string MakeStateFilename(int number);
|
static std::string MakeStateFilename(int number);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user