<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Typedefs and Constants</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><meta name="generator" content="GTK-Doc V1.1 (XML mode)"><style type="text/css"> .synopsis, .classsynopsis { background: #eeeeee; border: solid 1px #aaaaaa; padding: 0.5em; } .programlisting { background: #eeeeff; border: solid 1px #aaaaff; padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .navigation { background: #ffeeee; border: solid 1px #ffaaaa; margin-top: 0.5em; margin-bottom: 0.5em; } .navigation a { color: #770000; } .navigation a:visited { color: #550000; } .navigation .title { font-size: 200%; } </style><link rel="home" href="index.html" title="Enca Library Reference Manual"><link rel="up" href="ch01.html" title="Enca Library API"><link rel="previous" href="libenca-Analyser.html" title="Analyser"><link rel="next" href="libenca-Charsets-and-Surfaces.html" title="Charsets and Surfaces"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libenca-Analyser.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Enca Library Reference Manual</th><td><a accesskey="n" href="libenca-Charsets-and-Surfaces.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="libenca-Typedefs-and-Constants"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><span class="refentrytitle">Typedefs and Constants</span></h2><p>Typedefs and Constants — Enca library typedefs, enums and constants.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis"> struct <a href="libenca-Typedefs-and-Constants.html#EncaEncoding">EncaEncoding</a>; #define <a href="libenca-Typedefs-and-Constants.html#ENCA-CS-UNKNOWN-CAPS">ENCA_CS_UNKNOWN</a> enum <a href="libenca-Typedefs-and-Constants.html#EncaSurface">EncaSurface</a>; enum <a href="libenca-Typedefs-and-Constants.html#EncaCharsetFlags">EncaCharsetFlags</a>; enum <a href="libenca-Typedefs-and-Constants.html#EncaNameStyle">EncaNameStyle</a>; enum <a href="libenca-Typedefs-and-Constants.html#EncaErrno">EncaErrno</a>; #define <a href="libenca-Typedefs-and-Constants.html#ENCA-NOT-A-CHAR-CAPS">ENCA_NOT_A_CHAR</a> </pre></div><div class="refsect1" lang="en"><h2>Description</h2><p> </p></div><div class="refsect1" lang="en"><h2>Details</h2><div class="refsect2" lang="en"><h3><a name="EncaEncoding"></a>struct EncaEncoding</h3><pre class="programlisting">struct EncaEncoding { int charset; EncaSurface surface; }; </pre><p> Encoding, i.e. charset and surface. </p><p> This is what <a href="libenca-Analyser.html#enca-analyse">enca_analyse</a>() and <a href="libenca-Analyser.html#enca-analyse-const">enca_analyse_const</a>() return. </p><p> The <i class="parameter"><tt>charset</tt></i> field is an opaque numerical charset identifier, which has no meaning outside Enca library. You will probably want to use it only as <a href="libenca-Charsets-and-Surfaces.html#enca-charset-name">enca_charset_name</a>() argument. It is only guaranteed not to change meaning during program execution time; change of its interpretation (e.g. due to addition of new charsets) is not considered API change. </p><p> The <i class="parameter"><tt>surface</tt></i> field is a combination of <a href="libenca-Typedefs-and-Constants.html#EncaSurface">EncaSurface</a> flags. You may want to ignore it completely; you should use <a href="libenca-Analyser.html#enca-set-interpreted-surfaces">enca_set_interpreted_surfaces</a>() to disable weird surfaces then.</p><p> </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term">int <i class="structfield"><tt>charset</tt></i></span></td><td> Numeric charset identifier. </td></tr><tr><td><span class="term"><a href="libenca-Typedefs-and-Constants.html#EncaSurface">EncaSurface</a> <i class="structfield"><tt>surface</tt></i></span></td><td> Surface flags. </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="ENCA-CS-UNKNOWN-CAPS"></a>ENCA_CS_UNKNOWN</h3><pre class="programlisting">#define ENCA_CS_UNKNOWN (-1) </pre><p> Unknown character set id. </p><p> Use <a href="libenca-Charsets-and-Surfaces.html#enca-charset-is-known">enca_charset_is_known</a>() to check for unknown charset instead of direct comparsion.</p><p> </p></div><hr><div class="refsect2" lang="en"><h3><a name="EncaSurface"></a>enum EncaSurface</h3><pre class="programlisting">typedef enum { /*< flags >*/ ENCA_SURFACE_EOL_CR = 1 << 0, ENCA_SURFACE_EOL_LF = 1 << 1, ENCA_SURFACE_EOL_CRLF = 1 << 2, ENCA_SURFACE_EOL_MIX = 1 << 3, ENCA_SURFACE_EOL_BIN = 1 << 4, ENCA_SURFACE_MASK_EOL = (ENCA_SURFACE_EOL_CR | ENCA_SURFACE_EOL_LF | ENCA_SURFACE_EOL_CRLF | ENCA_SURFACE_EOL_MIX | ENCA_SURFACE_EOL_BIN), ENCA_SURFACE_PERM_21 = 1 << 5, ENCA_SURFACE_PERM_4321 = 1 << 6, ENCA_SURFACE_PERM_MIX = 1 << 7, ENCA_SURFACE_MASK_PERM = (ENCA_SURFACE_PERM_21 | ENCA_SURFACE_PERM_4321 | ENCA_SURFACE_PERM_MIX), ENCA_SURFACE_QP = 1 << 8, ENCA_SURFACE_REMOVE = 1 << 13, ENCA_SURFACE_UNKNOWN = 1 << 14, ENCA_SURFACE_MASK_ALL = (ENCA_SURFACE_MASK_EOL | ENCA_SURFACE_MASK_PERM | ENCA_SURFACE_QP | ENCA_SURFACE_REMOVE) } EncaSurface; </pre><p> Surface flags.</p><p> </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_EOL_CR</tt></span></td><td> End-of-lines are represented with CR's. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_EOL_LF</tt></span></td><td> End-of-lines are represented with LF's. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_EOL_CRLF</tt></span></td><td> End-of-lines are represented with CRLF's. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_EOL_MIX</tt></span></td><td> Several end-of-line types, mixed. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_EOL_BIN</tt></span></td><td> End-of-line concept not applicable (binary data). </td></tr><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_MASK_EOL</tt></span></td><td> Mask for end-of-line surfaces. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_PERM_21</tt></span></td><td> Odd and even bytes swapped. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_PERM_4321</tt></span></td><td> Reversed byte sequence in 4byte words. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_PERM_MIX</tt></span></td><td> Chunks with both endianess, concatenated. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_MASK_PERM</tt></span></td><td> Mask for permutation surfaces. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_QP</tt></span></td><td> Quoted printables. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_REMOVE</tt></span></td><td> Recode `remove' surface. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_UNKNOWN</tt></span></td><td> Unknown surface. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_SURFACE_MASK_ALL</tt></span></td><td> Mask for all bits, withnout ENCA_SURFACE_UNKNOWN. </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="EncaCharsetFlags"></a>enum EncaCharsetFlags</h3><pre class="programlisting">typedef enum { /*< flags >*/ ENCA_CHARSET_7BIT = 1 << 0, ENCA_CHARSET_8BIT = 1 << 1, ENCA_CHARSET_16BIT = 1 << 2, ENCA_CHARSET_32BIT = 1 << 3, ENCA_CHARSET_FIXED = 1 << 4, ENCA_CHARSET_VARIABLE = 1 << 5, ENCA_CHARSET_BINARY = 1 << 6, ENCA_CHARSET_REGULAR = 1 << 7, ENCA_CHARSET_MULTIBYTE = 1 << 8 } EncaCharsetFlags; </pre><p> Charset properties. </p><p> Flags <tt class="literal">ENCA_CHARSET_7BIT</tt>, <tt class="literal">ENCA_CHARSET_8BIT</tt>, <tt class="literal">ENCA_CHARSET_16BIT</tt>, <tt class="literal">ENCA_CHARSET_32BIT</tt> tell how many bits a `fundamental piece' consists of. This is different from bits per character; r.g. UTF-8 consists of 8bit pieces (bytes), but character can be composed from 1 to 6 of them.</p><p> </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><tt class="literal">ENCA_CHARSET_7BIT</tt></span></td><td> Characters are represented with 7bit characters. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_CHARSET_8BIT</tt></span></td><td> Characters are represented with bytes. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_CHARSET_16BIT</tt></span></td><td> Characters are represented with 2byte words. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_CHARSET_32BIT</tt></span></td><td> Characters are represented with 4byte words. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_CHARSET_FIXED</tt></span></td><td> One characters consists of one fundamental piece. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_CHARSET_VARIABLE</tt></span></td><td> One character consists of variable number of fundamental pieces. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_CHARSET_BINARY</tt></span></td><td> Charset is binary from ASCII viewpoint. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_CHARSET_REGULAR</tt></span></td><td> Language dependent (8bit) charset. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_CHARSET_MULTIBYTE</tt></span></td><td> Multibyte charset. </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="EncaNameStyle"></a>enum EncaNameStyle</h3><pre class="programlisting">typedef enum { ENCA_NAME_STYLE_ENCA, ENCA_NAME_STYLE_RFC1345, ENCA_NAME_STYLE_CSTOCS, ENCA_NAME_STYLE_ICONV, ENCA_NAME_STYLE_HUMAN } EncaNameStyle; </pre><p> Charset naming styles and conventions.</p><p> </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><tt class="literal">ENCA_NAME_STYLE_ENCA</tt></span></td><td> Default, implicit charset name in Enca. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_NAME_STYLE_RFC1345</tt></span></td><td> RFC 1345 charset name. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_NAME_STYLE_CSTOCS</tt></span></td><td> Cstocs charset name. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_NAME_STYLE_ICONV</tt></span></td><td> Iconv charset name. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_NAME_STYLE_HUMAN</tt></span></td><td> Human comprehensible description. </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="EncaErrno"></a>enum EncaErrno</h3><pre class="programlisting">typedef enum { ENCA_EOK = 0, ENCA_EINVALUE, ENCA_EEMPTY, ENCA_EFILTERED, ENCA_ENOCS8, ENCA_ESIGNIF, ENCA_EWINNER, ENCA_EGARBAGE } EncaErrno; </pre><p> Error codes.</p><p> </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><tt class="literal">ENCA_EOK</tt></span></td><td> OK. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_EINVALUE</tt></span></td><td> Invalid value (usually of an option). </td></tr><tr><td><span class="term"><tt class="literal">ENCA_EEMPTY</tt></span></td><td> Sample is empty. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_EFILTERED</tt></span></td><td> After filtering, (almost) nothing remained. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_ENOCS8</tt></span></td><td> Mulitibyte tests failed and language contains no 8bit charsets. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_ESIGNIF</tt></span></td><td> Too few significant characters. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_EWINNER</tt></span></td><td> No clear winner. </td></tr><tr><td><span class="term"><tt class="literal">ENCA_EGARBAGE</tt></span></td><td> Sample is garbage. </td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><h3><a name="ENCA-NOT-A-CHAR-CAPS"></a>ENCA_NOT_A_CHAR</h3><pre class="programlisting">#define ENCA_NOT_A_CHAR 0xffff </pre><p> Not-a-character in unicode tables.</p><p> </p></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="libenca-Analyser.html"><b><< Analyser</b></a></td><td align="right"><a accesskey="n" href="libenca-Charsets-and-Surfaces.html"><b>Charsets and Surfaces >></b></a></td></tr></table></body></html>