Skip to content

Commit 5390e29

Browse files
committed
Enable mojibake
1 parent 9f6434d commit 5390e29

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

include/fmt/core.h

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1507,15 +1507,14 @@ inline std::basic_string<Char> format(const S& format_str, Args&&... args) {
15071507
{internal::make_args_checked<Args...>(format_str, args...)});
15081508
}
15091509

1510-
FMT_API void vprint(string_view format_str, format_args args);
1511-
FMT_API void vprint(std::FILE* f, string_view format_str, format_args args);
1512-
FMT_API void vprint_mojibake(std::FILE* f, string_view format_str,
1513-
format_args args);
1510+
FMT_API void vprint(string_view, format_args);
1511+
FMT_API void vprint(std::FILE*, string_view, format_args);
1512+
FMT_API void vprint_mojibake(std::FILE*, string_view, format_args);
15141513

15151514
/**
15161515
\rst
1517-
Prints formatted data to the file *f*. For wide format strings,
1518-
*f* should be in wide-oriented mode set via ``fwide(f, 1)``.
1516+
Prints formatted data to the file *f*. For wide format strings *f* should be
1517+
in wide-oriented mode set via ``fwide(f, 1)``.
15191518
15201519
**Example**::
15211520
@@ -1525,8 +1524,13 @@ FMT_API void vprint_mojibake(std::FILE* f, string_view format_str,
15251524
template <typename S, typename... Args,
15261525
FMT_ENABLE_IF(internal::is_string<S>::value)>
15271526
inline void print(std::FILE* f, const S& format_str, Args&&... args) {
1527+
#if !defined(_WIN32) || FMT_UNICODE
15281528
vprint(f, to_string_view(format_str),
15291529
internal::make_args_checked<Args...>(format_str, args...));
1530+
#else
1531+
vprint_mojibake(f, to_string_view(format_str),
1532+
internal::make_args_checked<Args...>(format_str, args...));
1533+
#endif
15301534
}
15311535

15321536
/**

include/fmt/format-inl.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
# include <locale>
2222
#endif
2323

24-
#if FMT_UNICODE
24+
#ifdef _WIN32
2525
# include <io.h>
2626
# include <windows.h>
2727
#endif
@@ -1345,7 +1345,7 @@ FMT_FUNC void vprint(std::FILE* f, string_view format_str, format_args args) {
13451345
memory_buffer buffer;
13461346
internal::vformat_to(buffer, format_str,
13471347
basic_format_args<buffer_context<char>>(args));
1348-
#if defined(_WIN32) && FMT_UNICODE
1348+
#ifdef _WIN32
13491349
auto fd = _fileno(f);
13501350
if (_isatty(fd)) {
13511351
internal::utf8_to_utf16 u16(string_view(buffer.data(), buffer.size()));
@@ -1361,6 +1361,7 @@ FMT_FUNC void vprint(std::FILE* f, string_view format_str, format_args args) {
13611361
}
13621362

13631363
#ifdef _WIN32
1364+
// Print assuming legacy (non-Unicode) encoding.
13641365
FMT_FUNC void vprint_mojibake(std::FILE* f, string_view format_str,
13651366
format_args args) {
13661367
memory_buffer buffer;

0 commit comments

Comments
 (0)