Imported Upstream version 1.7.6
[platform/upstream/harfbuzz.git] / docs / html / harfbuzz-Buffers.html
index ac633bc..387fa36 100644 (file)
@@ -3,12 +3,12 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Buffers: HarfBuzz Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
-<link rel="up" href="ch08.html" title="Harfbuzz API">
+<link rel="up" href="ch08.html" title="HarfBuzz API">
 <link rel="prev" href="harfbuzz-hb-unicode.html" title="hb-unicode">
 <link rel="next" href="harfbuzz-hb-blob.html" title="hb-blob">
-<meta name="generator" content="GTK-Doc V1.25.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.27.1 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -34,7 +34,7 @@
 </tr></table></div>
 <div class="refsect1">
 <a name="harfbuzz-Buffers.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="functions_return">
 <col class="functions_name">
 <span class="returnvalue">void</span>
 </td>
 <td class="function_name">
+<a class="link" href="harfbuzz-Buffers.html#hb-buffer-append" title="hb_buffer_append ()">hb_buffer_append</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
 <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-content-type" title="hb_buffer_set_content_type ()">hb_buffer_set_content_type</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 </tr>
 <tr>
 <td class="function_type">
+<a class="link" href="harfbuzz-Buffers.html#hb-buffer-diff-flags-t" title="enum hb_buffer_diff_flags_t"><span class="returnvalue">hb_buffer_diff_flags_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-Buffers.html#hb-buffer-diff" title="hb_buffer_diff ()">hb_buffer_diff</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
 <span class="returnvalue">void</span>
 </td>
 <td class="function_name">
 </tr>
 <tr>
 <td class="function_type">
+<a class="link" href="harfbuzz-Buffers.html#hb-glyph-flags-t" title="enum hb_glyph_flags_t"><span class="returnvalue">hb_glyph_flags_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-Buffers.html#hb-glyph-info-get-glyph-flags" title="hb_glyph_info_get_glyph_flags ()">hb_glyph_info_get_glyph_flags</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
 </td>
 <td class="function_name">
 </div>
 <a name="hb-buffer-t"></a><a name="hb-glyph-info-t"></a><a name="hb-glyph-position-t"></a><a name="hb-segment-properties-t"></a><div class="refsect1">
 <a name="harfbuzz-Buffers.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
 <col class="description">
 <td class="function_name"><a class="link" href="harfbuzz-Buffers.html#hb-glyph-info-t-struct" title="hb_glyph_info_t">hb_glyph_info_t</a></td>
 </tr>
 <tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="harfbuzz-Buffers.html#hb-glyph-flags-t" title="enum hb_glyph_flags_t">hb_glyph_flags_t</a></td>
+</tr>
+<tr>
 <td class="datatype_keyword"> </td>
 <td class="function_name"><a class="link" href="harfbuzz-Buffers.html#hb-glyph-position-t-struct" title="hb_glyph_position_t">hb_glyph_position_t</a></td>
 </tr>
 <td class="datatype_keyword">enum</td>
 <td class="function_name"><a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-flags-t" title="enum hb_buffer_serialize_flags_t">hb_buffer_serialize_flags_t</a></td>
 </tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="harfbuzz-Buffers.html#hb-buffer-diff-flags-t" title="enum hb_buffer_diff_flags_t">hb_buffer_diff_flags_t</a></td>
+</tr>
 </tbody>
 </table></div>
 </div>
     <span class="lineart">├──</span> hb_buffer_content_type_t
     <span class="lineart">╰──</span> hb_buffer_serialize_format_t
     <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GFlags</a>
+    <span class="lineart">├──</span> hb_buffer_diff_flags_t
     <span class="lineart">├──</span> hb_buffer_flags_t
-    <span class="lineart">╰──</span> hb_buffer_serialize_flags_t
+    <span class="lineart">├──</span> hb_buffer_serialize_flags_t
+    <span class="lineart">╰──</span> hb_glyph_flags_t
 </pre>
 </div>
 <div class="refsect1">
@@ -566,7 +600,7 @@ being destroyed until a matching call to <a class="link" href="harfbuzz-Buffers.
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
 <a name="hb-buffer-reference.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -612,7 +646,7 @@ Decreases the reference count on <em class="parameter"><code>buffer</code></em>
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
 <a name="hb-buffer-destroy.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -636,7 +670,7 @@ hb_buffer_reset (<em class="parameter"><code><a class="link" href="harfbuzz-Buff
 with <a class="link" href="harfbuzz-Buffers.html#hb-buffer-create" title="hb_buffer_create ()"><code class="function">hb_buffer_create()</code></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-reset.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -660,7 +694,7 @@ hb_buffer_clear_contents (<em class="parameter"><code><a class="link" href="harf
 the replacement code point.</p>
 <div class="refsect3">
 <a name="hb-buffer-clear-contents.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -686,7 +720,7 @@ hb_buffer_pre_allocate (<em class="parameter"><code><a class="link" href="harfbu
  number of items.</p>
 <div class="refsect3">
 <a name="hb-buffer-pre-allocate.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -721,7 +755,7 @@ hb_buffer_allocation_successful (<em class="parameter"><code><a class="link" hre
 <p>Check if allocating memory for the buffer succeeded.</p>
 <div class="refsect3">
 <a name="hb-buffer-allocation-successful.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -761,7 +795,7 @@ character in the input text stream and are output in
 caller to ensure it is a valid Unicode code point.</p>
 <div class="refsect3">
 <a name="hb-buffer-add.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -819,7 +853,7 @@ marks at stat of run.</p>
 to ensure it contains a valid Unicode code points.</p>
 <div class="refsect3">
 <a name="hb-buffer-add-codepoints.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -833,7 +867,7 @@ to ensure it contains a valid Unicode code points.</p>
 </tr>
 <tr>
 <td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p> an array of Unicode code points to append. </p></td>
+<td class="parameter_description"><p>an array of Unicode code points to append. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length]</span></td>
 </tr>
 <tr>
@@ -876,7 +910,7 @@ hb_buffer_add_utf32 (<em class="parameter"><code><a class="link" href="harfbuzz-
 see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-add-utf32.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -890,7 +924,7 @@ see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepo
 </tr>
 <tr>
 <td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p> an array of UTF-32 characters to append. </p></td>
+<td class="parameter_description"><p>an array of UTF-32 characters to append. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length]</span></td>
 </tr>
 <tr>
@@ -933,7 +967,7 @@ hb_buffer_add_utf16 (<em class="parameter"><code><a class="link" href="harfbuzz-
 see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-add-utf16.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -947,7 +981,7 @@ see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepo
 </tr>
 <tr>
 <td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p> an array of UTF-16 characters to append. </p></td>
+<td class="parameter_description"><p>an array of UTF-16 characters to append. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length]</span></td>
 </tr>
 <tr>
@@ -990,7 +1024,7 @@ hb_buffer_add_utf8 (<em class="parameter"><code><a class="link" href="harfbuzz-B
 see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-add-utf8.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1004,7 +1038,7 @@ see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepo
 </tr>
 <tr>
 <td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p> an array of UTF-8
+<td class="parameter_description"><p>an array of UTF-8
 characters to append. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
 </tr>
@@ -1047,7 +1081,7 @@ Unicode code points that can fit in 8-bit strings.</p>
 <div class="note">Has nothing to do with non-Unicode Latin-1 encoding.</div>
 <div class="refsect3">
 <a name="hb-buffer-add-latin1.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1061,7 +1095,7 @@ Unicode code points that can fit in 8-bit strings.</p>
 </tr>
 <tr>
 <td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p> an array of UTF-8
+<td class="parameter_description"><p>an array of UTF-8
 characters to append. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=text_length][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
 </tr>
@@ -1092,6 +1126,49 @@ end of <em class="parameter"><code>text</code></em>
 </div>
 <hr>
 <div class="refsect2">
+<a name="hb-buffer-append"></a><h3>hb_buffer_append ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hb_buffer_append (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+                  <em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *source</code></em>,
+                  <em class="parameter"><code>unsigned <span class="type">int</span> start</code></em>,
+                  <em class="parameter"><code>unsigned <span class="type">int</span> end</code></em>);</pre>
+<p>Append (part of) contents of another buffer to this buffer.</p>
+<div class="refsect3">
+<a name="hb-buffer-append.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>buffer</p></td>
+<td class="parameter_description"><p>an <a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>source</p></td>
+<td class="parameter_description"><p>source <a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>start</p></td>
+<td class="parameter_description"><p>start index into source buffer to copy.  Use 0 to copy from start of buffer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>end</p></td>
+<td class="parameter_description"><p>end index into source buffer to copy.  Use (unsigned int) -1 to copy to end of buffer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="api-index-1-5-0.html#api-index-1.5.0">1.5.0</a></p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="hb-buffer-set-content-type"></a><h3>hb_buffer_set_content_type ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_buffer_set_content_type (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
@@ -1101,7 +1178,7 @@ hb_buffer_set_content_type (<em class="parameter"><code><a class="link" href="ha
 characters (before shaping) or glyphs (the result of shaping).</p>
 <div class="refsect3">
 <a name="hb-buffer-set-content-type.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1131,7 +1208,7 @@ hb_buffer_get_content_type (<em class="parameter"><code><a class="link" href="ha
 <p>see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-content-type" title="hb_buffer_set_content_type ()"><code class="function">hb_buffer_set_content_type()</code></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-get-content-type.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1167,7 +1244,7 @@ the same as keeping the text in logical order and shaping with RTL
 direction.</p>
 <div class="refsect3">
 <a name="hb-buffer-set-direction.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1198,7 +1275,7 @@ hb_buffer_get_direction (<em class="parameter"><code><a class="link" href="harfb
 <p>See <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()"><code class="function">hb_buffer_set_direction()</code></a></p>
 <div class="refsect3">
 <a name="hb-buffer-get-direction.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1235,7 +1312,7 @@ to be applied.</p>
 corresponding script from an ISO 15924 script tag.</p>
 <div class="refsect3">
 <a name="hb-buffer-set-script.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1265,7 +1342,7 @@ hb_buffer_get_script (<em class="parameter"><code><a class="link" href="harfbuzz
 <p>See <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-script" title="hb_buffer_set_script ()"><code class="function">hb_buffer_set_script()</code></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-get-script.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1302,7 +1379,7 @@ different concepts and should not be confused with each other.</p>
 <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-set-language.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1332,7 +1409,7 @@ hb_buffer_get_language (<em class="parameter"><code><a class="link" href="harfbu
 <p>See <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-language" title="hb_buffer_set_language ()"><code class="function">hb_buffer_set_language()</code></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-get-language.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1363,7 +1440,7 @@ hb_buffer_set_flags (<em class="parameter"><code><a class="link" href="harfbuzz-
 . See <a class="link" href="harfbuzz-Buffers.html#hb-buffer-flags-t" title="enum hb_buffer_flags_t"><span class="type">hb_buffer_flags_t</span></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-set-flags.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1393,7 +1470,7 @@ hb_buffer_get_flags (<em class="parameter"><code><a class="link" href="harfbuzz-
 <p>See <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-flags" title="hb_buffer_set_flags ()"><code class="function">hb_buffer_set_flags()</code></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-get-flags.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1421,7 +1498,7 @@ hb_buffer_set_cluster_level (<em class="parameter"><code><a class="link" href="h
                              <em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-cluster-level-t" title="enum hb_buffer_cluster_level_t"><span class="type">hb_buffer_cluster_level_t</span></a> cluster_level</code></em>);</pre>
 <div class="refsect3">
 <a name="hb-buffer-set-cluster-level.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1443,7 +1520,7 @@ hb_buffer_set_cluster_level (<em class="parameter"><code><a class="link" href="h
 hb_buffer_get_cluster_level (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
 <div class="refsect3">
 <a name="hb-buffer-get-cluster-level.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1468,7 +1545,7 @@ hb_buffer_set_length (<em class="parameter"><code><a class="link" href="harfbuzz
 end.</p>
 <div class="refsect3">
 <a name="hb-buffer-set-length.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1504,7 +1581,7 @@ hb_buffer_get_length (<em class="parameter"><code><a class="link" href="harfbuzz
 <p>Returns the number of items in the buffer.</p>
 <div class="refsect3">
 <a name="hb-buffer-get-length.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1536,7 +1613,7 @@ hb_buffer_set_segment_properties (<em class="parameter"><code><a class="link" hr
 <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-language" title="hb_buffer_set_language ()"><code class="function">hb_buffer_set_language()</code></a> individually.</p>
 <div class="refsect3">
 <a name="hb-buffer-set-segment-properties.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1569,7 +1646,7 @@ hb_buffer_get_segment_properties (<em class="parameter"><code><a class="link" hr
 .</p>
 <div class="refsect3">
 <a name="hb-buffer-get-segment-properties.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1583,7 +1660,7 @@ hb_buffer_get_segment_properties (<em class="parameter"><code><a class="link" hr
 </tr>
 <tr>
 <td class="parameter_name"><p>props</p></td>
-<td class="parameter_description"><p> the output <a class="link" href="harfbuzz-Buffers.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a>. </p></td>
+<td class="parameter_description"><p>the output <a class="link" href="harfbuzz-Buffers.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a>. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 </tbody>
@@ -1601,8 +1678,8 @@ contents.  If buffer is not empty, it must have content type
 <a class="link" href="harfbuzz-Buffers.html#HB-BUFFER-CONTENT-TYPE-UNICODE:CAPS"><code class="literal">HB_BUFFER_CONTENT_TYPE_UNICODE</code></a>.</p>
 <p>If buffer script is not set (ie. is <a class="link" href="harfbuzz-hb-common.html#HB-SCRIPT-INVALID:CAPS"><code class="literal">HB_SCRIPT_INVALID</code></a>), it
 will be set to the Unicode script of the first character in
-the buffer that has a script other than <a class="link" href="harfbuzz-hb-common.html#HB-SCRIPT-COMMON:CAPS"><code class="literal">HB_SCRIPT_COMMON</code></a>,
-<a class="link" href="harfbuzz-hb-common.html#HB-SCRIPT-INHERITED:CAPS"><code class="literal">HB_SCRIPT_INHERITED</code></a>, and <a class="link" href="harfbuzz-hb-common.html#HB-SCRIPT-UNKNOWN:CAPS"><code class="literal">HB_SCRIPT_UNKNOWN</code></a>.</p>
+the buffer that has a script other than <a href="harfbuzz-hb-common.html#HB-SCRIPT-COMMON:CAPS"><code class="literal">HB_SCRIPT_COMMON</code></a>,
+<a href="harfbuzz-hb-common.html#HB-SCRIPT-INHERITED:CAPS"><code class="literal">HB_SCRIPT_INHERITED</code></a>, and <a href="harfbuzz-hb-common.html#HB-SCRIPT-UNKNOWN:CAPS"><code class="literal">HB_SCRIPT_UNKNOWN</code></a>.</p>
 <p>Next, if buffer direction is not set (ie. is <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-INVALID:CAPS"><code class="literal">HB_DIRECTION_INVALID</code></a>),
 it will be set to the natural horizontal direction of the
 buffer script as returned by <a class="link" href="harfbuzz-hb-common.html#hb-script-get-horizontal-direction" title="hb_script_get_horizontal_direction ()"><code class="function">hb_script_get_horizontal_direction()</code></a>.</p>
@@ -1612,7 +1689,7 @@ it will be set to the process's default language as returned by
 taking buffer script into consideration when choosing a language.</p>
 <div class="refsect3">
 <a name="hb-buffer-guess-segment-properties.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1635,7 +1712,7 @@ hb_buffer_set_unicode_funcs (<em class="parameter"><code><a class="link" href="h
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *unicode_funcs</code></em>);</pre>
 <div class="refsect3">
 <a name="hb-buffer-set-unicode-funcs.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1657,7 +1734,7 @@ hb_buffer_set_unicode_funcs (<em class="parameter"><code><a class="link" href="h
 hb_buffer_get_unicode_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
 <div class="refsect3">
 <a name="hb-buffer-get-unicode-funcs.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1684,7 +1761,7 @@ hb_buffer_set_user_data (<em class="parameter"><code><a class="link" href="harfb
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
 <a name="hb-buffer-set-user-data.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1708,7 +1785,7 @@ hb_buffer_get_user_data (<em class="parameter"><code><a class="link" href="harfb
 <p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
 <a name="hb-buffer-get-user-data.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1735,7 +1812,7 @@ is valid as long as <em class="parameter"><code>buffer</code></em>
  contents are not modified.</p>
 <div class="refsect3">
 <a name="hb-buffer-get-glyph-infos.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1749,7 +1826,7 @@ is valid as long as <em class="parameter"><code>buffer</code></em>
 </tr>
 <tr>
 <td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p> output array length. </p></td>
+<td class="parameter_description"><p>output array length. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 </tbody>
@@ -1776,7 +1853,7 @@ is valid as long as <em class="parameter"><code>buffer</code></em>
  contents are not modified.</p>
 <div class="refsect3">
 <a name="hb-buffer-get-glyph-positions.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1790,7 +1867,7 @@ is valid as long as <em class="parameter"><code>buffer</code></em>
 </tr>
 <tr>
 <td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p> output length. </p></td>
+<td class="parameter_description"><p>output length. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 </tbody>
@@ -1817,7 +1894,7 @@ when adding text to <em class="parameter"><code>buffer</code></em>
 <p>Default is <a class="link" href="harfbuzz-Buffers.html#HB-BUFFER-REPLACEMENT-CODEPOINT-DEFAULT:CAPS" title="HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT"><code class="literal">HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT</code></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-set-replacement-codepoint.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1847,7 +1924,7 @@ hb_buffer_get_replacement_codepoint (<em class="parameter"><code><a class="link"
 <p>See <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-get-replacement-codepoint.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1877,7 +1954,7 @@ The resulting clusters should behave identical to pre-reordering clusters.</p>
 <div class="note">This has nothing to do with Unicode normalization.</div>
 <div class="refsect3">
 <a name="hb-buffer-normalize-glyphs.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1900,7 +1977,7 @@ hb_buffer_reverse (<em class="parameter"><code><a class="link" href="harfbuzz-Bu
 <p>Reverses buffer contents.</p>
 <div class="refsect3">
 <a name="hb-buffer-reverse.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1925,7 +2002,7 @@ hb_buffer_reverse_range (<em class="parameter"><code><a class="link" href="harfb
 <p>Reverses buffer contents between start to end.</p>
 <div class="refsect3">
 <a name="hb-buffer-reverse-range.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1962,7 +2039,7 @@ reversed, then each cluster (consecutive items having the
 same cluster number) are reversed again.</p>
 <div class="refsect3">
 <a name="hb-buffer-reverse-clusters.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -1995,7 +2072,7 @@ hb_buffer_serialize_glyphs (<em class="parameter"><code><a class="link" href="ha
 useful for showing the contents of the buffer, for example during debugging.
 There are currently two supported serialization formats:</p>
 <div class="refsect3">
-<a name="id-1.3.3.5.12.45.5"></a><h4>text</h4>
+<a name="id-1.3.3.5.12.46.5"></a><h4>text</h4>
 <p>A human-readable, plain text format.
 The serialized glyphs will look something like:</p>
 <p><code class="literal">
@@ -2018,18 +2095,18 @@ The serialized glyphs will look something like:</p>
 </li>
 <li class="listitem"><p>If <a class="link" href="harfbuzz-Buffers.html#HB-BUFFER-SERIALIZE-FLAG-GLYPH-EXTENTS:CAPS"><span class="type">HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS</span></a> is set, the
 <span class="type">hb_glyph_extents_t</span> in the format
-<code class="literal">&lt;x_bearing,y_bearing,width,height&gt;</code></p></li>
+<code class="literal">&amp;lt;x_bearing,y_bearing,width,height&amp;gt;</code></p></li>
 </ul></div>
 </li>
 </ul></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.3.5.12.45.6"></a><h4>json</h4>
+<a name="id-1.3.3.5.12.46.6"></a><h4>json</h4>
 <p>TODO.</p>
 </div>
 <div class="refsect3">
 <a name="hb-buffer-serialize-glyphs.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2055,7 +2132,7 @@ to serialize.</p></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>buf</p></td>
-<td class="parameter_description"><p> output string to
+<td class="parameter_description"><p>output string to
 write serialized buffer into. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=buf_size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
 </tr>
@@ -2067,13 +2144,13 @@ write serialized buffer into. </p></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>buf_consumed</p></td>
-<td class="parameter_description"><p> if not <code class="literal">NULL</code>, will be set to the number of byes written into <em class="parameter"><code>buf</code></em>
+<td class="parameter_description"><p>if not <code class="literal">NULL</code>, will be set to the number of byes written into <em class="parameter"><code>buf</code></em>
 . </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p> the <a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> used to shape this buffer, needed to
+<td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> used to shape this buffer, needed to
 read glyph names and extents. If <code class="literal">NULL</code>, and empty font will be used. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
@@ -2109,7 +2186,7 @@ hb_buffer_deserialize_glyphs (<em class="parameter"><code><a class="link" href="
                               <em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> format</code></em>);</pre>
 <div class="refsect3">
 <a name="hb-buffer-deserialize-glyphs.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2149,7 +2226,7 @@ hb_buffer_serialize_format_from_string
 <a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-list-formats" title="hb_buffer_serialize_list_formats ()"><code class="function">hb_buffer_serialize_list_formats()</code></a> to get the list of supported formats.</p>
 <div class="refsect3">
 <a name="hb-buffer-serialize-format-from-string.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2158,7 +2235,7 @@ hb_buffer_serialize_format_from_string
 <tbody>
 <tr>
 <td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p> a string to parse. </p></td>
+<td class="parameter_description"><p>a string to parse. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
 </tr>
 <tr>
@@ -2186,7 +2263,7 @@ hb_buffer_serialize_format_to_string (<em class="parameter"><code><a class="link
 <a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-serialize-format-to-string.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2229,7 +2306,7 @@ hb_segment_properties_equal (<em class="parameter"><code>const <a class="link" h
 <p>Checks the equality of two <a class="link" href="harfbuzz-Buffers.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a>'s.</p>
 <div class="refsect3">
 <a name="hb-segment-properties-equal.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2266,7 +2343,7 @@ hb_segment_properties_hash (<em class="parameter"><code>const <a class="link" hr
 .</p>
 <div class="refsect3">
 <a name="hb-segment-properties-hash.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2288,6 +2365,19 @@ hb_segment_properties_hash (<em class="parameter"><code>const <a class="link" hr
 </div>
 <hr>
 <div class="refsect2">
+<a name="hb-buffer-diff"></a><h3>hb_buffer_diff ()</h3>
+<pre class="programlisting"><a class="link" href="harfbuzz-Buffers.html#hb-buffer-diff-flags-t" title="enum hb_buffer_diff_flags_t"><span class="returnvalue">hb_buffer_diff_flags_t</span></a>
+hb_buffer_diff (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
+                <em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *reference</code></em>,
+                <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> dottedcircle_glyph</code></em>,
+                <em class="parameter"><code>unsigned <span class="type">int</span> position_fuzz</code></em>);</pre>
+<p>If dottedcircle_glyph is (hb_codepoint_t) -1 then <a class="link" href="harfbuzz-Buffers.html#HB-BUFFER-DIFF-FLAG-DOTTED-CIRCLE-PRESENT:CAPS"><code class="literal">HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT</code></a>
+and <a class="link" href="harfbuzz-Buffers.html#HB-BUFFER-DIFF-FLAG-NOTDEF-PRESENT:CAPS"><code class="literal">HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT</code></a> are never returned.  This should be used by most
+callers if just comparing two buffers is needed.</p>
+<p class="since">Since: <a class="link" href="api-index-1-5-0.html#api-index-1.5.0">1.5.0</a></p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="hb-buffer-set-message-func"></a><h3>hb_buffer_set_message_func ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_buffer_set_message_func (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
@@ -2296,7 +2386,7 @@ hb_buffer_set_message_func (<em class="parameter"><code><a class="link" href="ha
                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
 <a name="hb-buffer-set-message-func.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
 <col class="parameters_description">
@@ -2320,6 +2410,34 @@ hb_buffer_set_message_func (<em class="parameter"><code><a class="link" href="ha
 </div>
 <hr>
 <div class="refsect2">
+<a name="hb-glyph-info-get-glyph-flags"></a><h3>hb_glyph_info_get_glyph_flags ()</h3>
+<pre class="programlisting"><a class="link" href="harfbuzz-Buffers.html#hb-glyph-flags-t" title="enum hb_glyph_flags_t"><span class="returnvalue">hb_glyph_flags_t</span></a>
+hb_glyph_info_get_glyph_flags (<em class="parameter"><code>const <a class="link" href="harfbuzz-Buffers.html#hb-glyph-info-t"><span class="type">hb_glyph_info_t</span></a> *info</code></em>);</pre>
+<p>Returns glyph flags encoded within a <a class="link" href="harfbuzz-Buffers.html#hb-glyph-info-t"><span class="type">hb_glyph_info_t</span></a>.</p>
+<div class="refsect3">
+<a name="hb-glyph-info-get-glyph-flags.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>a <a class="link" href="harfbuzz-Buffers.html#hb-glyph-info-t"><span class="type">hb_glyph_info_t</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-glyph-info-get-glyph-flags.returns"></a><h4>Returns</h4>
+<p>The <a class="link" href="harfbuzz-Buffers.html#hb-glyph-flags-t" title="enum hb_glyph_flags_t"><span class="type">hb_glyph_flags_t</span></a> encoded within <em class="parameter"><code>info</code></em>
+.</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-1-5-0.html#api-index-1.5.0">1.5.0</a></p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="hb-buffer-message-func-t"></a><h3>hb_buffer_message_func_t ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
 <span class="c_punctuation">(</span>*hb_buffer_message_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
@@ -2356,7 +2474,7 @@ and output glyphs and their information after shaping.</p>
 <a name="hb-glyph-info-t-struct"></a><h3>hb_glyph_info_t</h3>
 <pre class="programlisting">typedef struct {
   hb_codepoint_t codepoint;
-  hb_mask_t      mask;
+  hb_mask_t      mask; /* Holds hb_glyph_flags_t after hb_shape(), plus other things. */
   uint32_t       cluster;
 } hb_glyph_info_t;
 </pre>
@@ -2364,7 +2482,7 @@ and output glyphs and their information after shaping.</p>
 glyphs and their relation to input text.</p>
 <div class="refsect3">
 <a name="hb-glyph-info-t.members"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -2404,6 +2522,48 @@ allow selecting more fine-grained cluster handling.</p></td>
 </div>
 <hr>
 <div class="refsect2">
+<a name="hb-glyph-flags-t"></a><h3>enum hb_glyph_flags_t</h3>
+<div class="refsect3">
+<a name="hb-glyph-flags-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="HB-GLYPH-FLAG-UNSAFE-TO-BREAK:CAPS"></a>HB_GLYPH_FLAG_UNSAFE_TO_BREAK</p></td>
+<td class="enum_member_description">
+<p>Indicates that if input text is broken at the
+                                  beginning of the cluster this glyph is part of,
+                                  then both sides need to be re-shaped, as the
+                                  result might be different.  On the flip side,
+                                  it means that when this flag is not present,
+                                  then it's safe to break the glyph-run at the
+                                  beginning of this cluster, and the two sides
+                                  represent the exact same result one would get
+                                  if breaking input text at the beginning of
+                                  this cluster and shaping the two sides
+                                  separately.  This can be used to optimize
+                                  paragraph layout, by avoiding re-shaping
+                                  of each line after line-breaking, or limiting
+                                  the reshaping to a small piece around the
+                                  breaking point only.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-GLYPH-FLAG-DEFINED:CAPS"></a>HB_GLYPH_FLAG_DEFINED</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="hb-glyph-position-t-struct"></a><h3>hb_glyph_position_t</h3>
 <pre class="programlisting">typedef struct {
   hb_position_t  x_advance;
@@ -2417,7 +2577,7 @@ glyph in both horizontal and vertical directions. All positions in
 <a class="link" href="harfbuzz-Buffers.html#hb-glyph-position-t"><span class="type">hb_glyph_position_t</span></a> are relative to the current point.</p>
 <div class="refsect3">
 <a name="hb-glyph-position-t.members"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -2457,7 +2617,7 @@ should not affect how much the line advances.</p></td>
 <a name="hb-buffer-content-type-t"></a><h3>enum hb_buffer_content_type_t</h3>
 <div class="refsect3">
 <a name="hb-buffer-content-type-t.members"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2494,7 +2654,7 @@ should not affect how much the line advances.</p></td>
 <a name="hb-buffer-flags-t"></a><h3>enum hb_buffer_flags_t</h3>
 <div class="refsect3">
 <a name="hb-buffer-flags-t.members"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2523,7 +2683,7 @@ should not affect how much the line advances.</p></td>
 <td class="enum_member_description">
 <p>flag indicating that special handling of the end of text
                      paragraph can be applied to this buffer, similar to
-                     <em class="parameter"><code>HB_BUFFER_FLAG_EOT</code></em>
+                     <em class="parameter"><code>HB_BUFFER_FLAG_BOT</code></em>
 .</p>
 </td>
 <td class="enum_member_annotations"> </td>
@@ -2533,9 +2693,24 @@ should not affect how much the line advances.</p></td>
 <td class="enum_member_description">
 <p>                     flag indication that character with Default_Ignorable
                      Unicode property should use the corresponding glyph
-                     from the font, instead of hiding them (currently done
-                     by replacing them with the space glyph and zeroing the
-                     advance width.)</p>
+                     from the font, instead of hiding them (done by
+                     replacing them with the space glyph and zeroing the
+                     advance width.)  This flag takes precedence over
+                     <em class="parameter"><code>HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES</code></em>
+.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-BUFFER-FLAG-REMOVE-DEFAULT-IGNORABLES:CAPS"></a>HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES</p></td>
+<td class="enum_member_description">
+<p>                     flag indication that character with Default_Ignorable
+                     Unicode property should be removed from glyph string
+                     instead of hiding them (done by replacing them with the
+                     space glyph and zeroing the advance width.)
+                     <em class="parameter"><code>HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES</code></em>
+ takes
+                     precedence over this flag. Since: 1.8.0</p>
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
@@ -2549,7 +2724,7 @@ should not affect how much the line advances.</p></td>
 <a name="hb-buffer-cluster-level-t"></a><h3>enum hb_buffer_cluster_level_t</h3>
 <div class="refsect3">
 <a name="hb-buffer-cluster-level-t.members"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2594,7 +2769,7 @@ set and retrieved using <a class="link" href="harfbuzz-Buffers.html#hb-buffer-se
 <a class="link" href="harfbuzz-Buffers.html#hb-buffer-get-segment-properties" title="hb_buffer_get_segment_properties ()"><code class="function">hb_buffer_get_segment_properties()</code></a>, respectively.</p>
 <div class="refsect3">
 <a name="hb-segment-properties-t.members"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
 <col class="struct_members_description">
@@ -2627,7 +2802,7 @@ set and retrieved using <a class="link" href="harfbuzz-Buffers.html#hb-buffer-se
 <a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-glyphs" title="hb_buffer_serialize_glyphs ()"><code class="function">hb_buffer_serialize_glyphs()</code></a> and <a class="link" href="harfbuzz-Buffers.html#hb-buffer-deserialize-glyphs" title="hb_buffer_deserialize_glyphs ()"><code class="function">hb_buffer_deserialize_glyphs()</code></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-serialize-format-t.members"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2666,7 +2841,7 @@ set and retrieved using <a class="link" href="harfbuzz-Buffers.html#hb-buffer-se
 <p>Flags that control what glyph information are serialized in <a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-glyphs" title="hb_buffer_serialize_glyphs ()"><code class="function">hb_buffer_serialize_glyphs()</code></a>.</p>
 <div class="refsect3">
 <a name="hb-buffer-serialize-flags-t.members"></a><h4>Members</h4>
-<div class="informaltable"><table width="100%" border="0">
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
 <col class="enum_members_description">
@@ -2708,14 +2883,90 @@ set and retrieved using <a class="link" href="harfbuzz-Buffers.html#hb-buffer-se
 </td>
 <td class="enum_member_annotations"> </td>
 </tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-BUFFER-SERIALIZE-FLAG-GLYPH-FLAGS:CAPS"></a>HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS</p></td>
+<td class="enum_member_description">
+<p>serialize glyph flags. Since: 1.5.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-BUFFER-SERIALIZE-FLAG-NO-ADVANCES:CAPS"></a>HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES</p></td>
+<td class="enum_member_description">
+<p>do not serialize glyph advances,
+ glyph offsets will reflect absolute glyph positions. Since: 1.8.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <p class="since">Since: <a class="link" href="api-index-0-9-20.html#api-index-0.9.20">0.9.20</a></p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="hb-buffer-diff-flags-t"></a><h3>enum hb_buffer_diff_flags_t</h3>
+<div class="refsect3">
+<a name="hb-buffer-diff-flags-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-EQUAL:CAPS"></a>HB_BUFFER_DIFF_FLAG_EQUAL</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-CONTENT-TYPE-MISMATCH:CAPS"></a>HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-LENGTH-MISMATCH:CAPS"></a>HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-NOTDEF-PRESENT:CAPS"></a>HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-DOTTED-CIRCLE-PRESENT:CAPS"></a>HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-CODEPOINT-MISMATCH:CAPS"></a>HB_BUFFER_DIFF_FLAG_CODEPOINT_MISMATCH</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-CLUSTER-MISMATCH:CAPS"></a>HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-GLYPH-FLAGS-MISMATCH:CAPS"></a>HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-BUFFER-DIFF-FLAG-POSITION-MISMATCH:CAPS"></a>HB_BUFFER_DIFF_FLAG_POSITION_MISMATCH</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.25.1</div>
+<hr>Generated by GTK-Doc V1.27.1</div>
 </body>
 </html>
\ No newline at end of file