diff --git a/include/fmt/format-inl.h b/include/fmt/format-inl.h index b147b771..49779a0f 100644 --- a/include/fmt/format-inl.h +++ b/include/fmt/format-inl.h @@ -18,7 +18,9 @@ #include #include #include // for std::ptrdiff_t -#include +#if !defined(FMT_STATIC_THOUSANDS_SEPARATOR) +# include +#endif #if defined(_WIN32) && defined(__MINGW32__) # include @@ -193,6 +195,7 @@ void report_error(FormatFunc func, int error_code, } } // namespace +#if !defined(FMT_STATIC_THOUSANDS_SEPARATOR) class locale { private: std::locale locale_; @@ -217,6 +220,12 @@ FMT_FUNC Char internal::thousands_sep(locale_provider *lp) { std::locale loc = lp ? lp->locale().get() : std::locale(); return std::use_facet>(loc).thousands_sep(); } +#else +template +FMT_FUNC Char internal::thousands_sep(locale_provider *lp) { + return FMT_STATIC_THOUSANDS_SEPARATOR; +} +#endif FMT_FUNC void system_error::init( int err_code, string_view format_str, format_args args) { @@ -569,8 +578,9 @@ FMT_FUNC void vprint_rgb(rgb fd, rgb bg, string_view format, format_args args) { std::fputs(internal::data::RESET_COLOR, stdout); } #endif - +#if !defined(FMT_STATIC_THOUSANDS_SEPARATOR) FMT_FUNC locale locale_provider::locale() { return fmt::locale(); } +#endif FMT_END_NAMESPACE diff --git a/include/fmt/posix.h b/include/fmt/posix.h index 2fb01260..7bf877b4 100644 --- a/include/fmt/posix.h +++ b/include/fmt/posix.h @@ -266,7 +266,8 @@ class file { long getpagesize(); #if (defined(LC_NUMERIC_MASK) || defined(_MSC_VER)) && \ - !defined(__ANDROID__) && !defined(__CYGWIN__) && !defined(__OpenBSD__) + !defined(__ANDROID__) && !defined(__CYGWIN__) && !defined(__OpenBSD__) && \ + !defined(__NEWLIB_H__) # define FMT_LOCALE #endif