aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDF_String.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-01-05 18:54:41 +0100
committerJay Berkenbilt <ejb@ql.org>2019-01-06 04:56:58 +0100
commitae18bfd142f2f9a19505971d4d197cb37ee86eee (patch)
tree443d8bd195100a72ed61df09179a88b3800b2c5d /libqpdf/QPDF_String.cc
parent5c682f6d1ecadf30f39023eaacea3f9408f2e8dd (diff)
downloadqpdf-ae18bfd142f2f9a19505971d4d197cb37ee86eee.tar.zst
Refactor string transcoding in QPDF_String
Diffstat (limited to 'libqpdf/QPDF_String.cc')
-rw-r--r--libqpdf/QPDF_String.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/libqpdf/QPDF_String.cc b/libqpdf/QPDF_String.cc
index 809823a6..633f1699 100644
--- a/libqpdf/QPDF_String.cc
+++ b/libqpdf/QPDF_String.cc
@@ -64,8 +64,11 @@ QPDF_String::~QPDF_String()
{
}
-QPDF_String*
-QPDF_String::new_utf16(std::string const& utf8_val)
+enum encoding_e { e_utf16 };
+
+static
+std::string
+transcode_utf8(std::string const& utf8_val, encoding_e encoding)
{
std::string result = "\xfe\xff";
size_t len = utf8_val.length();
@@ -113,7 +116,13 @@ QPDF_String::new_utf16(std::string const& utf8_val)
}
}
}
- return new QPDF_String(result);
+ return result;
+}
+
+QPDF_String*
+QPDF_String::new_utf16(std::string const& utf8_val)
+{
+ return new QPDF_String(transcode_utf8(utf8_val, e_utf16));
}
std::string