Sha256: 32403fdbd5ae4bec75116d57d2eb31f27e1838083e2fac7b3385e009b29e16c7
Contents?: true
Size: 1.84 KB
Versions: 4
Compression:
Stored size: 1.84 KB
Contents
#include <Gosu/Utility.hpp> #include <Gosu/Platform.hpp> #include <cstddef> #include <cstdlib> #include <cstring> #include <cwchar> #include <cwctype> #include <algorithm> #include <stdexcept> #include <vector> using namespace std; #ifndef GOSU_IS_IPHONE #ifndef GOSU_IS_WIN #include "Iconv.hpp" #endif using namespace std; #ifndef GOSU_IS_WIN namespace { extern const char UTF_8[] = "UTF-8"; #ifdef __BIG_ENDIAN__ extern const char UCS_4_INTERNAL[] = "UCS-4BE"; #else extern const char UCS_4_INTERNAL[] = "UCS-4LE"; #endif } wstring Gosu::utf8_to_wstring(const string& s) { return iconvert<wstring, UCS_4_INTERNAL, UTF_8>(s); } string Gosu::wstring_to_utf8(const wstring& ws) { return iconvert<string, UTF_8, UCS_4_INTERNAL>(ws); } #else #ifndef NOMINMAX #define NOMINMAX #endif #include <windows.h> wstring Gosu::utf8_to_wstring(const string& utf8) { vector<wchar_t> buffer(utf8.size() + 1); MultiByteToWideChar(CP_UTF8, 0, utf8.c_str(), utf8.size() + 1, &buffer[0], buffer.size()); return &buffer[0]; } string Gosu::wstring_to_utf8(const wstring& ws) { unsigned size = WideCharToMultiByte(CP_UTF8, 0, ws.c_str(), ws.size(), 0, 0, 0, 0); vector<char> buffer(size + 1); WideCharToMultiByte(CP_UTF8, 0, ws.c_str(), ws.size(), &buffer[0], buffer.size(), 0, 0); return &buffer[0]; } #endif #endif bool Gosu::has_extension(const string& filename, const char* extension) { size_t ext_len = strlen(extension); if (ext_len > filename.length()) { return false; } const char* str = filename.c_str() + filename.length(); const char* ext = extension + ext_len; while (ext_len--) { if (tolower((int) *--str) != *--ext) { return false; } } return true; } #if defined(GOSU_IS_UNIX) && !defined(GOSU_IS_MAC) string Gosu::language() { return getenv("LANG"); } #endif
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
gosu-0.13.3 | src/Utility.cpp |
gosu-0.13.2 | src/Utility.cpp |
gosu-0.13.1 | src/Utility.cpp |
gosu-0.13.0 | src/Utility.cpp |