aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/qpdf-c.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2021-12-19 19:52:19 +0100
committerJay Berkenbilt <ejb@ql.org>2021-12-19 20:30:45 +0100
commitea73bf72e0ff2577672eec405380456fa56bc6af (patch)
tree60de3d8de4d03a99a3391a4e286eb7893eb20408 /libqpdf/qpdf-c.cc
parent92613a1eec543a00dd25dc6cdd407929323a811c (diff)
downloadqpdf-ea73bf72e0ff2577672eec405380456fa56bc6af.tar.zst
Further improvements to handling binary strings
Diffstat (limited to 'libqpdf/qpdf-c.cc')
-rw-r--r--libqpdf/qpdf-c.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/libqpdf/qpdf-c.cc b/libqpdf/qpdf-c.cc
index 9593a011..5f702272 100644
--- a/libqpdf/qpdf-c.cc
+++ b/libqpdf/qpdf-c.cc
@@ -1292,6 +1292,20 @@ char const* qpdf_oh_get_utf8_value(qpdf_data qpdf, qpdf_oh oh)
});
}
+char const* qpdf_oh_get_binary_string_value(
+ qpdf_data qpdf, qpdf_oh oh, size_t* length)
+{
+ return do_with_oh<char const*>(
+ qpdf, oh,
+ return_T<char const*>(""),
+ [qpdf, length](QPDFObjectHandle& o) {
+ QTC::TC("qpdf", "qpdf-c called qpdf_oh_get_binary_string_value");
+ qpdf->tmp_string = o.getStringValue();
+ *length = qpdf->tmp_string.length();
+ return qpdf->tmp_string.c_str();
+ });
+}
+
int qpdf_oh_get_array_n_items(qpdf_data qpdf, qpdf_oh oh)
{
return do_with_oh<int>(
@@ -1425,6 +1439,14 @@ qpdf_oh qpdf_oh_new_unicode_string(qpdf_data qpdf, char const* utf8_str)
return new_object(qpdf, QPDFObjectHandle::newUnicodeString(utf8_str));
}
+qpdf_oh qpdf_oh_new_binary_string(
+ qpdf_data qpdf, char const* str, size_t length)
+{
+ QTC::TC("qpdf", "qpdf-c called qpdf_oh_new_binary_string");
+ return new_object(
+ qpdf, QPDFObjectHandle::newString(std::string(str, length)));
+}
+
qpdf_oh qpdf_oh_new_array(qpdf_data qpdf)
{
QTC::TC("qpdf", "qpdf-c called qpdf_oh_new_array");