aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/charset/iconv.cpp
diff options
context:
space:
mode:
authorAnton Samokhvalov <pg83@yandex.ru>2022-02-10 16:45:17 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:17 +0300
commitd3a398281c6fd1d3672036cb2d63f842d2cb28c5 (patch)
treedd4bd3ca0f36b817e96812825ffaf10d645803f2 /library/cpp/charset/iconv.cpp
parent72cb13b4aff9bc9cf22e49251bc8fd143f82538f (diff)
downloadydb-d3a398281c6fd1d3672036cb2d63f842d2cb28c5.tar.gz
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/charset/iconv.cpp')
-rw-r--r--library/cpp/charset/iconv.cpp186
1 files changed, 93 insertions, 93 deletions
diff --git a/library/cpp/charset/iconv.cpp b/library/cpp/charset/iconv.cpp
index 605d0699efc..df434714708 100644
--- a/library/cpp/charset/iconv.cpp
+++ b/library/cpp/charset/iconv.cpp
@@ -1,94 +1,94 @@
-#include "iconv.h"
-
-#include <contrib/libs/libiconv/iconv.h>
-
-using namespace NICONVPrivate;
-
-TDescriptor::TDescriptor(const char* from, const char* to)
- : Descriptor_(libiconv_open(to, from))
- , From_(from)
- , To_(to)
-{
- if (!Invalid()) {
- int temp = 1;
-
- libiconvctl(Descriptor_, ICONV_SET_DISCARD_ILSEQ, &temp);
- }
-}
-
-TDescriptor::~TDescriptor() {
- if (!Invalid()) {
- libiconv_close(Descriptor_);
- }
-}
-
-size_t NICONVPrivate::RecodeImpl(const TDescriptor& descriptor, const char* in, char* out, size_t inSize, size_t outSize, size_t& read, size_t& written) {
- Y_ASSERT(!descriptor.Invalid());
- Y_ASSERT(in);
- Y_ASSERT(out);
-
+#include "iconv.h"
+
+#include <contrib/libs/libiconv/iconv.h>
+
+using namespace NICONVPrivate;
+
+TDescriptor::TDescriptor(const char* from, const char* to)
+ : Descriptor_(libiconv_open(to, from))
+ , From_(from)
+ , To_(to)
+{
+ if (!Invalid()) {
+ int temp = 1;
+
+ libiconvctl(Descriptor_, ICONV_SET_DISCARD_ILSEQ, &temp);
+ }
+}
+
+TDescriptor::~TDescriptor() {
+ if (!Invalid()) {
+ libiconv_close(Descriptor_);
+ }
+}
+
+size_t NICONVPrivate::RecodeImpl(const TDescriptor& descriptor, const char* in, char* out, size_t inSize, size_t outSize, size_t& read, size_t& written) {
+ Y_ASSERT(!descriptor.Invalid());
+ Y_ASSERT(in);
+ Y_ASSERT(out);
+
char* inPtr = const_cast<char*>(in);
- char* outPtr = out;
- size_t inSizeMod = inSize;
- size_t outSizeMod = outSize;
- size_t res = libiconv(descriptor.Get(), &inPtr, &inSizeMod, &outPtr, &outSizeMod);
-
- read = inSize - inSizeMod;
- written = outSize - outSizeMod;
-
- return res;
-}
-
-void NICONVPrivate::DoRecode(const TDescriptor& descriptor, const char* in, char* out, size_t inSize, size_t outSize, size_t& read, size_t& written) {
- if (descriptor.Invalid()) {
- ythrow yexception() << "Can not convert from " << descriptor.From() << " to " << descriptor.To();
- }
-
- size_t res = RecodeImpl(descriptor, in, out, inSize, outSize, read, written);
-
- if (res == static_cast<size_t>(-1)) {
- switch (errno) {
- case EILSEQ:
- read = inSize;
- break;
-
- case EINVAL:
- read = inSize;
- break;
-
- case E2BIG:
- ythrow yexception() << "Iconv error: output buffer is too small";
-
- default:
- ythrow yexception() << "Unknown iconv error";
- }
- }
-}
-
-RECODE_RESULT NICONVPrivate::DoRecodeNoThrow(const TDescriptor& descriptor, const char* in, char* out, size_t inSize, size_t outSize, size_t& read, size_t& written) {
- if (descriptor.Invalid()) {
- return RECODE_ERROR;
- }
-
- size_t res = RecodeImpl(descriptor, in, out, inSize, outSize, read, written);
-
- if (res == static_cast<size_t>(-1)) {
- switch (errno) {
- case EILSEQ:
- read = inSize;
- break;
-
- case EINVAL:
- read = inSize;
- break;
-
- case E2BIG:
- return RECODE_EOOUTPUT;
-
- default:
- return RECODE_ERROR;
- }
- }
-
- return RECODE_OK;
-}
+ char* outPtr = out;
+ size_t inSizeMod = inSize;
+ size_t outSizeMod = outSize;
+ size_t res = libiconv(descriptor.Get(), &inPtr, &inSizeMod, &outPtr, &outSizeMod);
+
+ read = inSize - inSizeMod;
+ written = outSize - outSizeMod;
+
+ return res;
+}
+
+void NICONVPrivate::DoRecode(const TDescriptor& descriptor, const char* in, char* out, size_t inSize, size_t outSize, size_t& read, size_t& written) {
+ if (descriptor.Invalid()) {
+ ythrow yexception() << "Can not convert from " << descriptor.From() << " to " << descriptor.To();
+ }
+
+ size_t res = RecodeImpl(descriptor, in, out, inSize, outSize, read, written);
+
+ if (res == static_cast<size_t>(-1)) {
+ switch (errno) {
+ case EILSEQ:
+ read = inSize;
+ break;
+
+ case EINVAL:
+ read = inSize;
+ break;
+
+ case E2BIG:
+ ythrow yexception() << "Iconv error: output buffer is too small";
+
+ default:
+ ythrow yexception() << "Unknown iconv error";
+ }
+ }
+}
+
+RECODE_RESULT NICONVPrivate::DoRecodeNoThrow(const TDescriptor& descriptor, const char* in, char* out, size_t inSize, size_t outSize, size_t& read, size_t& written) {
+ if (descriptor.Invalid()) {
+ return RECODE_ERROR;
+ }
+
+ size_t res = RecodeImpl(descriptor, in, out, inSize, outSize, read, written);
+
+ if (res == static_cast<size_t>(-1)) {
+ switch (errno) {
+ case EILSEQ:
+ read = inSize;
+ break;
+
+ case EINVAL:
+ read = inSize;
+ break;
+
+ case E2BIG:
+ return RECODE_EOOUTPUT;
+
+ default:
+ return RECODE_ERROR;
+ }
+ }
+
+ return RECODE_OK;
+}