12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // Formatting library for C++ - test utilities
- //
- // Copyright (c) 2012 - present, Victor Zverovich
- // All rights reserved.
- //
- // For the license information refer to format.h.
- #include "util.h"
- #include <cstring>
- const char* const file_content = "Don't panic!";
- fmt::buffered_file open_buffered_file(FILE** fp) {
- #if FMT_USE_FCNTL
- fmt::file read_end, write_end;
- fmt::file::pipe(read_end, write_end);
- write_end.write(file_content, std::strlen(file_content));
- write_end.close();
- fmt::buffered_file f = read_end.fdopen("r");
- if (fp) *fp = f.get();
- #else
- fmt::buffered_file f("test-file", "w");
- fputs(file_content, f.get());
- if (fp) *fp = f.get();
- #endif
- return f;
- }
- std::locale do_get_locale(const char* name) {
- try {
- return std::locale(name);
- } catch (const std::runtime_error&) {
- }
- return std::locale::classic();
- }
- std::locale get_locale(const char* name, const char* alt_name) {
- auto loc = do_get_locale(name);
- if (loc == std::locale::classic() && alt_name) {
- loc = do_get_locale(alt_name);
- }
- if (loc == std::locale::classic())
- fmt::print(stderr, "{} locale is missing.\n", name);
- return loc;
- }
|