[API] Add hb_ot_layout_substitute_start/finish()
diff --git a/src/hb-ot-layout.cc b/src/hb-ot-layout.cc
index 8398bba..0d34e11 100644
--- a/src/hb-ot-layout.cc
+++ b/src/hb-ot-layout.cc
@@ -440,6 +440,14 @@
return &_get_gsub (face) != &Null(GSUB);
}
+void
+hb_ot_layout_substitute_start (hb_buffer_t *buffer)
+{
+ unsigned int count = buffer->len;
+ for (unsigned int i = 0; i < count; i++)
+ buffer->info[i].var1.u32 = buffer->info[i].var2.u32 = 0;
+}
+
hb_bool_t
hb_ot_layout_substitute_lookup (hb_face_t *face,
hb_buffer_t *buffer,
@@ -449,6 +457,11 @@
return _get_gsub (face).substitute_lookup (face, buffer, lookup_index, mask);
}
+void
+hb_ot_layout_substitute_finish (hb_buffer_t *buffer)
+{
+}
+
/*
* GPOS
diff --git a/src/hb-ot-layout.h b/src/hb-ot-layout.h
index a6dbc61..5257244 100644
--- a/src/hb-ot-layout.h
+++ b/src/hb-ot-layout.h
@@ -165,12 +165,20 @@
hb_bool_t
hb_ot_layout_has_substitution (hb_face_t *face);
+/* Should be called before all the substitute_lookup's are done. */
+void
+hb_ot_layout_substitute_start (hb_buffer_t *buffer);
+
hb_bool_t
hb_ot_layout_substitute_lookup (hb_face_t *face,
hb_buffer_t *buffer,
unsigned int lookup_index,
hb_mask_t mask);
+/* Should be called after all the substitute_lookup's are done */
+void
+hb_ot_layout_substitute_finish (hb_buffer_t *buffer);
+
/*
* GPOS
*/