[buffer] Implement buffer deserialization for format=text
Using a ragel machine.
diff --git a/src/test-buffer-serialize.cc b/src/test-buffer-serialize.cc
index fa297cf..71bb431 100644
--- a/src/test-buffer-serialize.cc
+++ b/src/test-buffer-serialize.cc
@@ -29,6 +29,9 @@
#endif
#include "hb.h"
+#ifdef HAVE_FREETYPE
+#include "hb-ft.h"
+#endif
#ifdef HAVE_GLIB
#include <glib.h>
@@ -84,7 +87,11 @@
unsigned int upem = hb_face_get_upem (face);
hb_font_t *font = hb_font_create (face);
+ hb_face_destroy (face);
hb_font_set_scale (font, upem, upem);
+#ifdef HAVE_FREETYPE
+ hb_ft_font_set_funcs (font);
+#endif
hb_buffer_t *buf;
buf = hb_buffer_create ();
@@ -95,8 +102,13 @@
{
hb_buffer_clear_contents (buf);
- if (!hb_buffer_deserialize_glyphs (buf, line, -1, NULL,
- font, HB_BUFFER_SERIALIZE_FORMAT_TEXT))
+ const char *p = line;
+ while (hb_buffer_deserialize_glyphs (buf,
+ p, -1, &p,
+ font,
+ HB_BUFFER_SERIALIZE_FORMAT_TEXT))
+ ;
+ if (*p && *p != '\n')
ret = false;
hb_buffer_serialize_glyphs (buf, 0, hb_buffer_get_length (buf),