<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
  "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY version SYSTEM "version.xml">
]>
<refentry id="pango-OpenType-Font-Handling">
<refmeta>
<refentrytitle role="top_of_page" id="pango-OpenType-Font-Handling.top_of_page">OpenType Font Handling</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>PANGO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>OpenType Font Handling</refname>
<refpurpose>Obtaining information from OpenType tables</refpurpose>
</refnamediv>
<refsect1 id="pango-OpenType-Font-Handling.stability-level">
<title>Stability Level</title>
<acronym>Unstable</acronym>, unless otherwise indicated
</refsect1>

<refsect1 id="pango-OpenType-Font-Handling.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_proto_type" colwidth="150px"/>
<colspec colname="functions_proto_name"/>
<tbody>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-OT-TAG-MAKE:CAPS">PANGO_OT_TAG_MAKE</link><phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-OT-TAG-MAKE-FROM-STRING:CAPS">PANGO_OT_TAG_MAKE_FROM_STRING</link><phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoOTInfo"><returnvalue>PangoOTInfo</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-ot-info-get">pango_ot_info_get</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-info-find-script">pango_ot_info_find_script</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-info-find-language">pango_ot_info_find_language</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-info-find-feature">pango_ot_info_find_feature</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoOTTag"><returnvalue>PangoOTTag</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-ot-info-list-scripts">pango_ot_info_list_scripts</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoOTTag"><returnvalue>PangoOTTag</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-ot-info-list-languages">pango_ot_info_list_languages</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoOTTag"><returnvalue>PangoOTTag</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-ot-info-list-features">pango_ot_info_list_features</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoOTBuffer"><returnvalue>PangoOTBuffer</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-ot-buffer-new">pango_ot_buffer_new</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-buffer-destroy">pango_ot_buffer_destroy</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-buffer-clear">pango_ot_buffer_clear</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-buffer-add-glyph">pango_ot_buffer_add_glyph</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-buffer-set-rtl">pango_ot_buffer_set_rtl</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-buffer-set-zero-width-marks">pango_ot_buffer_set_zero_width_marks</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-buffer-get-glyphs">pango_ot_buffer_get_glyphs</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-buffer-output">pango_ot_buffer_output</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type">const <link linkend="PangoOTRuleset"><returnvalue>PangoOTRuleset</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-get-for-description">pango_ot_ruleset_get_for_description</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoOTRuleset"><returnvalue>PangoOTRuleset</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-new">pango_ot_ruleset_new</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoOTRuleset"><returnvalue>PangoOTRuleset</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-new-for">pango_ot_ruleset_new_for</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoOTRuleset"><returnvalue>PangoOTRuleset</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-new-from-description">pango_ot_ruleset_new_from_description</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-add-feature">pango_ot_ruleset_add_feature</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-maybe-add-feature">pango_ot_ruleset_maybe_add_feature</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint"><returnvalue>guint</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-maybe-add-features">pango_ot_ruleset_maybe_add_features</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint"><returnvalue>guint</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-get-feature-count">pango_ot_ruleset_get_feature_count</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-substitute">pango_ot_ruleset_substitute</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-position">pango_ot_ruleset_position</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoOTRulesetDescription"><returnvalue>PangoOTRulesetDescription</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-description-copy">pango_ot_ruleset_description_copy</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-description-equal">pango_ot_ruleset_description_equal</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-description-free">pango_ot_ruleset_description_free</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint"><returnvalue>guint</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-ruleset-description-hash">pango_ot_ruleset_description_hash</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoOTTag"><returnvalue>PangoOTTag</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-tag-from-language">pango_ot_tag_from_language</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoOTTag"><returnvalue>PangoOTTag</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-tag-from-script">pango_ot_tag_from_script</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoLanguage"><returnvalue>PangoLanguage</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="pango-ot-tag-to-language">pango_ot_tag_to_language</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="PangoScript"><returnvalue>PangoScript</returnvalue></link>
</entry><entry role="function_name"><link linkend="pango-ot-tag-to-script">pango_ot_tag_to_script</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<anchor id="PangoOTInfo"/><anchor id="PangoOTRuleset"/><refsect1 id="pango-OpenType-Font-Handling.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="other_proto_type" colwidth="150px"/>
<colspec colname="other_proto_name"/>
<tbody>
<row><entry role="typedef_keyword">typedef</entry><entry role="function_name"><link linkend="PangoOTTag">PangoOTTag</link></entry></row>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="PangoOTInfo-struct">PangoOTInfo</link></entry></row>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="PangoOTBuffer">PangoOTBuffer</link></entry></row>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="PangoOTGlyph">PangoOTGlyph</link></entry></row>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="PangoOTRuleset-struct">PangoOTRuleset</link></entry></row>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="PangoOTRulesetDescription">PangoOTRulesetDescription</link></entry></row>
<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="PangoOTTableType">PangoOTTableType</link></entry></row>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="PangoOTFeatureMap">PangoOTFeatureMap</link></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-OT-ALL-GLYPHS:CAPS">PANGO_OT_ALL_GLYPHS</link></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-OT-NO-FEATURE:CAPS">PANGO_OT_NO_FEATURE</link></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-OT-NO-SCRIPT:CAPS">PANGO_OT_NO_SCRIPT</link></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-OT-DEFAULT-LANGUAGE:CAPS">PANGO_OT_DEFAULT_LANGUAGE</link></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-OT-TAG-DEFAULT-LANGUAGE:CAPS">PANGO_OT_TAG_DEFAULT_LANGUAGE</link></entry></row>
<row><entry role="define_keyword">#define</entry><entry role="function_name"><link linkend="PANGO-OT-TAG-DEFAULT-SCRIPT:CAPS">PANGO_OT_TAG_DEFAULT_SCRIPT</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="pango-OpenType-Font-Handling.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GObject">GObject</link>
    <phrase role="lineart">&#9500;&#9472;&#9472;</phrase> PangoOTInfo
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> PangoOTRuleset
</screen>
</refsect1>


<refsect1 id="pango-OpenType-Font-Handling.description" role="desc">
<title role="desc.title">Description</title>
<para>Functions and macros in this section are used to implement
the OpenType Layout features and algorithms.</para>
<para>They have been superseded by the harfbuzz library, and should
not be used anymore.</para>

</refsect1>
<refsect1 id="pango-OpenType-Font-Handling.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="PANGO-OT-TAG-MAKE:CAPS" role="macro" condition="deprecated:">
<title>PANGO_OT_TAG_MAKE()</title>
<indexterm zone="PANGO-OT-TAG-MAKE:CAPS" role="deprecated"><primary>PANGO_OT_TAG_MAKE</primary></indexterm>
<programlisting language="C">#define PANGO_OT_TAG_MAKE(c1,c2,c3,c4)		((PangoOTTag) FT_MAKE_TAG (c1, c2, c3, c4))
</programlisting>
<warning><para><literal>PANGO_OT_TAG_MAKE</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Creates a <link linkend="PangoOTTag"><type>PangoOTTag</type></link> from four characters.  This is similar and
compatible with the <function><link linkend="FT-MAKE-TAG:CAPS"><function>FT_MAKE_TAG()</function></link></function> macro from FreeType.</para>
<refsect3 id="PANGO-OT-TAG-MAKE.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>c1</para></entry>
<entry role="parameter_description"><para>First character.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>c2</para></entry>
<entry role="parameter_description"><para>Second character.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>c3</para></entry>
<entry role="parameter_description"><para>Third character.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>c4</para></entry>
<entry role="parameter_description"><para>Fourth character.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="PANGO-OT-TAG-MAKE-FROM-STRING:CAPS" role="macro" condition="deprecated:">
<title>PANGO_OT_TAG_MAKE_FROM_STRING()</title>
<indexterm zone="PANGO-OT-TAG-MAKE-FROM-STRING:CAPS" role="deprecated"><primary>PANGO_OT_TAG_MAKE_FROM_STRING</primary></indexterm>
<programlisting language="C">#define             PANGO_OT_TAG_MAKE_FROM_STRING(s)</programlisting>
<warning><para><literal>PANGO_OT_TAG_MAKE_FROM_STRING</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Creates a <link linkend="PangoOTTag"><type>PangoOTTag</type></link> from a string. The string should be at least
four characters long (pad with space characters if needed), and need
not be nul-terminated.  This is a convenience wrapper around
<link linkend="PANGO-OT-TAG-MAKE:CAPS"><function>PANGO_OT_TAG_MAKE()</function></link>, but cannot be used in certain situations, for
example, as a switch expression, as it dereferences pointers.</para>
<refsect3 id="PANGO-OT-TAG-MAKE-FROM-STRING.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>s</para></entry>
<entry role="parameter_description"><para>The string representation of the tag.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="pango-ot-info-get" role="function" condition="deprecated:|since:1.2">
<title>pango_ot_info_get&#160;()</title>
<indexterm zone="pango-ot-info-get" role="deprecated"><primary>pango_ot_info_get</primary></indexterm><indexterm zone="pango-ot-info-get" role="1.2"><primary>pango_ot_info_get</primary></indexterm>
<programlisting language="C"><link linkend="PangoOTInfo"><returnvalue>PangoOTInfo</returnvalue></link>&#160;*
pango_ot_info_get (<parameter><link linkend="FT-Face"><type>FT_Face</type></link> face</parameter>);</programlisting>
<warning><para><literal>pango_ot_info_get</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Returns the <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> structure for the given FreeType font face.</para>
<refsect3 id="pango-ot-info-get.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>face</para></entry>
<entry role="parameter_description"><para>a <type>FT_Face</type>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-info-get.returns" role="returns">
<title>Returns</title>
<para>the <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> for <parameter>face</parameter>
. This object
will have the same lifetime as <parameter>face</parameter>
. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3><para role="since">Since: <link linkend="api-index-1.2">1.2</link></para></refsect2>
<refsect2 id="pango-ot-info-find-script" role="function" condition="deprecated:">
<title>pango_ot_info_find_script&#160;()</title>
<indexterm zone="pango-ot-info-find-script" role="deprecated"><primary>pango_ot_info_find_script</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
pango_ot_info_find_script (<parameter><link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> *info</parameter>,
                           <parameter><link linkend="PangoOTTableType"><type>PangoOTTableType</type></link> table_type</parameter>,
                           <parameter><link linkend="PangoOTTag"><type>PangoOTTag</type></link> script_tag</parameter>,
                           <parameter><link linkend="guint"><type>guint</type></link> *script_index</parameter>);</programlisting>
<warning><para><literal>pango_ot_info_find_script</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Finds the index of a script.  If not found, tries to find the 'DFLT'
and then 'dflt' scripts and return the index of that in <parameter>script_index</parameter>
.
If none of those is found either, <link linkend="PANGO-OT-NO-SCRIPT:CAPS"><literal>PANGO_OT_NO_SCRIPT</literal></link> is placed in
<parameter>script_index</parameter>
.</para>
<para>All other functions taking an input script_index parameter know
how to handle <link linkend="PANGO-OT-NO-SCRIPT:CAPS"><literal>PANGO_OT_NO_SCRIPT</literal></link>, so one can ignore the return
value of this function completely and proceed, to enjoy the automatic
fallback to the 'DFLT'/'dflt' script.</para>
<refsect3 id="pango-ot-info-find-script.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>info</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>table_type</para></entry>
<entry role="parameter_description"><para>the table type to obtain information about.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>script_tag</para></entry>
<entry role="parameter_description"><para>the tag of the script to find.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>script_index</para></entry>
<entry role="parameter_description"><para>location to store the index of the
script, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-info-find-script.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the script was found.</para>
</refsect3></refsect2>
<refsect2 id="pango-ot-info-find-language" role="function" condition="deprecated:">
<title>pango_ot_info_find_language&#160;()</title>
<indexterm zone="pango-ot-info-find-language" role="deprecated"><primary>pango_ot_info_find_language</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
pango_ot_info_find_language (<parameter><link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> *info</parameter>,
                             <parameter><link linkend="PangoOTTableType"><type>PangoOTTableType</type></link> table_type</parameter>,
                             <parameter><link linkend="guint"><type>guint</type></link> script_index</parameter>,
                             <parameter><link linkend="PangoOTTag"><type>PangoOTTag</type></link> language_tag</parameter>,
                             <parameter><link linkend="guint"><type>guint</type></link> *language_index</parameter>,
                             <parameter><link linkend="guint"><type>guint</type></link> *required_feature_index</parameter>);</programlisting>
<warning><para><literal>pango_ot_info_find_language</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Finds the index of a language and its required feature index.
If the language is not found, sets <parameter>language_index</parameter>
 to
PANGO_OT_DEFAULT_LANGUAGE and the required feature of the default language
system is returned in required_feature_index.  For best compatibility with
some fonts, also searches the language system tag 'dflt' before falling
back to the default language system, but that is transparent to the user.
The user can simply ignore the return value of this function to
automatically fall back to the default language system.</para>
<refsect3 id="pango-ot-info-find-language.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>info</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>table_type</para></entry>
<entry role="parameter_description"><para>the table type to obtain information about.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>script_index</para></entry>
<entry role="parameter_description"><para>the index of the script whose languages are searched.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>language_tag</para></entry>
<entry role="parameter_description"><para>the tag of the language to find.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>language_index</para></entry>
<entry role="parameter_description"><para>location to store the index of
the language, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>required_feature_index</para></entry>
<entry role="parameter_description"><para>location to store the
required feature index of the language, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-info-find-language.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the language was found.</para>
</refsect3></refsect2>
<refsect2 id="pango-ot-info-find-feature" role="function" condition="deprecated:">
<title>pango_ot_info_find_feature&#160;()</title>
<indexterm zone="pango-ot-info-find-feature" role="deprecated"><primary>pango_ot_info_find_feature</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
pango_ot_info_find_feature (<parameter><link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> *info</parameter>,
                            <parameter><link linkend="PangoOTTableType"><type>PangoOTTableType</type></link> table_type</parameter>,
                            <parameter><link linkend="PangoOTTag"><type>PangoOTTag</type></link> feature_tag</parameter>,
                            <parameter><link linkend="guint"><type>guint</type></link> script_index</parameter>,
                            <parameter><link linkend="guint"><type>guint</type></link> language_index</parameter>,
                            <parameter><link linkend="guint"><type>guint</type></link> *feature_index</parameter>);</programlisting>
<warning><para><literal>pango_ot_info_find_feature</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Finds the index of a feature.  If the feature is not found, sets
<parameter>feature_index</parameter>
 to PANGO_OT_NO_FEATURE, which is safe to pass to
<link linkend="pango-ot-ruleset-add-feature"><function>pango_ot_ruleset_add_feature()</function></link> and similar functions.</para>
<para>In the future, this may set <parameter>feature_index</parameter>
 to an special value that if used
in <link linkend="pango-ot-ruleset-add-feature"><function>pango_ot_ruleset_add_feature()</function></link> will ask Pango to synthesize the
requested feature based on Unicode properties and data.  However, this
function will still return <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> in those cases.  So, users may want to
ignore the return value of this function in certain cases.</para>
<refsect3 id="pango-ot-info-find-feature.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>info</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>table_type</para></entry>
<entry role="parameter_description"><para>the table type to obtain information about.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>feature_tag</para></entry>
<entry role="parameter_description"><para>the tag of the feature to find.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>script_index</para></entry>
<entry role="parameter_description"><para>the index of the script.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>language_index</para></entry>
<entry role="parameter_description"><para>the index of the language whose features are searched,
or <link linkend="PANGO-OT-DEFAULT-LANGUAGE:CAPS"><literal>PANGO_OT_DEFAULT_LANGUAGE</literal></link> to use the default language of the script.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>feature_index</para></entry>
<entry role="parameter_description"><para>location to store the index of
the feature, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-info-find-feature.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the feature was found.</para>
</refsect3></refsect2>
<refsect2 id="pango-ot-info-list-scripts" role="function" condition="deprecated:">
<title>pango_ot_info_list_scripts&#160;()</title>
<indexterm zone="pango-ot-info-list-scripts" role="deprecated"><primary>pango_ot_info_list_scripts</primary></indexterm>
<programlisting language="C"><link linkend="PangoOTTag"><returnvalue>PangoOTTag</returnvalue></link>&#160;*
pango_ot_info_list_scripts (<parameter><link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> *info</parameter>,
                            <parameter><link linkend="PangoOTTableType"><type>PangoOTTableType</type></link> table_type</parameter>);</programlisting>
<warning><para><literal>pango_ot_info_list_scripts</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Obtains the list of available scripts.</para>
<refsect3 id="pango-ot-info-list-scripts.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>info</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>table_type</para></entry>
<entry role="parameter_description"><para>the table type to obtain information about.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-info-list-scripts.returns" role="returns">
<title>Returns</title>
<para> a newly-allocated zero-terminated array containing the tags of the
available scripts.  Should be freed using <link linkend="g-free"><function>g_free()</function></link>.</para>
</refsect3></refsect2>
<refsect2 id="pango-ot-info-list-languages" role="function" condition="deprecated:">
<title>pango_ot_info_list_languages&#160;()</title>
<indexterm zone="pango-ot-info-list-languages" role="deprecated"><primary>pango_ot_info_list_languages</primary></indexterm>
<programlisting language="C"><link linkend="PangoOTTag"><returnvalue>PangoOTTag</returnvalue></link>&#160;*
pango_ot_info_list_languages (<parameter><link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> *info</parameter>,
                              <parameter><link linkend="PangoOTTableType"><type>PangoOTTableType</type></link> table_type</parameter>,
                              <parameter><link linkend="guint"><type>guint</type></link> script_index</parameter>,
                              <parameter><link linkend="PangoOTTag"><type>PangoOTTag</type></link> language_tag</parameter>);</programlisting>
<warning><para><literal>pango_ot_info_list_languages</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Obtains the list of available languages for a given script.</para>
<refsect3 id="pango-ot-info-list-languages.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>info</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>table_type</para></entry>
<entry role="parameter_description"><para>the table type to obtain information about.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>script_index</para></entry>
<entry role="parameter_description"><para>the index of the script to list languages for.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>language_tag</para></entry>
<entry role="parameter_description"><para>unused parameter.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-info-list-languages.returns" role="returns">
<title>Returns</title>
<para> a newly-allocated zero-terminated array containing the tags of the
available languages.  Should be freed using <link linkend="g-free"><function>g_free()</function></link>.</para>
</refsect3></refsect2>
<refsect2 id="pango-ot-info-list-features" role="function" condition="deprecated:">
<title>pango_ot_info_list_features&#160;()</title>
<indexterm zone="pango-ot-info-list-features" role="deprecated"><primary>pango_ot_info_list_features</primary></indexterm>
<programlisting language="C"><link linkend="PangoOTTag"><returnvalue>PangoOTTag</returnvalue></link>&#160;*
pango_ot_info_list_features (<parameter><link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> *info</parameter>,
                             <parameter><link linkend="PangoOTTableType"><type>PangoOTTableType</type></link> table_type</parameter>,
                             <parameter><link linkend="PangoOTTag"><type>PangoOTTag</type></link> tag</parameter>,
                             <parameter><link linkend="guint"><type>guint</type></link> script_index</parameter>,
                             <parameter><link linkend="guint"><type>guint</type></link> language_index</parameter>);</programlisting>
<warning><para><literal>pango_ot_info_list_features</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Obtains the list of features for the given language of the given script.</para>
<refsect3 id="pango-ot-info-list-features.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>info</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>table_type</para></entry>
<entry role="parameter_description"><para>the table type to obtain information about.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>tag</para></entry>
<entry role="parameter_description"><para>unused parameter.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>script_index</para></entry>
<entry role="parameter_description"><para>the index of the script to obtain information about.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>language_index</para></entry>
<entry role="parameter_description"><para>the index of the language to list features for, or
<link linkend="PANGO-OT-DEFAULT-LANGUAGE:CAPS"><literal>PANGO_OT_DEFAULT_LANGUAGE</literal></link>, to list features for the default
language of the script.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-info-list-features.returns" role="returns">
<title>Returns</title>
<para> a newly-allocated zero-terminated array containing the tags of the
available features.  Should be freed using <link linkend="g-free"><function>g_free()</function></link>.</para>
</refsect3></refsect2>
<refsect2 id="pango-ot-buffer-new" role="function" condition="deprecated:|since:1.4">
<title>pango_ot_buffer_new&#160;()</title>
<indexterm zone="pango-ot-buffer-new" role="deprecated"><primary>pango_ot_buffer_new</primary></indexterm><indexterm zone="pango-ot-buffer-new" role="1.4"><primary>pango_ot_buffer_new</primary></indexterm>
<programlisting language="C"><link linkend="PangoOTBuffer"><returnvalue>PangoOTBuffer</returnvalue></link>&#160;*
pango_ot_buffer_new (<parameter><link linkend="PangoFcFont"><type>PangoFcFont</type></link> *font</parameter>);</programlisting>
<warning><para><literal>pango_ot_buffer_new</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Creates a new <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> for the given OpenType font.</para>
<refsect3 id="pango-ot-buffer-new.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>font</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoFcFont"><type>PangoFcFont</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-buffer-new.returns" role="returns">
<title>Returns</title>
<para> the newly allocated <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link>, which should
be freed with <link linkend="pango-ot-buffer-destroy"><function>pango_ot_buffer_destroy()</function></link>.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2>
<refsect2 id="pango-ot-buffer-destroy" role="function" condition="deprecated:|since:1.4">
<title>pango_ot_buffer_destroy&#160;()</title>
<indexterm zone="pango-ot-buffer-destroy" role="deprecated"><primary>pango_ot_buffer_destroy</primary></indexterm><indexterm zone="pango-ot-buffer-destroy" role="1.4"><primary>pango_ot_buffer_destroy</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_ot_buffer_destroy (<parameter><link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> *buffer</parameter>);</programlisting>
<warning><para><literal>pango_ot_buffer_destroy</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Destroys a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> and free all associated memory.</para>
<refsect3 id="pango-ot-buffer-destroy.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>buffer</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2>
<refsect2 id="pango-ot-buffer-clear" role="function" condition="deprecated:|since:1.4">
<title>pango_ot_buffer_clear&#160;()</title>
<indexterm zone="pango-ot-buffer-clear" role="deprecated"><primary>pango_ot_buffer_clear</primary></indexterm><indexterm zone="pango-ot-buffer-clear" role="1.4"><primary>pango_ot_buffer_clear</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_ot_buffer_clear (<parameter><link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> *buffer</parameter>);</programlisting>
<warning><para><literal>pango_ot_buffer_clear</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Empties a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link>, make it ready to add glyphs to.</para>
<refsect3 id="pango-ot-buffer-clear.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>buffer</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2>
<refsect2 id="pango-ot-buffer-add-glyph" role="function" condition="deprecated:|since:1.4">
<title>pango_ot_buffer_add_glyph&#160;()</title>
<indexterm zone="pango-ot-buffer-add-glyph" role="deprecated"><primary>pango_ot_buffer_add_glyph</primary></indexterm><indexterm zone="pango-ot-buffer-add-glyph" role="1.4"><primary>pango_ot_buffer_add_glyph</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_ot_buffer_add_glyph (<parameter><link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> *buffer</parameter>,
                           <parameter><link linkend="guint"><type>guint</type></link> glyph</parameter>,
                           <parameter><link linkend="guint"><type>guint</type></link> properties</parameter>,
                           <parameter><link linkend="guint"><type>guint</type></link> cluster</parameter>);</programlisting>
<warning><para><literal>pango_ot_buffer_add_glyph</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Appends a glyph to a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link>, with <parameter>properties</parameter>
 identifying which
features should be applied on this glyph.  See <link linkend="pango-ot-ruleset-add-feature"><function>pango_ot_ruleset_add_feature()</function></link>.</para>
<refsect3 id="pango-ot-buffer-add-glyph.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>buffer</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>glyph</para></entry>
<entry role="parameter_description"><para>the glyph index to add, like a <link linkend="PangoGlyph"><type>PangoGlyph</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>properties</para></entry>
<entry role="parameter_description"><para>the glyph properties</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>cluster</para></entry>
<entry role="parameter_description"><para>the cluster that this glyph belongs to</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2>
<refsect2 id="pango-ot-buffer-set-rtl" role="function" condition="deprecated:|since:1.4">
<title>pango_ot_buffer_set_rtl&#160;()</title>
<indexterm zone="pango-ot-buffer-set-rtl" role="deprecated"><primary>pango_ot_buffer_set_rtl</primary></indexterm><indexterm zone="pango-ot-buffer-set-rtl" role="1.4"><primary>pango_ot_buffer_set_rtl</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_ot_buffer_set_rtl (<parameter><link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> *buffer</parameter>,
                         <parameter><link linkend="gboolean"><type>gboolean</type></link> rtl</parameter>);</programlisting>
<warning><para><literal>pango_ot_buffer_set_rtl</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Sets whether glyphs will be rendered right-to-left.  This setting
is needed for proper horizontal positioning of right-to-left scripts.</para>
<refsect3 id="pango-ot-buffer-set-rtl.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>buffer</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>rtl</para></entry>
<entry role="parameter_description"><para><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> for right-to-left text</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2>
<refsect2 id="pango-ot-buffer-set-zero-width-marks" role="function" condition="deprecated:|since:1.6">
<title>pango_ot_buffer_set_zero_width_marks&#160;()</title>
<indexterm zone="pango-ot-buffer-set-zero-width-marks" role="deprecated"><primary>pango_ot_buffer_set_zero_width_marks</primary></indexterm><indexterm zone="pango-ot-buffer-set-zero-width-marks" role="1.6"><primary>pango_ot_buffer_set_zero_width_marks</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_ot_buffer_set_zero_width_marks (<parameter><link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> *buffer</parameter>,
                                      <parameter><link linkend="gboolean"><type>gboolean</type></link> zero_width_marks</parameter>);</programlisting>
<warning><para><literal>pango_ot_buffer_set_zero_width_marks</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Sets whether characters with a mark class should be forced to zero width.
This setting is needed for proper positioning of Arabic accents,
but will produce incorrect results with standard OpenType Indic
fonts.</para>
<refsect3 id="pango-ot-buffer-set-zero-width-marks.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>buffer</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>zero_width_marks</para></entry>
<entry role="parameter_description"><para><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if characters with a mark class should
be forced to zero width.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.6">1.6</link></para></refsect2>
<refsect2 id="pango-ot-buffer-get-glyphs" role="function" condition="deprecated:|since:1.4">
<title>pango_ot_buffer_get_glyphs&#160;()</title>
<indexterm zone="pango-ot-buffer-get-glyphs" role="deprecated"><primary>pango_ot_buffer_get_glyphs</primary></indexterm><indexterm zone="pango-ot-buffer-get-glyphs" role="1.4"><primary>pango_ot_buffer_get_glyphs</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_ot_buffer_get_glyphs (<parameter>const <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> *buffer</parameter>,
                            <parameter><link linkend="PangoOTGlyph"><type>PangoOTGlyph</type></link> **glyphs</parameter>,
                            <parameter><link linkend="int"><type>int</type></link> *n_glyphs</parameter>);</programlisting>
<warning><para><literal>pango_ot_buffer_get_glyphs</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Gets the glyph array contained in a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link>.  The glyphs are
owned by the buffer and should not be freed, and are only valid as long
as buffer is not modified.</para>
<refsect3 id="pango-ot-buffer-get-glyphs.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>buffer</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>glyphs</para></entry>
<entry role="parameter_description"><para>location to
store the array of glyphs, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_glyphs][<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_glyphs</para></entry>
<entry role="parameter_description"><para>location to store the number of
glyphs, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2>
<refsect2 id="pango-ot-buffer-output" role="function" condition="deprecated:|since:1.4">
<title>pango_ot_buffer_output&#160;()</title>
<indexterm zone="pango-ot-buffer-output" role="deprecated"><primary>pango_ot_buffer_output</primary></indexterm><indexterm zone="pango-ot-buffer-output" role="1.4"><primary>pango_ot_buffer_output</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_ot_buffer_output (<parameter>const <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> *buffer</parameter>,
                        <parameter><link linkend="PangoGlyphString"><type>PangoGlyphString</type></link> *glyphs</parameter>);</programlisting>
<warning><para><literal>pango_ot_buffer_output</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Exports the glyphs in a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> into a <link linkend="PangoGlyphString"><type>PangoGlyphString</type></link>.  This is
typically used after the OpenType layout processing is over, to convert the
resulting glyphs into a generic Pango glyph string.</para>
<refsect3 id="pango-ot-buffer-output.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>buffer</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>glyphs</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoGlyphString"><type>PangoGlyphString</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2>
<refsect2 id="pango-ot-ruleset-get-for-description" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_ruleset_get_for_description&#160;()</title>
<indexterm zone="pango-ot-ruleset-get-for-description" role="deprecated"><primary>pango_ot_ruleset_get_for_description</primary></indexterm><indexterm zone="pango-ot-ruleset-get-for-description" role="1.18"><primary>pango_ot_ruleset_get_for_description</primary></indexterm>
<programlisting language="C">const <link linkend="PangoOTRuleset"><returnvalue>PangoOTRuleset</returnvalue></link>&#160;*
pango_ot_ruleset_get_for_description (<parameter><link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> *info</parameter>,
                                      <parameter>const <link linkend="PangoOTRulesetDescription"><type>PangoOTRulesetDescription</type></link> *desc</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_get_for_description</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Returns a ruleset for the given OpenType info and ruleset
description.  Rulesets are created on demand using
<link linkend="pango-ot-ruleset-new-from-description"><function>pango_ot_ruleset_new_from_description()</function></link>.
The returned ruleset should not be modified or destroyed.</para>
<para>The static feature map members of <parameter>desc</parameter>
 should be alive as
long as <parameter>info</parameter>
 is.</para>
<refsect3 id="pango-ot-ruleset-get-for-description.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>info</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>desc</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTRulesetDescription"><type>PangoOTRulesetDescription</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-ruleset-get-for-description.returns" role="returns">
<title>Returns</title>
<para> the <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> for <parameter>desc</parameter>
. This object will have
the same lifetime as <parameter>info</parameter>
.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="pango-ot-ruleset-new" role="function" condition="deprecated:">
<title>pango_ot_ruleset_new&#160;()</title>
<indexterm zone="pango-ot-ruleset-new" role="deprecated"><primary>pango_ot_ruleset_new</primary></indexterm>
<programlisting language="C"><link linkend="PangoOTRuleset"><returnvalue>PangoOTRuleset</returnvalue></link>&#160;*
pango_ot_ruleset_new (<parameter><link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> *info</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_new</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Creates a new <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> for the given OpenType info.</para>
<refsect3 id="pango-ot-ruleset-new.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>info</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-ruleset-new.returns" role="returns">
<title>Returns</title>
<para> the newly allocated <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link>, which
should be freed with <link linkend="g-object-unref"><function>g_object_unref()</function></link>.</para>
</refsect3></refsect2>
<refsect2 id="pango-ot-ruleset-new-for" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_ruleset_new_for&#160;()</title>
<indexterm zone="pango-ot-ruleset-new-for" role="deprecated"><primary>pango_ot_ruleset_new_for</primary></indexterm><indexterm zone="pango-ot-ruleset-new-for" role="1.18"><primary>pango_ot_ruleset_new_for</primary></indexterm>
<programlisting language="C"><link linkend="PangoOTRuleset"><returnvalue>PangoOTRuleset</returnvalue></link>&#160;*
pango_ot_ruleset_new_for (<parameter><link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> *info</parameter>,
                          <parameter><link linkend="PangoScript"><type>PangoScript</type></link> script</parameter>,
                          <parameter><link linkend="PangoLanguage"><type>PangoLanguage</type></link> *language</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_new_for</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Creates a new <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> for the given OpenType info, script, and
language.</para>
<para>This function is part of a convenience scheme that highly simplifies
using a <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> to represent features for a specific pair of script
and language.  So one can use this function passing in the script and
language of interest, and later try to add features to the ruleset by just
specifying the feature name or tag, without having to deal with finding
script, language, or feature indices manually.</para>
<para>In excess to what <link linkend="pango-ot-ruleset-new"><function>pango_ot_ruleset_new()</function></link> does, this function will:</para>
<itemizedlist>
  <listitem>
  Find the <link linkend="PangoOTTag"><type>PangoOTTag</type></link> script and language tags associated with
  <parameter>script</parameter> and <parameter>language</parameter> using <link linkend="pango-ot-tag-from-script"><function>pango_ot_tag_from_script()</function></link> and
  <link linkend="pango-ot-tag-from-language"><function>pango_ot_tag_from_language()</function></link>,
  </listitem>
  <listitem>
  For each of table types <link linkend="PANGO-OT-TABLE-GSUB:CAPS"><literal>PANGO_OT_TABLE_GSUB</literal></link> and <link linkend="PANGO-OT-TABLE-GPOS:CAPS"><literal>PANGO_OT_TABLE_GPOS</literal></link>,
  find the script index of the script tag found and the language
  system index of the language tag found in that script system, using
  <link linkend="pango-ot-info-find-script"><function>pango_ot_info_find_script()</function></link> and <link linkend="pango-ot-info-find-language"><function>pango_ot_info_find_language()</function></link>,
  </listitem>
  <listitem>
  For found language-systems, if they have required feature
  index, add that feature to the ruleset using
  <link linkend="pango-ot-ruleset-add-feature"><function>pango_ot_ruleset_add_feature()</function></link>,
  </listitem>
  <listitem>
  Remember found script and language indices for both table types,
  and use them in future <link linkend="pango-ot-ruleset-maybe-add-feature"><function>pango_ot_ruleset_maybe_add_feature()</function></link> and
  <link linkend="pango-ot-ruleset-maybe-add-features"><function>pango_ot_ruleset_maybe_add_features()</function></link>.
  </listitem>
</itemizedlist>
<para>Because of the way return values of <link linkend="pango-ot-info-find-script"><function>pango_ot_info_find_script()</function></link> and
<link linkend="pango-ot-info-find-language"><function>pango_ot_info_find_language()</function></link> are ignored, this function automatically
finds and uses the 'DFLT' script and the default language-system.</para>
<refsect3 id="pango-ot-ruleset-new-for.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>info</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>script</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoScript"><type>PangoScript</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>language</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoLanguage"><type>PangoLanguage</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-ruleset-new-for.returns" role="returns">
<title>Returns</title>
<para> the newly allocated <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link>, which
should be freed with <link linkend="g-object-unref"><function>g_object_unref()</function></link>.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="pango-ot-ruleset-new-from-description" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_ruleset_new_from_description&#160;()</title>
<indexterm zone="pango-ot-ruleset-new-from-description" role="deprecated"><primary>pango_ot_ruleset_new_from_description</primary></indexterm><indexterm zone="pango-ot-ruleset-new-from-description" role="1.18"><primary>pango_ot_ruleset_new_from_description</primary></indexterm>
<programlisting language="C"><link linkend="PangoOTRuleset"><returnvalue>PangoOTRuleset</returnvalue></link>&#160;*
pango_ot_ruleset_new_from_description (<parameter><link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> *info</parameter>,
                                       <parameter>const <link linkend="PangoOTRulesetDescription"><type>PangoOTRulesetDescription</type></link> *desc</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_new_from_description</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Creates a new <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> for the given OpenType infor and
matching the given ruleset description.</para>
<para>This is a convenience function that calls <link linkend="pango-ot-ruleset-new-for"><function>pango_ot_ruleset_new_for()</function></link> and
adds the static GSUB/GPOS features to the resulting ruleset, followed by
adding other features to both GSUB and GPOS.</para>
<para>The static feature map members of <parameter>desc</parameter>
 should be alive as
long as <parameter>info</parameter>
 is.</para>
<refsect3 id="pango-ot-ruleset-new-from-description.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>info</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>desc</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTRulesetDescription"><type>PangoOTRulesetDescription</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-ruleset-new-from-description.returns" role="returns">
<title>Returns</title>
<para> the newly allocated <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link>, which
should be freed with <link linkend="g-object-unref"><function>g_object_unref()</function></link>.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="pango-ot-ruleset-add-feature" role="function" condition="deprecated:">
<title>pango_ot_ruleset_add_feature&#160;()</title>
<indexterm zone="pango-ot-ruleset-add-feature" role="deprecated"><primary>pango_ot_ruleset_add_feature</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_ot_ruleset_add_feature (<parameter><link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> *ruleset</parameter>,
                              <parameter><link linkend="PangoOTTableType"><type>PangoOTTableType</type></link> table_type</parameter>,
                              <parameter><link linkend="guint"><type>guint</type></link> feature_index</parameter>,
                              <parameter><link linkend="gulong"><type>gulong</type></link> property_bit</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_add_feature</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Adds a feature to the ruleset.</para>
<refsect3 id="pango-ot-ruleset-add-feature.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>ruleset</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>table_type</para></entry>
<entry role="parameter_description"><para>the table type to add a feature to.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>feature_index</para></entry>
<entry role="parameter_description"><para>the index of the feature to add.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>property_bit</para></entry>
<entry role="parameter_description"><para>the property bit to use for this feature. Used to identify
the glyphs that this feature should be applied to, or
<link linkend="PANGO-OT-ALL-GLYPHS:CAPS"><literal>PANGO_OT_ALL_GLYPHS</literal></link> if it should be applied to all glyphs.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="pango-ot-ruleset-maybe-add-feature" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_ruleset_maybe_add_feature&#160;()</title>
<indexterm zone="pango-ot-ruleset-maybe-add-feature" role="deprecated"><primary>pango_ot_ruleset_maybe_add_feature</primary></indexterm><indexterm zone="pango-ot-ruleset-maybe-add-feature" role="1.18"><primary>pango_ot_ruleset_maybe_add_feature</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
pango_ot_ruleset_maybe_add_feature (<parameter><link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> *ruleset</parameter>,
                                    <parameter><link linkend="PangoOTTableType"><type>PangoOTTableType</type></link> table_type</parameter>,
                                    <parameter><link linkend="PangoOTTag"><type>PangoOTTag</type></link> feature_tag</parameter>,
                                    <parameter><link linkend="gulong"><type>gulong</type></link> property_bit</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_maybe_add_feature</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>This is a convenience function that first tries to find the feature
using <link linkend="pango-ot-info-find-feature"><function>pango_ot_info_find_feature()</function></link> and the ruleset script and language
passed to <link linkend="pango-ot-ruleset-new-for"><function>pango_ot_ruleset_new_for()</function></link>,
and if the feature is found, adds it to the ruleset.</para>
<para>If <parameter>ruleset</parameter>
 was not created using <link linkend="pango-ot-ruleset-new-for"><function>pango_ot_ruleset_new_for()</function></link>, this function
does nothing.</para>
<refsect3 id="pango-ot-ruleset-maybe-add-feature.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>ruleset</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>table_type</para></entry>
<entry role="parameter_description"><para>the table type to add a feature to.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>feature_tag</para></entry>
<entry role="parameter_description"><para>the tag of the feature to add.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>property_bit</para></entry>
<entry role="parameter_description"><para>the property bit to use for this feature. Used to identify
the glyphs that this feature should be applied to, or
<link linkend="PANGO-OT-ALL-GLYPHS:CAPS"><literal>PANGO_OT_ALL_GLYPHS</literal></link> if it should be applied to all glyphs.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-ruleset-maybe-add-feature.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the feature was found and added to ruleset,
<link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="pango-ot-ruleset-maybe-add-features" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_ruleset_maybe_add_features&#160;()</title>
<indexterm zone="pango-ot-ruleset-maybe-add-features" role="deprecated"><primary>pango_ot_ruleset_maybe_add_features</primary></indexterm><indexterm zone="pango-ot-ruleset-maybe-add-features" role="1.18"><primary>pango_ot_ruleset_maybe_add_features</primary></indexterm>
<programlisting language="C"><link linkend="guint"><returnvalue>guint</returnvalue></link>
pango_ot_ruleset_maybe_add_features (<parameter><link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> *ruleset</parameter>,
                                     <parameter><link linkend="PangoOTTableType"><type>PangoOTTableType</type></link> table_type</parameter>,
                                     <parameter>const <link linkend="PangoOTFeatureMap"><type>PangoOTFeatureMap</type></link> *features</parameter>,
                                     <parameter><link linkend="guint"><type>guint</type></link> n_features</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_maybe_add_features</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>This is a convenience function that 
for each feature in the feature map array <parameter>features</parameter>

converts the feature name to a <link linkend="PangoOTTag"><type>PangoOTTag</type></link> feature tag using <link linkend="PANGO-OT-TAG-MAKE:CAPS"><function>PANGO_OT_TAG_MAKE()</function></link>
and calls <link linkend="pango-ot-ruleset-maybe-add-feature"><function>pango_ot_ruleset_maybe_add_feature()</function></link> on it.</para>
<refsect3 id="pango-ot-ruleset-maybe-add-features.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>ruleset</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>table_type</para></entry>
<entry role="parameter_description"><para>the table type to add features to.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>features</para></entry>
<entry role="parameter_description"><para>array of feature name and property bits to add.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_features</para></entry>
<entry role="parameter_description"><para>number of feature records in <parameter>features</parameter>
array.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-ruleset-maybe-add-features.returns" role="returns">
<title>Returns</title>
<para> The number of features in <parameter>features</parameter>
that were found
and added to <parameter>ruleset</parameter>
.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="pango-ot-ruleset-get-feature-count" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_ruleset_get_feature_count&#160;()</title>
<indexterm zone="pango-ot-ruleset-get-feature-count" role="deprecated"><primary>pango_ot_ruleset_get_feature_count</primary></indexterm><indexterm zone="pango-ot-ruleset-get-feature-count" role="1.18"><primary>pango_ot_ruleset_get_feature_count</primary></indexterm>
<programlisting language="C"><link linkend="guint"><returnvalue>guint</returnvalue></link>
pango_ot_ruleset_get_feature_count (<parameter>const <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> *ruleset</parameter>,
                                    <parameter><link linkend="guint"><type>guint</type></link> *n_gsub_features</parameter>,
                                    <parameter><link linkend="guint"><type>guint</type></link> *n_gpos_features</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_get_feature_count</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Gets the number of GSUB and GPOS features in the ruleset.</para>
<refsect3 id="pango-ot-ruleset-get-feature-count.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>ruleset</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_gsub_features</para></entry>
<entry role="parameter_description"><para>location to store number of
GSUB features, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_gpos_features</para></entry>
<entry role="parameter_description"><para>location to store number of
GPOS features, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-ruleset-get-feature-count.returns" role="returns">
<title>Returns</title>
<para> Total number of features in the <parameter>ruleset</parameter>
.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="pango-ot-ruleset-substitute" role="function" condition="deprecated:|since:1.4">
<title>pango_ot_ruleset_substitute&#160;()</title>
<indexterm zone="pango-ot-ruleset-substitute" role="deprecated"><primary>pango_ot_ruleset_substitute</primary></indexterm><indexterm zone="pango-ot-ruleset-substitute" role="1.4"><primary>pango_ot_ruleset_substitute</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_ot_ruleset_substitute (<parameter>const <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> *ruleset</parameter>,
                             <parameter><link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> *buffer</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_substitute</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Performs the OpenType GSUB substitution on <parameter>buffer</parameter>
 using the features
in <parameter>ruleset</parameter>
</para>
<refsect3 id="pango-ot-ruleset-substitute.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>ruleset</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>buffer</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2>
<refsect2 id="pango-ot-ruleset-position" role="function" condition="deprecated:|since:1.4">
<title>pango_ot_ruleset_position&#160;()</title>
<indexterm zone="pango-ot-ruleset-position" role="deprecated"><primary>pango_ot_ruleset_position</primary></indexterm><indexterm zone="pango-ot-ruleset-position" role="1.4"><primary>pango_ot_ruleset_position</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_ot_ruleset_position (<parameter>const <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> *ruleset</parameter>,
                           <parameter><link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> *buffer</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_position</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Performs the OpenType GPOS positioning on <parameter>buffer</parameter>
 using the features
in <parameter>ruleset</parameter>
</para>
<refsect3 id="pango-ot-ruleset-position.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>ruleset</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>buffer</para></entry>
<entry role="parameter_description"><para>a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link>.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2>
<refsect2 id="pango-ot-ruleset-description-copy" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_ruleset_description_copy&#160;()</title>
<indexterm zone="pango-ot-ruleset-description-copy" role="deprecated"><primary>pango_ot_ruleset_description_copy</primary></indexterm><indexterm zone="pango-ot-ruleset-description-copy" role="1.18"><primary>pango_ot_ruleset_description_copy</primary></indexterm>
<programlisting language="C"><link linkend="PangoOTRulesetDescription"><returnvalue>PangoOTRulesetDescription</returnvalue></link>&#160;*
pango_ot_ruleset_description_copy (<parameter>const <link linkend="PangoOTRulesetDescription"><type>PangoOTRulesetDescription</type></link> *desc</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_description_copy</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Creates a copy of <parameter>desc</parameter>
, which should be freed with
<link linkend="pango-ot-ruleset-description-free"><function>pango_ot_ruleset_description_free()</function></link>. Primarily used internally
by <link linkend="pango-ot-ruleset-get-for-description"><function>pango_ot_ruleset_get_for_description()</function></link> to cache rulesets for
ruleset descriptions.</para>
<refsect3 id="pango-ot-ruleset-description-copy.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>desc</para></entry>
<entry role="parameter_description"><para>ruleset description to copy</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-ruleset-description-copy.returns" role="returns">
<title>Returns</title>
<para> the newly allocated <link linkend="PangoOTRulesetDescription"><type>PangoOTRulesetDescription</type></link>, which
should be freed with <link linkend="pango-ot-ruleset-description-free"><function>pango_ot_ruleset_description_free()</function></link>.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="pango-ot-ruleset-description-equal" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_ruleset_description_equal&#160;()</title>
<indexterm zone="pango-ot-ruleset-description-equal" role="deprecated"><primary>pango_ot_ruleset_description_equal</primary></indexterm><indexterm zone="pango-ot-ruleset-description-equal" role="1.18"><primary>pango_ot_ruleset_description_equal</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
pango_ot_ruleset_description_equal (<parameter>const <link linkend="PangoOTRulesetDescription"><type>PangoOTRulesetDescription</type></link> *desc1</parameter>,
                                    <parameter>const <link linkend="PangoOTRulesetDescription"><type>PangoOTRulesetDescription</type></link> *desc2</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_description_equal</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Compares two ruleset descriptions for equality.
Two ruleset descriptions are considered equal if the rulesets
they describe are provably identical.  This means that their
script, language, and all feature sets should be equal.  For static feature
sets, the array addresses are compared directly, while for other
features, the list of features is compared one by one.
(Two ruleset descriptions may result in identical rulesets
being created, but still compare <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>.)</para>
<refsect3 id="pango-ot-ruleset-description-equal.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>desc1</para></entry>
<entry role="parameter_description"><para>a ruleset description</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>desc2</para></entry>
<entry role="parameter_description"><para>a ruleset description</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-ruleset-description-equal.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if two ruleset descriptions are identical,
<link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="pango-ot-ruleset-description-free" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_ruleset_description_free&#160;()</title>
<indexterm zone="pango-ot-ruleset-description-free" role="deprecated"><primary>pango_ot_ruleset_description_free</primary></indexterm><indexterm zone="pango-ot-ruleset-description-free" role="1.18"><primary>pango_ot_ruleset_description_free</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
pango_ot_ruleset_description_free (<parameter><link linkend="PangoOTRulesetDescription"><type>PangoOTRulesetDescription</type></link> *desc</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_description_free</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Frees a ruleset description allocated by 
<link linkend="pango-ot-ruleset-description-copy"><function>pango_ot_ruleset_description_copy()</function></link>.</para>
<refsect3 id="pango-ot-ruleset-description-free.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>desc</para></entry>
<entry role="parameter_description"><para>an allocated <link linkend="PangoOTRulesetDescription"><type>PangoOTRulesetDescription</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="pango-ot-ruleset-description-hash" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_ruleset_description_hash&#160;()</title>
<indexterm zone="pango-ot-ruleset-description-hash" role="deprecated"><primary>pango_ot_ruleset_description_hash</primary></indexterm><indexterm zone="pango-ot-ruleset-description-hash" role="1.18"><primary>pango_ot_ruleset_description_hash</primary></indexterm>
<programlisting language="C"><link linkend="guint"><returnvalue>guint</returnvalue></link>
pango_ot_ruleset_description_hash (<parameter>const <link linkend="PangoOTRulesetDescription"><type>PangoOTRulesetDescription</type></link> *desc</parameter>);</programlisting>
<warning><para><literal>pango_ot_ruleset_description_hash</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Computes a hash of a <link linkend="PangoOTRulesetDescription"><type>PangoOTRulesetDescription</type></link> structure suitable
to be used, for example, as an argument to <link linkend="g-hash-table-new"><function>g_hash_table_new()</function></link>.</para>
<refsect3 id="pango-ot-ruleset-description-hash.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>desc</para></entry>
<entry role="parameter_description"><para>a ruleset description</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-ruleset-description-hash.returns" role="returns">
<title>Returns</title>
<para> the hash value.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="pango-ot-tag-from-language" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_tag_from_language&#160;()</title>
<indexterm zone="pango-ot-tag-from-language" role="deprecated"><primary>pango_ot_tag_from_language</primary></indexterm><indexterm zone="pango-ot-tag-from-language" role="1.18"><primary>pango_ot_tag_from_language</primary></indexterm>
<programlisting language="C"><link linkend="PangoOTTag"><returnvalue>PangoOTTag</returnvalue></link>
pango_ot_tag_from_language (<parameter><link linkend="PangoLanguage"><type>PangoLanguage</type></link> *language</parameter>);</programlisting>
<warning><para><literal>pango_ot_tag_from_language</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Finds the OpenType language-system tag best describing <parameter>language</parameter>
.</para>
<refsect3 id="pango-ot-tag-from-language.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>language</para></entry>
<entry role="parameter_description"><para>A <link linkend="PangoLanguage"><type>PangoLanguage</type></link>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-tag-from-language.returns" role="returns">
<title>Returns</title>
<para> <link linkend="PangoOTTag"><type>PangoOTTag</type></link> best matching <parameter>language</parameter>
or
<link linkend="PANGO-OT-TAG-DEFAULT-LANGUAGE:CAPS"><literal>PANGO_OT_TAG_DEFAULT_LANGUAGE</literal></link> if none found or if <parameter>language</parameter>
is <link linkend="NULL:CAPS"><literal>NULL</literal></link>.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="pango-ot-tag-from-script" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_tag_from_script&#160;()</title>
<indexterm zone="pango-ot-tag-from-script" role="deprecated"><primary>pango_ot_tag_from_script</primary></indexterm><indexterm zone="pango-ot-tag-from-script" role="1.18"><primary>pango_ot_tag_from_script</primary></indexterm>
<programlisting language="C"><link linkend="PangoOTTag"><returnvalue>PangoOTTag</returnvalue></link>
pango_ot_tag_from_script (<parameter><link linkend="PangoScript"><type>PangoScript</type></link> script</parameter>);</programlisting>
<warning><para><literal>pango_ot_tag_from_script</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Finds the OpenType script tag corresponding to <parameter>script</parameter>
.</para>
<para>The <link linkend="PANGO-SCRIPT-COMMON:CAPS"><literal>PANGO_SCRIPT_COMMON</literal></link>, <link linkend="PANGO-SCRIPT-INHERITED:CAPS"><literal>PANGO_SCRIPT_INHERITED</literal></link>, and
<link linkend="PANGO-SCRIPT-UNKNOWN:CAPS"><literal>PANGO_SCRIPT_UNKNOWN</literal></link> scripts are mapped to the OpenType
'DFLT' script tag that is also defined as
<link linkend="PANGO-OT-TAG-DEFAULT-SCRIPT:CAPS"><literal>PANGO_OT_TAG_DEFAULT_SCRIPT</literal></link>.</para>
<para>Note that multiple <link linkend="PangoScript"><type>PangoScript</type></link> values may map to the same
OpenType script tag.  In particular, <link linkend="PANGO-SCRIPT-HIRAGANA:CAPS"><literal>PANGO_SCRIPT_HIRAGANA</literal></link>
and <link linkend="PANGO-SCRIPT-KATAKANA:CAPS"><literal>PANGO_SCRIPT_KATAKANA</literal></link> both map to the OT tag 'kana'.</para>
<refsect3 id="pango-ot-tag-from-script.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>script</para></entry>
<entry role="parameter_description"><para>A <link linkend="PangoScript"><type>PangoScript</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-tag-from-script.returns" role="returns">
<title>Returns</title>
<para> <link linkend="PangoOTTag"><type>PangoOTTag</type></link> corresponding to <parameter>script</parameter>
or
<link linkend="PANGO-OT-TAG-DEFAULT-SCRIPT:CAPS"><literal>PANGO_OT_TAG_DEFAULT_SCRIPT</literal></link> if none found.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="pango-ot-tag-to-language" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_tag_to_language&#160;()</title>
<indexterm zone="pango-ot-tag-to-language" role="deprecated"><primary>pango_ot_tag_to_language</primary></indexterm><indexterm zone="pango-ot-tag-to-language" role="1.18"><primary>pango_ot_tag_to_language</primary></indexterm>
<programlisting language="C"><link linkend="PangoLanguage"><returnvalue>PangoLanguage</returnvalue></link>&#160;*
pango_ot_tag_to_language (<parameter><link linkend="PangoOTTag"><type>PangoOTTag</type></link> language_tag</parameter>);</programlisting>
<warning><para><literal>pango_ot_tag_to_language</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Finds a <link linkend="PangoLanguage"><type>PangoLanguage</type></link> corresponding to <parameter>language_tag</parameter>
.</para>
<refsect3 id="pango-ot-tag-to-language.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>language_tag</para></entry>
<entry role="parameter_description"><para>A <link linkend="PangoOTTag"><type>PangoOTTag</type></link> OpenType language-system tag</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-tag-to-language.returns" role="returns">
<title>Returns</title>
<para> <link linkend="PangoLanguage"><type>PangoLanguage</type></link> best matching <parameter>language_tag</parameter>
or
<link linkend="PangoLanguage"><type>PangoLanguage</type></link> corresponding to the string "xx" if none found.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="pango-ot-tag-to-script" role="function" condition="deprecated:|since:1.18">
<title>pango_ot_tag_to_script&#160;()</title>
<indexterm zone="pango-ot-tag-to-script" role="deprecated"><primary>pango_ot_tag_to_script</primary></indexterm><indexterm zone="pango-ot-tag-to-script" role="1.18"><primary>pango_ot_tag_to_script</primary></indexterm>
<programlisting language="C"><link linkend="PangoScript"><returnvalue>PangoScript</returnvalue></link>
pango_ot_tag_to_script (<parameter><link linkend="PangoOTTag"><type>PangoOTTag</type></link> script_tag</parameter>);</programlisting>
<warning><para><literal>pango_ot_tag_to_script</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>Finds the <link linkend="PangoScript"><type>PangoScript</type></link> corresponding to <parameter>script_tag</parameter>
.</para>
<para>The 'DFLT' script tag is mapped to <link linkend="PANGO-SCRIPT-COMMON:CAPS"><literal>PANGO_SCRIPT_COMMON</literal></link>.</para>
<para>Note that an OpenType script tag may correspond to multiple
<link linkend="PangoScript"><type>PangoScript</type></link> values.  In such cases, the <link linkend="PangoScript"><type>PangoScript</type></link> value
with the smallest value is returned.
In particular, <link linkend="PANGO-SCRIPT-HIRAGANA:CAPS"><literal>PANGO_SCRIPT_HIRAGANA</literal></link>
and <link linkend="PANGO-SCRIPT-KATAKANA:CAPS"><literal>PANGO_SCRIPT_KATAKANA</literal></link> both map to the OT tag 'kana'.
This function will return <link linkend="PANGO-SCRIPT-HIRAGANA:CAPS"><literal>PANGO_SCRIPT_HIRAGANA</literal></link> for
'kana'.</para>
<refsect3 id="pango-ot-tag-to-script.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>script_tag</para></entry>
<entry role="parameter_description"><para>A <link linkend="PangoOTTag"><type>PangoOTTag</type></link> OpenType script tag</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="pango-ot-tag-to-script.returns" role="returns">
<title>Returns</title>
<para> <link linkend="PangoScript"><type>PangoScript</type></link> corresponding to <parameter>script_tag</parameter>
or
<link linkend="PANGO-SCRIPT-UNKNOWN:CAPS"><literal>PANGO_SCRIPT_UNKNOWN</literal></link> if none found.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>

</refsect1>
<refsect1 id="pango-OpenType-Font-Handling.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="PangoOTTag" role="typedef" condition="deprecated:">
<title>PangoOTTag</title>
<indexterm zone="PangoOTTag" role="deprecated"><primary>PangoOTTag</primary></indexterm>
<programlisting language="C">typedef guint32 PangoOTTag;
</programlisting>
<warning><para><literal>PangoOTTag</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>The <link linkend="PangoOTTag"><type>PangoOTTag</type></link> typedef is used to represent TrueType and OpenType
four letter tags inside Pango. Use <link linkend="PANGO-OT-TAG-MAKE:CAPS"><function>PANGO_OT_TAG_MAKE()</function></link>
or <link linkend="PANGO-OT-TAG-MAKE-FROM-STRING:CAPS"><function>PANGO_OT_TAG_MAKE_FROM_STRING()</function></link> macros to create <type>PangoOTTag</type>s manually.</para>
</refsect2>
<refsect2 id="PangoOTInfo-struct" role="struct">
<title>PangoOTInfo</title>
<indexterm zone="PangoOTInfo-struct" role="deprecated"><primary>PangoOTInfo</primary></indexterm>
<programlisting language="C">typedef struct _PangoOTInfo PangoOTInfo;</programlisting>
<warning><para><literal>PangoOTInfo</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>The <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link> struct contains the various
tables associated with an OpenType font. It contains only private fields and
should only be accessed via the <function>pango_ot_info_*</function> functions
which are documented below. To obtain a <link linkend="PangoOTInfo"><type>PangoOTInfo</type></link>,
use <link linkend="pango-ot-info-get"><function>pango_ot_info_get()</function></link>.</para>
</refsect2>
<refsect2 id="PangoOTBuffer" role="struct" condition="deprecated:">
<title>PangoOTBuffer</title>
<indexterm zone="PangoOTBuffer" role="deprecated"><primary>PangoOTBuffer</primary></indexterm>
<programlisting language="C">typedef struct _PangoOTBuffer PangoOTBuffer;</programlisting>
<warning><para><literal>PangoOTBuffer</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>The <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link> structure is used to store strings of glyphs associated
with a <link linkend="PangoFcFont"><type>PangoFcFont</type></link>, suitable for OpenType layout processing.  It contains
only private fields and should only be accessed via the
<function>pango_ot_buffer_*</function> functions which are documented below.
To obtain a <link linkend="PangoOTBuffer"><type>PangoOTBuffer</type></link>, use <link linkend="pango-ot-buffer-new"><function>pango_ot_buffer_new()</function></link>.</para>
</refsect2>
<refsect2 id="PangoOTGlyph" role="struct" condition="deprecated:">
<title>struct PangoOTGlyph</title>
<indexterm zone="PangoOTGlyph" role="deprecated"><primary>PangoOTGlyph</primary></indexterm>
<programlisting language="C">struct PangoOTGlyph {
  guint32  glyph;
  guint    properties;
  guint    cluster;
  gushort  component;
  gushort  ligID;

  guint    internal;
};
</programlisting>
<warning><para><literal>PangoOTGlyph</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>The <link linkend="PangoOTGlyph"><type>PangoOTGlyph</type></link> structure represents a single glyph together with
information used for OpenType layout processing of the glyph.
It contains the following fields.</para>
<refsect3 id="PangoOTGlyph.members" role="struct_members">
<title>Members</title>
<informaltable role="struct_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="struct_members_name" colwidth="300px"/>
<colspec colname="struct_members_description"/>
<colspec colname="struct_members_annotations" colwidth="200px"/>
<tbody>
<row role="member"><entry role="struct_member_name"><para><link linkend="guint32"><type>guint32</type></link>&#160;<structfield id="PangoOTGlyph.glyph">glyph</structfield>;</para></entry>
<entry role="struct_member_description"><para>the glyph itself.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="guint"><type>guint</type></link>&#160;<structfield id="PangoOTGlyph.properties">properties</structfield>;</para></entry>
<entry role="struct_member_description"><para>the properties value, identifying which features should be
applied on this glyph.  See <link linkend="pango-ot-ruleset-add-feature"><function>pango_ot_ruleset_add_feature()</function></link>.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="guint"><type>guint</type></link>&#160;<structfield id="PangoOTGlyph.cluster">cluster</structfield>;</para></entry>
<entry role="struct_member_description"><para>the cluster that this glyph belongs to.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="gushort"><type>gushort</type></link>&#160;<structfield id="PangoOTGlyph.component">component</structfield>;</para></entry>
<entry role="struct_member_description"><para>a component value, set by the OpenType layout engine.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="gushort"><type>gushort</type></link>&#160;<structfield id="PangoOTGlyph.ligID">ligID</structfield>;</para></entry>
<entry role="struct_member_description"><para>a ligature index value, set by the OpenType layout engine.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="guint"><type>guint</type></link>&#160;<structfield id="PangoOTGlyph.internal">internal</structfield>;</para></entry>
<entry role="struct_member_description"><para>for Pango internal use</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3>
</refsect2>
<refsect2 id="PangoOTRuleset-struct" role="struct">
<title>PangoOTRuleset</title>
<indexterm zone="PangoOTRuleset-struct" role="deprecated"><primary>PangoOTRuleset</primary></indexterm>
<programlisting language="C">typedef struct _PangoOTRuleset PangoOTRuleset;</programlisting>
<warning><para><literal>PangoOTRuleset</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>The <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> structure holds a
set of features selected from the tables in an OpenType font.
(A feature is an operation such as adjusting glyph positioning
that should be applied to a text feature such as a certain
type of accent.) A <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link>
is created with <link linkend="pango-ot-ruleset-new"><function>pango_ot_ruleset_new()</function></link>, features are added
to it with <link linkend="pango-ot-ruleset-add-feature"><function>pango_ot_ruleset_add_feature()</function></link>, then it is
applied to a <link linkend="PangoGlyphString"><type>PangoGlyphString</type></link> with <link linkend="pango-ot-ruleset-shape"><function>pango_ot_ruleset_shape()</function></link>.</para>
</refsect2>
<refsect2 id="PangoOTRulesetDescription" role="struct" condition="deprecated:|since:1.18">
<title>struct PangoOTRulesetDescription</title>
<indexterm zone="PangoOTRulesetDescription" role="deprecated"><primary>PangoOTRulesetDescription</primary></indexterm><indexterm zone="PangoOTRulesetDescription" role="1.18"><primary>PangoOTRulesetDescription</primary></indexterm>
<programlisting language="C">struct PangoOTRulesetDescription {
  PangoScript               script;
  PangoLanguage            *language;
  const PangoOTFeatureMap  *static_gsub_features;
  guint                   n_static_gsub_features;
  const PangoOTFeatureMap  *static_gpos_features;
  guint                   n_static_gpos_features;
  const PangoOTFeatureMap  *other_features;
  guint                   n_other_features;
};
</programlisting>
<warning><para><literal>PangoOTRulesetDescription</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>The <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> structure holds all the information needed
to build a complete <link linkend="PangoOTRuleset"><type>PangoOTRuleset</type></link> from an OpenType font.
The main use of this struct is to act as the key for a per-font
hash of rulesets.  The user populates a ruleset description and
gets the ruleset using <link linkend="pango-ot-ruleset-get-for-description"><function>pango_ot_ruleset_get_for_description()</function></link>
or create a new one using <link linkend="pango-ot-ruleset-new-from-description"><function>pango_ot_ruleset_new_from_description()</function></link>.</para>
<refsect3 id="PangoOTRulesetDescription.members" role="struct_members">
<title>Members</title>
<informaltable role="struct_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="struct_members_name" colwidth="300px"/>
<colspec colname="struct_members_description"/>
<colspec colname="struct_members_annotations" colwidth="200px"/>
<tbody>
<row role="member"><entry role="struct_member_name"><para><link linkend="PangoScript"><type>PangoScript</type></link>&#160;<structfield id="PangoOTRulesetDescription.script">script</structfield>;</para></entry>
<entry role="struct_member_description"><para>a <link linkend="PangoScript"><type>PangoScript</type></link>.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="PangoLanguage"><type>PangoLanguage</type></link>&#160;*<structfield id="PangoOTRulesetDescription.language">language</structfield>;</para></entry>
<entry role="struct_member_description"><para>a <link linkend="PangoLanguage"><type>PangoLanguage</type></link>.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para>const&#160;<link linkend="PangoOTFeatureMap"><type>PangoOTFeatureMap</type></link>&#160;*<structfield id="PangoOTRulesetDescription.static-gsub-features">static_gsub_features</structfield>;</para></entry>
<entry role="struct_member_description"><para>static map of GSUB features,
or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="struct_member_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="guint"><type>guint</type></link>&#160;<structfield id="PangoOTRulesetDescription.n-static-gsub-features">n_static_gsub_features</structfield>;</para></entry>
<entry role="struct_member_description"><para>length of <parameter>static_gsub_features</parameter>
, or 0.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para>const&#160;<link linkend="PangoOTFeatureMap"><type>PangoOTFeatureMap</type></link>&#160;*<structfield id="PangoOTRulesetDescription.static-gpos-features">static_gpos_features</structfield>;</para></entry>
<entry role="struct_member_description"><para>static map of GPOS features,
or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="struct_member_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="guint"><type>guint</type></link>&#160;<structfield id="PangoOTRulesetDescription.n-static-gpos-features">n_static_gpos_features</structfield>;</para></entry>
<entry role="struct_member_description"><para>length of <parameter>static_gpos_features</parameter>
, or 0.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para>const&#160;<link linkend="PangoOTFeatureMap"><type>PangoOTFeatureMap</type></link>&#160;*<structfield id="PangoOTRulesetDescription.other-features">other_features</structfield>;</para></entry>
<entry role="struct_member_description"><para>map of extra features to add to both
GSUB and GPOS, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>.  Unlike the static maps, this pointer
need not live beyond the life of function calls taking this
struct. </para></entry>
<entry role="struct_member_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="guint"><type>guint</type></link>&#160;<structfield id="PangoOTRulesetDescription.n-other-features">n_other_features</structfield>;</para></entry>
<entry role="struct_member_description"><para>length of <parameter>other_features</parameter>
, or 0.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3>
<para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="PangoOTTableType" role="enum" condition="deprecated:">
<title>enum PangoOTTableType</title>
<indexterm zone="PangoOTTableType" role="deprecated"><primary>PangoOTTableType</primary></indexterm>
<warning><para><literal>PangoOTTableType</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>The <type>PangoOTTableType</type> enumeration values are used to
identify the various OpenType tables in the
<function>pango_ot_info_*</function> functions.</para>
<refsect3 id="PangoOTTableType.members" role="enum_members">
<title>Members</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="enum_members_name" colwidth="300px"/>
<colspec colname="enum_members_description"/>
<colspec colname="enum_members_annotations" colwidth="200px"/>
<tbody>
<row role="constant"><entry role="enum_member_name"><para id="PANGO-OT-TABLE-GSUB:CAPS">PANGO_OT_TABLE_GSUB</para></entry>
<entry role="enum_member_description"><para>The GSUB table.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="PANGO-OT-TABLE-GPOS:CAPS">PANGO_OT_TABLE_GPOS</para></entry>
<entry role="enum_member_description"><para>The GPOS table.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="PangoOTFeatureMap" role="struct" condition="deprecated:|since:1.18">
<title>struct PangoOTFeatureMap</title>
<indexterm zone="PangoOTFeatureMap" role="deprecated"><primary>PangoOTFeatureMap</primary></indexterm><indexterm zone="PangoOTFeatureMap" role="1.18"><primary>PangoOTFeatureMap</primary></indexterm>
<programlisting language="C">struct PangoOTFeatureMap {
  char     feature_name[5];
  gulong   property_bit;
};
</programlisting>
<warning><para><literal>PangoOTFeatureMap</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>The <link linkend="PangoOTFeatureMap"><type>PangoOTFeatureMap</type></link> typedef is used to represent an OpenType
feature with the property bit associated with it.  The feature tag is
represented as a char array instead of a <link linkend="PangoOTTag"><type>PangoOTTag</type></link> for convenience.</para>
<refsect3 id="PangoOTFeatureMap.members" role="struct_members">
<title>Members</title>
<informaltable role="struct_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="struct_members_name" colwidth="300px"/>
<colspec colname="struct_members_description"/>
<colspec colname="struct_members_annotations" colwidth="200px"/>
<tbody>
<row role="member"><entry role="struct_member_name"><para><link linkend="char"><type>char</type></link>&#160;<structfield id="PangoOTFeatureMap.feature-name">feature_name</structfield>[5];</para></entry>
<entry role="struct_member_description"><para>feature tag in represented as four-letter ASCII string.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="gulong"><type>gulong</type></link>&#160;<structfield id="PangoOTFeatureMap.property-bit">property_bit</structfield>;</para></entry>
<entry role="struct_member_description"><para>the property bit to use for this feature.  See
<link linkend="pango-ot-ruleset-add-feature"><function>pango_ot_ruleset_add_feature()</function></link> for details.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3>
<para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="PANGO-OT-ALL-GLYPHS:CAPS" role="macro" condition="deprecated:|since:1.16">
<title>PANGO_OT_ALL_GLYPHS</title>
<indexterm zone="PANGO-OT-ALL-GLYPHS:CAPS" role="deprecated"><primary>PANGO_OT_ALL_GLYPHS</primary></indexterm><indexterm zone="PANGO-OT-ALL-GLYPHS:CAPS" role="1.16"><primary>PANGO_OT_ALL_GLYPHS</primary></indexterm>
<programlisting language="C">#define PANGO_OT_ALL_GLYPHS			((guint) 0xFFFF)
</programlisting>
<warning><para><literal>PANGO_OT_ALL_GLYPHS</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>This is used as the property bit in <link linkend="pango-ot-ruleset-add-feature"><function>pango_ot_ruleset_add_feature()</function></link> when a
feature should be applied to all glyphs.</para>
<para role="since">Since: <link linkend="api-index-1.16">1.16</link></para></refsect2>
<refsect2 id="PANGO-OT-NO-FEATURE:CAPS" role="macro" condition="deprecated:|since:1.18">
<title>PANGO_OT_NO_FEATURE</title>
<indexterm zone="PANGO-OT-NO-FEATURE:CAPS" role="deprecated"><primary>PANGO_OT_NO_FEATURE</primary></indexterm><indexterm zone="PANGO-OT-NO-FEATURE:CAPS" role="1.18"><primary>PANGO_OT_NO_FEATURE</primary></indexterm>
<programlisting language="C">#define PANGO_OT_NO_FEATURE			((guint) 0xFFFF)
</programlisting>
<warning><para><literal>PANGO_OT_NO_FEATURE</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>This is used as a feature index that represent no feature, that is, should be
skipped.  It may be returned as feature index by <link linkend="pango-ot-info-find-feature"><function>pango_ot_info_find_feature()</function></link>
if the feature is not found, and <link linkend="pango-ot-ruleset-add-feature"><function>pango_ot_ruleset_add_feature()</function></link> function
automatically skips this value, so no special handling is required by the user.</para>
<para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="PANGO-OT-NO-SCRIPT:CAPS" role="macro" condition="deprecated:|since:1.18">
<title>PANGO_OT_NO_SCRIPT</title>
<indexterm zone="PANGO-OT-NO-SCRIPT:CAPS" role="deprecated"><primary>PANGO_OT_NO_SCRIPT</primary></indexterm><indexterm zone="PANGO-OT-NO-SCRIPT:CAPS" role="1.18"><primary>PANGO_OT_NO_SCRIPT</primary></indexterm>
<programlisting language="C">#define PANGO_OT_NO_SCRIPT			((guint) 0xFFFF)
</programlisting>
<warning><para><literal>PANGO_OT_NO_SCRIPT</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>This is used as a script index that represent no script, that is, when the
requested script was not found, and a default ('DFLT') script was not found
either.  It may be returned as script index by <link linkend="pango-ot-info-find-script"><function>pango_ot_info_find_script()</function></link>
if the script or a default script are not found, all other functions
taking a script index essentially return if the input script index is
this value, so no special handling is required by the user.</para>
<para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="PANGO-OT-DEFAULT-LANGUAGE:CAPS" role="macro" condition="deprecated:|since:1.16">
<title>PANGO_OT_DEFAULT_LANGUAGE</title>
<indexterm zone="PANGO-OT-DEFAULT-LANGUAGE:CAPS" role="deprecated"><primary>PANGO_OT_DEFAULT_LANGUAGE</primary></indexterm><indexterm zone="PANGO-OT-DEFAULT-LANGUAGE:CAPS" role="1.16"><primary>PANGO_OT_DEFAULT_LANGUAGE</primary></indexterm>
<programlisting language="C">#define PANGO_OT_DEFAULT_LANGUAGE		((guint) 0xFFFF)
</programlisting>
<warning><para><literal>PANGO_OT_DEFAULT_LANGUAGE</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>This is used as the language index in <link linkend="pango-ot-info-find-feature"><function>pango_ot_info_find_feature()</function></link> when
the default language system of the script is desired.</para>
<para>It is also returned by <link linkend="pango-ot-info-find-language"><function>pango_ot_info_find_language()</function></link> if the requested language
is not found, or the requested language tag was PANGO_OT_TAG_DEFAULT_LANGUAGE.
The end result is that one can always call <link linkend="pango-ot-tag-from-language"><function>pango_ot_tag_from_language()</function></link>
followed by <link linkend="pango-ot-info-find-language"><function>pango_ot_info_find_language()</function></link> and pass the result to
<link linkend="pango-ot-info-find-feature"><function>pango_ot_info_find_feature()</function></link> without having to worry about falling back to
default language system explicitly.</para>
<para role="since">Since: <link linkend="api-index-1.16">1.16</link></para></refsect2>
<refsect2 id="PANGO-OT-TAG-DEFAULT-LANGUAGE:CAPS" role="macro" condition="deprecated:|since:1.18">
<title>PANGO_OT_TAG_DEFAULT_LANGUAGE</title>
<indexterm zone="PANGO-OT-TAG-DEFAULT-LANGUAGE:CAPS" role="deprecated"><primary>PANGO_OT_TAG_DEFAULT_LANGUAGE</primary></indexterm><indexterm zone="PANGO-OT-TAG-DEFAULT-LANGUAGE:CAPS" role="1.18"><primary>PANGO_OT_TAG_DEFAULT_LANGUAGE</primary></indexterm>
<programlisting language="C">#define PANGO_OT_TAG_DEFAULT_LANGUAGE		PANGO_OT_TAG_MAKE ('d', 'f', 'l', 't')
</programlisting>
<warning><para><literal>PANGO_OT_TAG_DEFAULT_LANGUAGE</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>This is a <link linkend="PangoOTTag"><type>PangoOTTag</type></link> representing a special language tag 'dflt'.  It is
returned as language tag by <link linkend="pango-ot-tag-from-language"><function>pango_ot_tag_from_language()</function></link> if the requested
language is not found.  It is safe to pass this value to
<link linkend="pango-ot-info-find-language"><function>pango_ot_info_find_language()</function></link> as that function falls back to returning default
language-system if the requested language tag is not found.</para>
<para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>
<refsect2 id="PANGO-OT-TAG-DEFAULT-SCRIPT:CAPS" role="macro" condition="deprecated:|since:1.18">
<title>PANGO_OT_TAG_DEFAULT_SCRIPT</title>
<indexterm zone="PANGO-OT-TAG-DEFAULT-SCRIPT:CAPS" role="deprecated"><primary>PANGO_OT_TAG_DEFAULT_SCRIPT</primary></indexterm><indexterm zone="PANGO-OT-TAG-DEFAULT-SCRIPT:CAPS" role="1.18"><primary>PANGO_OT_TAG_DEFAULT_SCRIPT</primary></indexterm>
<programlisting language="C">#define PANGO_OT_TAG_DEFAULT_SCRIPT		PANGO_OT_TAG_MAKE ('D', 'F', 'L', 'T')
</programlisting>
<warning><para><literal>PANGO_OT_TAG_DEFAULT_SCRIPT</literal> is deprecated and should not be used in newly-written code.</para></warning>
<para>This is a <link linkend="PangoOTTag"><type>PangoOTTag</type></link> representing the special script tag 'DFLT'.  It is
returned as script tag by <link linkend="pango-ot-tag-from-script"><function>pango_ot_tag_from_script()</function></link> if the requested script
is not found.</para>
<para role="since">Since: <link linkend="api-index-1.18">1.18</link></para></refsect2>

</refsect1>

</refentry>
