diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2018-10-15 23:09:28 -0700 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2018-10-15 23:09:28 -0700 |
commit | f65dba8ef8540016c07bf07a64c0b6b056435f2b (patch) | |
tree | a9a108f12c113758c72a470ff6871cc7eca526db /src/hb-ot-name.cc | |
parent | 7742644191752b6599837ca2e5009e5d89978747 (diff) | |
download | harfbuzz-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.cc | 22 |
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 +} |