<?xml version="1.0"?> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> <refentry id="libidn-pr29"> <refmeta> <refentrytitle role="top_of_page">pr29</refentrytitle> <manvolnum>3</manvolnum> <refmiscinfo>LIBIDN Library</refmiscinfo> </refmeta> <refnamediv> <refname>pr29</refname> <refpurpose></refpurpose> <!--[<xref linkend="desc" endterm="desc.title"/>]--> </refnamediv> <refsynopsisdiv role="synopsis"> <title role="synopsis.title">Synopsis</title> <synopsis> enum <link linkend="Pr29-rc">Pr29_rc</link>; const <link linkend="char">char</link>* <link linkend="pr29-strerror">pr29_strerror</link> (<link linkend="Pr29-rc">Pr29_rc</link> rc); <link linkend="int">int</link> <link linkend="pr29-4">pr29_4</link> (const <link linkend="uint32-t">uint32_t</link> *in, <link linkend="size-t">size_t</link> len); <link linkend="int">int</link> <link linkend="pr29-4z">pr29_4z</link> (const <link linkend="uint32-t">uint32_t</link> *in); <link linkend="int">int</link> <link linkend="pr29-8z">pr29_8z</link> (const <link linkend="char">char</link> *in); </synopsis> </refsynopsisdiv> <refsect1 role="desc"> <title role="desc.title">Description</title> <para> </para> </refsect1> <refsect1 role="details"> <title role="details.title">Details</title> <refsect2> <title><anchor id="Pr29-rc" role="enum"/>enum Pr29_rc</title> <indexterm><primary>Pr29_rc</primary></indexterm><programlisting> typedef enum { PR29_SUCCESS = 0, PR29_PROBLEM = 1, /* String is a problem sequence. */ PR29_STRINGPREP_ERROR = 2 /* Charset conversion failed (p29_8*). */ } Pr29_rc; </programlisting> <para> Enumerated return codes for <link linkend="pr29-4"><function>pr29_4()</function></link>, <link linkend="pr29-4z"><function>pr29_4z()</function></link>, <link linkend="pr29-8z"><function>pr29_8z()</function></link>. The value 0 is guaranteed to always correspond to success.</para> <para> </para><variablelist role="enum"> <varlistentry> <term><anchor id="PR29-SUCCESS:CAPS" role="constant"/><literal>PR29_SUCCESS</literal></term> <listitem><simpara> Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. </simpara></listitem> </varlistentry> <varlistentry> <term><anchor id="PR29-PROBLEM:CAPS" role="constant"/><literal>PR29_PROBLEM</literal></term> <listitem><simpara> A problem sequence was encountered. </simpara></listitem> </varlistentry> <varlistentry> <term><anchor id="PR29-STRINGPREP-ERROR:CAPS" role="constant"/><literal>PR29_STRINGPREP_ERROR</literal></term> <listitem><simpara> The character set conversion failed (only for <link linkend="pr29-8"><function>pr29_8()</function></link> and <link linkend="pr29-8z"><function>pr29_8z()</function></link>). </simpara></listitem> </varlistentry> </variablelist></refsect2> <refsect2> <title><anchor id="pr29-strerror" role="function"/>pr29_strerror ()</title> <indexterm><primary>pr29_strerror</primary></indexterm><programlisting>const <link linkend="char">char</link>* pr29_strerror (<link linkend="Pr29-rc">Pr29_rc</link> rc);</programlisting> <para> Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. </para> <para> PR29_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. PR29_PROBLEM: A problem sequence was encountered. PR29_STRINGPREP_ERROR: The character set conversion failed (only for <link linkend="pr29-8"><function>pr29_8()</function></link> and <link linkend="pr29-8z"><function>pr29_8z()</function></link>).</para> <para> </para><variablelist role="params"> <varlistentry><term><parameter>rc</parameter> :</term> <listitem><simpara> an <link linkend="Pr29-rc"><type>Pr29_rc</type></link> return code. </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> Returns a pointer to a statically allocated string containing a description of the error with the return code <parameter>rc</parameter>. </simpara></listitem></varlistentry> </variablelist></refsect2> <refsect2> <title><anchor id="pr29-4" role="function"/>pr29_4 ()</title> <indexterm><primary>pr29_4</primary></indexterm><programlisting><link linkend="int">int</link> pr29_4 (const <link linkend="uint32-t">uint32_t</link> *in, <link linkend="size-t">size_t</link> len);</programlisting> <para> Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications.</para> <para> </para><variablelist role="params"> <varlistentry><term><parameter>in</parameter> :</term> <listitem><simpara> input array with unicode code points. </simpara></listitem></varlistentry> <varlistentry><term><parameter>len</parameter> :</term> <listitem><simpara> length of input array with unicode code points. </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> Returns the <link linkend="Pr29-rc"><type>Pr29_rc</type></link> value <link linkend="PR29-SUCCESS:CAPS"><literal>PR29_SUCCESS</literal></link> on success, and <link linkend="PR29-PROBLEM:CAPS"><literal>PR29_PROBLEM</literal></link> if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). </simpara></listitem></varlistentry> </variablelist></refsect2> <refsect2> <title><anchor id="pr29-4z" role="function"/>pr29_4z ()</title> <indexterm><primary>pr29_4z</primary></indexterm><programlisting><link linkend="int">int</link> pr29_4z (const <link linkend="uint32-t">uint32_t</link> *in);</programlisting> <para> Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications.</para> <para> </para><variablelist role="params"> <varlistentry><term><parameter>in</parameter> :</term> <listitem><simpara> zero terminated array of Unicode code points. </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> Returns the <link linkend="Pr29-rc"><type>Pr29_rc</type></link> value <link linkend="PR29-SUCCESS:CAPS"><literal>PR29_SUCCESS</literal></link> on success, and <link linkend="PR29-PROBLEM:CAPS"><literal>PR29_PROBLEM</literal></link> if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). </simpara></listitem></varlistentry> </variablelist></refsect2> <refsect2> <title><anchor id="pr29-8z" role="function"/>pr29_8z ()</title> <indexterm><primary>pr29_8z</primary></indexterm><programlisting><link linkend="int">int</link> pr29_8z (const <link linkend="char">char</link> *in);</programlisting> <para> Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications.</para> <para> </para><variablelist role="params"> <varlistentry><term><parameter>in</parameter> :</term> <listitem><simpara> zero terminated input UTF-8 string. </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> Returns the <link linkend="Pr29-rc"><type>Pr29_rc</type></link> value <link linkend="PR29-SUCCESS:CAPS"><literal>PR29_SUCCESS</literal></link> on success, and <link linkend="PR29-PROBLEM:CAPS"><literal>PR29_PROBLEM</literal></link> if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations), or <link linkend="PR29-STRINGPREP-ERROR:CAPS"><literal>PR29_STRINGPREP_ERROR</literal></link> if there was a problem converting the string from UTF-8 to UCS-4. </simpara></listitem></varlistentry> </variablelist></refsect2> </refsect1> </refentry>