void fileWriter(MappingRaw* map, const int numRows, const string_t& fileName) { std::map<wchar_t, wchar_t> uniqnessCheck; std::stringstream ss; for (int i = 0; i < numRows; ++i) { ss << toUtf8(wstring_t(1, map[i].from)) << "|" << toUtf8(wstring_t(1, map[i].to)); //<< "|" << map[i].desc; ss << std::endl; auto it = uniqnessCheck.insert(std::make_pair(map[i].from, map[i].to)); if ( !it.second ) { wchar_t ch = map[i].from; wchar_t to = it.first->second; std::stringstream ss; ss << "Character INTCODE(" << (int) ch << "), HEX (0x" << Poco::NumberFormatter::formatHex((int)ch, 4) << "), CHAR (" << toUtf8(wstring_t(1, ch)) << ")" << " already mapped to INTCODE(" << (int)to << "), HEX (0x" << Poco::NumberFormatter::formatHex((int)to, 4) << "), CHAR (" << toUtf8(wstring_t(1, to)) << ")"; throw std::logic_error(ss.str().c_str()); } } writeFileAsBinary(fileName, ss.str()); }
wchar_t CharMapping::lookUp( wchar_t ch, const string_t& fontName ) { if (ch >= 0 && ch < 256) { /// this is very quick lookup if we are working with symbols with code /// < 256 wchar_t val = quickMap_[ch]; if (val != 0) return val; /// no mapping in this range, look inside std::map } auto it = mapping_.find(ch); if (it == mapping_.end()) { std::stringstream ss; ss << "LANG: " << language_ << ", FONT: " << fontName << ". No mapping for symbol: INTCODE (" << (int) ch << "), HEX (0x" << Poco::NumberFormatter::formatHex((int)ch, 4) << "), CHAR (" << toUtf8(wstring_t(1, ch)) << ")"; logError(logger(), ss.str()); it = mapping_.insert(std::make_pair(ch, ch)).first; } return it->second; }
/// /// ctor: init with wide string /// var::var(const wchar_t* s) : _var(wstring_t(s)) {}
/// /// ctor: init with wide string /// var::var(const wstring& s) : _var(wstring_t(s)) {}
/// /// assign wide string constant to var var& var::operator = (const wchar_t* s) { _var = wstring_t(s); return *this; }
UnicodeString & UnicodeString::Replace(intptr_t Pos, intptr_t Len, const wchar_t * Str, intptr_t DataLen) { Data.replace(Pos - 1, Len, wstring_t(Str, DataLen)); return *this; }