summaryrefslogtreecommitdiff
path: root/src/hb-ot-name.cc
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2018-10-15 23:09:28 -0700
committerBehdad Esfahbod <behdad@behdad.org>2018-10-15 23:09:28 -0700
commitf65dba8ef8540016c07bf07a64c0b6b056435f2b (patch)
treea9a108f12c113758c72a470ff6871cc7eca526db /src/hb-ot-name.cc
parent7742644191752b6599837ca2e5009e5d89978747 (diff)
downloadharfbuzz-name-table.tar.gz
[name] Start implementing hb_ot_name_get_utf16()name-table
Diffstat (limited to 'src/hb-ot-name.cc')
-rw-r--r--src/hb-ot-name.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/hb-ot-name.cc b/src/hb-ot-name.cc
index 85995f8c..b5143d3d 100644
--- a/src/hb-ot-name.cc
+++ b/src/hb-ot-name.cc
@@ -48,3 +48,25 @@ hb_ot_name_get_names (hb_face_t *face,
*entries = name.names.arrayZ();
return name.names.len;
}
+
+
+hb_bool_t
+hb_ot_name_get_utf16 (hb_face_t *face,
+ hb_name_id_t name_id,
+ hb_language_t language,
+ unsigned int *text_size /* IN/OUT */,
+ uint16_t *text /* OUT */)
+{
+ const OT::name_accelerator_t &name = _get_name (face);
+ unsigned int idx = 0; //XXX
+ hb_bytes_t bytes = name.table->get_name (idx);
+ if (*text_size)
+ {
+ /* TODO Switch to walking string and validating. */
+ memcpy (text, bytes.arrayZ, MIN (*text_size * 2, bytes.len));
+ }
+ /* XXX Null-terminate. */
+ *text_size = bytes.len / 2; //TODO
+ /* TODO Fallback? */
+ return true; //XXX
+}