Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / harfbuzz-ng / src / hb-buffer.h
index 55a4045..7b0c920 100644 (file)
@@ -171,11 +171,11 @@ void
 hb_buffer_guess_segment_properties (hb_buffer_t *buffer);
 
 
-typedef enum {
-  HB_BUFFER_FLAGS_DEFAULT                      = 0x00000000,
-  HB_BUFFER_FLAG_BOT                           = 0x00000001, /* Beginning-of-text */
-  HB_BUFFER_FLAG_EOT                           = 0x00000002, /* End-of-text */
-  HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES   = 0x00000004
+typedef enum { /*< flags >*/
+  HB_BUFFER_FLAG_DEFAULT                       = 0x00000000u,
+  HB_BUFFER_FLAG_BOT                           = 0x00000001u, /* Beginning-of-text */
+  HB_BUFFER_FLAG_EOT                           = 0x00000002u, /* End-of-text */
+  HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES   = 0x00000004u
 } hb_buffer_flags_t;
 
 void
@@ -186,12 +186,25 @@ hb_buffer_flags_t
 hb_buffer_get_flags (hb_buffer_t *buffer);
 
 
+
+#define HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT 0xFFFDu
+
+/* Sets codepoint used to replace invalid UTF-8/16/32 entries.
+ * Default is 0xFFFDu. */
+void
+hb_buffer_set_replacement_codepoint (hb_buffer_t    *buffer,
+                                    hb_codepoint_t  replacement);
+
+hb_codepoint_t
+hb_buffer_get_replacement_codepoint (hb_buffer_t    *buffer);
+
+
 /* Resets the buffer.  Afterwards it's as if it was just created,
  * except that it has a larger buffer allocated perhaps... */
 void
 hb_buffer_reset (hb_buffer_t *buffer);
 
-/* Like reset, but does NOT clear unicode_funcs. */
+/* Like reset, but does NOT clear unicode_funcs and replacement_codepoint. */
 void
 hb_buffer_clear_contents (hb_buffer_t *buffer);
 
@@ -240,6 +253,14 @@ hb_buffer_add_utf32 (hb_buffer_t    *buffer,
                     unsigned int    item_offset,
                     int             item_length);
 
+/* Like add_utf32 but does NOT check for invalid Unicode codepoints. */
+void
+hb_buffer_add_codepoints (hb_buffer_t          *buffer,
+                         const hb_codepoint_t *text,
+                         int                   text_length,
+                         unsigned int          item_offset,
+                         int                   item_length);
+
 
 /* Clears any new items added at the end */
 hb_bool_t
@@ -274,11 +295,11 @@ hb_buffer_normalize_glyphs (hb_buffer_t *buffer);
  * Serialize
  */
 
-typedef enum {
-  HB_BUFFER_SERIALIZE_FLAGS_DEFAULT            = 0x00000000,
-  HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS         = 0x00000001,
-  HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS                = 0x00000002,
-  HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES      = 0x00000004
+typedef enum { /*< flags >*/
+  HB_BUFFER_SERIALIZE_FLAG_DEFAULT             = 0x00000000u,
+  HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS         = 0x00000001u,
+  HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS                = 0x00000002u,
+  HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES      = 0x00000004u
 } hb_buffer_serialize_flags_t;
 
 typedef enum {