diff options
author | uht <uht@yandex-team.ru> | 2022-02-10 16:49:56 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:49:56 +0300 |
commit | 570af552997dea3da2712f693b345afa31932f3b (patch) | |
tree | 5d5cb817648f650d76cf1076100726fd9b8448e8 /library/cpp/charset/recyr.hh | |
parent | 1191d1e479d83a18a813a5107573ce22a2f0bbb4 (diff) | |
download | ydb-570af552997dea3da2712f693b345afa31932f3b.tar.gz |
Restoring authorship annotation for <uht@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/charset/recyr.hh')
-rw-r--r-- | library/cpp/charset/recyr.hh | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/library/cpp/charset/recyr.hh b/library/cpp/charset/recyr.hh index ee2bed9dc3..5ec8734bcf 100644 --- a/library/cpp/charset/recyr.hh +++ b/library/cpp/charset/recyr.hh @@ -9,25 +9,25 @@ #include "codepage.h" #include "doccodes.h" #include "iconv.h" -#include "recyr_int.hh" +#include "recyr_int.hh" -/////////////////////////////////////////////////////////////////////////////////////// -// input buf -> output buf // -/////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////////// +// input buf -> output buf // +/////////////////////////////////////////////////////////////////////////////////////// template <class TCharType> inline RECODE_RESULT RecodeToUnicode(ECharset from, const char* in, TCharType* out, size_t inSize, size_t outSize, size_t& inRead, size_t& outWritten) { static_assert(sizeof(TCharType) > 1, "expect wide character type"); return NCodepagePrivate::_recodeToUnicode(from, in, out, inSize, outSize, inRead, outWritten); -} - +} + template <class TCharType> inline RECODE_RESULT RecodeFromUnicode(ECharset to, const TCharType* in, char* out, size_t inSize, size_t outSize, size_t& inRead, size_t& outWritten) { static_assert(sizeof(TCharType) > 1, "expect wide character type"); return NCodepagePrivate::_recodeFromUnicode(to, in, out, inSize, outSize, inRead, outWritten); -} - +} + inline RECODE_RESULT RecodeFromUnicode(ECharset to, wchar32 rune, char* out, size_t outSize, size_t& outWritten) { return NCodepagePrivate::_recodeFromUnicode(to, rune, out, outSize, outWritten); } @@ -66,7 +66,7 @@ inline RECODE_RESULT Recode(ECharset from, ECharset to, const char* in, char* ou if (to == from) return NCodepagePrivate::_recodeCopy(in, out, inSize, outSize, inRead, outWritten); - + if (NCodepagePrivate::NativeCodepage(from) && NCodepagePrivate::NativeCodepage(to)) { if (from == CODES_UTF8) return NCodepagePrivate::_recodeFromUTF8(to, in, out, inSize, outSize, inRead, outWritten); @@ -79,7 +79,7 @@ inline RECODE_RESULT Recode(ECharset from, ECharset to, const char* in, char* ou } else if (NICONVPrivate::CanConvert(from, to)) { return NICONVPrivate::RecodeNoThrow(from, to, in, out, inSize, outSize, inRead, outWritten); } - + size_t wideSize = inSize * 3; TArrayHolder<wchar16> wide(new wchar16[wideSize]); @@ -131,22 +131,22 @@ inline bool Recode(ECharset from, ECharset to, const TStringBuf& in, TString& ou return true; } -/////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////////// // TString -> TString // -/////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////////// inline TString Recode(ECharset from, ECharset to, const TString& in) { TString out; return to != from && Recode(from, to, in, out) ? out : in; -} +} inline TString RecodeToYandex(ECharset from, const TString& in) { return Recode(from, CODES_YANDEX, in); -} +} inline TString RecodeFromYandex(ECharset to, const TString& in) { return Recode(CODES_YANDEX, to, in); -} - +} + inline TString RecodeToHTMLEntities(ECharset from, const TString& in) { - RECODE_RESULT res; + RECODE_RESULT res; size_t outWritten, inRead; TString out; out.resize(in.length() * (4 + 4)); @@ -154,11 +154,11 @@ inline TString RecodeToHTMLEntities(ECharset from, const TString& in) { if (res == RECODE_EOOUTPUT) { //input contains many 8-byte characters? out.resize(in.length() * (4 + 8)); res = NCodepagePrivate::_recodeToHTMLEntities(from, in.c_str(), out.begin(), in.length(), out.length(), inRead, outWritten); - } + } if (res != RECODE_OK) { ythrow yexception() << "Recode to HTML entities failed"; } out.resize(outWritten - 1); - return out; -} + return out; +} |