<refentry id="GMimeFilterYenc">
<refmeta>
<refentrytitle role="top_of_page" id="GMimeFilterYenc.top_of_page">GMimeFilterYenc</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>
  GMIME Library
</refmiscinfo>
</refmeta>
<refnamediv>
<refname>GMimeFilterYenc</refname>
<refpurpose>yEncode or yDecode</refpurpose>
</refnamediv>

<refsynopsisdiv id="GMimeFilterYenc.synopsis" role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>                    <link linkend="GMimeFilterYenc-struct">GMimeFilterYenc</link>;
<link linkend="GMimeFilter"><returnvalue>GMimeFilter</returnvalue></link> *       <link linkend="g-mime-filter-yenc-new">g_mime_filter_yenc_new</link>              (<parameter><link linkend="gboolean"><type>gboolean</type></link> encode</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="g-mime-filter-yenc-set-state">g_mime_filter_yenc_set_state</link>        (<parameter><link linkend="GMimeFilterYenc"><type>GMimeFilterYenc</type></link> *yenc</parameter>,
                                                         <parameter><link linkend="int"><type>int</type></link> state</parameter>);
<link linkend="void"><returnvalue>void</returnvalue></link>                <link linkend="g-mime-filter-yenc-set-crc">g_mime_filter_yenc_set_crc</link>          (<parameter><link linkend="GMimeFilterYenc"><type>GMimeFilterYenc</type></link> *yenc</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> crc</parameter>);
<link linkend="guint32"><returnvalue>guint32</returnvalue></link>             <link linkend="g-mime-filter-yenc-get-crc">g_mime_filter_yenc_get_crc</link>          (<parameter><link linkend="GMimeFilterYenc"><type>GMimeFilterYenc</type></link> *yenc</parameter>);
<link linkend="guint32"><returnvalue>guint32</returnvalue></link>             <link linkend="g-mime-filter-yenc-get-pcrc">g_mime_filter_yenc_get_pcrc</link>         (<parameter><link linkend="GMimeFilterYenc"><type>GMimeFilterYenc</type></link> *yenc</parameter>);

#define             <link linkend="GMIME-YENCODE-CRC-INIT:CAPS">GMIME_YENCODE_CRC_INIT</link>
#define             <link linkend="GMIME-YENCODE-CRC-FINAL:CAPS">GMIME_YENCODE_CRC_FINAL</link>             (crc)
#define             <link linkend="GMIME-YENCODE-STATE-INIT:CAPS">GMIME_YENCODE_STATE_INIT</link>
#define             <link linkend="GMIME-YDECODE-STATE-INIT:CAPS">GMIME_YDECODE_STATE_INIT</link>
#define             <link linkend="GMIME-YDECODE-STATE-EOLN:CAPS">GMIME_YDECODE_STATE_EOLN</link>
#define             <link linkend="GMIME-YDECODE-STATE-ESCAPE:CAPS">GMIME_YDECODE_STATE_ESCAPE</link>
#define             <link linkend="GMIME-YDECODE-STATE-END:CAPS">GMIME_YDECODE_STATE_END</link>
#define             <link linkend="GMIME-YDECODE-STATE-BEGIN:CAPS">GMIME_YDECODE_STATE_BEGIN</link>
#define             <link linkend="GMIME-YDECODE-STATE-DECODE:CAPS">GMIME_YDECODE_STATE_DECODE</link>
#define             <link linkend="GMIME-YDECODE-STATE-PART:CAPS">GMIME_YDECODE_STATE_PART</link>
<link linkend="size-t"><returnvalue>size_t</returnvalue></link>              <link linkend="g-mime-ydecode-step">g_mime_ydecode_step</link>                 (<parameter>unsigned <link linkend="char"><type>char</type></link> *inbuf</parameter>,
                                                         <parameter><link linkend="size-t"><type>size_t</type></link> inlen</parameter>,
                                                         <parameter>unsigned <link linkend="char"><type>char</type></link> *outbuf</parameter>,
                                                         <parameter><link linkend="int"><type>int</type></link> *state</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> *pcrc</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> *crc</parameter>);
<link linkend="size-t"><returnvalue>size_t</returnvalue></link>              <link linkend="g-mime-yencode-step">g_mime_yencode_step</link>                 (<parameter>unsigned <link linkend="char"><type>char</type></link> *inbuf</parameter>,
                                                         <parameter><link linkend="size-t"><type>size_t</type></link> inlen</parameter>,
                                                         <parameter>unsigned <link linkend="char"><type>char</type></link> *outbuf</parameter>,
                                                         <parameter><link linkend="int"><type>int</type></link> *state</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> *pcrc</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> *crc</parameter>);
<link linkend="size-t"><returnvalue>size_t</returnvalue></link>              <link linkend="g-mime-yencode-close">g_mime_yencode_close</link>                (<parameter>unsigned <link linkend="char"><type>char</type></link> *inbuf</parameter>,
                                                         <parameter><link linkend="size-t"><type>size_t</type></link> inlen</parameter>,
                                                         <parameter>unsigned <link linkend="char"><type>char</type></link> *outbuf</parameter>,
                                                         <parameter><link linkend="int"><type>int</type></link> *state</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> *pcrc</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> *crc</parameter>);
</synopsis>
</refsynopsisdiv>
<refsect1 id="GMimeFilterYenc.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<synopsis>
  <link linkend="GObject">GObject</link>
   +----<link linkend="GMimeFilter">GMimeFilter</link>
         +----GMimeFilterYenc
</synopsis>
</refsect1>

<refsect1 id="GMimeFilterYenc.description" role="desc">
<title role="desc.title">Description</title>
<para>
A <link linkend="GMimeFilter"><type>GMimeFilter</type></link> used to encode or decode the Usenet yEncoding.
</para>
</refsect1>
<refsect1 id="GMimeFilterYenc.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="GMimeFilterYenc-struct" role="struct">
<title>GMimeFilterYenc</title>
<indexterm zone="GMimeFilterYenc-struct"><primary>GMimeFilterYenc</primary></indexterm>
<programlisting>typedef struct _GMimeFilterYenc GMimeFilterYenc;</programlisting>
<para>
A filter for yEncoding or yDecoding a stream.
</para><variablelist role="struct">
</variablelist></refsect2>
<refsect2 id="g-mime-filter-yenc-new" role="function">
<title>g_mime_filter_yenc_new ()</title>
<indexterm zone="g-mime-filter-yenc-new"><primary>g_mime_filter_yenc_new</primary></indexterm>
<programlisting><link linkend="GMimeFilter"><returnvalue>GMimeFilter</returnvalue></link> *       g_mime_filter_yenc_new              (<parameter><link linkend="gboolean"><type>gboolean</type></link> encode</parameter>);</programlisting>
<para>
Creates a new yEnc filter.
</para><variablelist role="params">
<varlistentry><term><parameter>encode</parameter>&#160;:</term>
<listitem><simpara>encode vs decode
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a new yEnc filter.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="g-mime-filter-yenc-set-state" role="function">
<title>g_mime_filter_yenc_set_state ()</title>
<indexterm zone="g-mime-filter-yenc-set-state"><primary>g_mime_filter_yenc_set_state</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                g_mime_filter_yenc_set_state        (<parameter><link linkend="GMimeFilterYenc"><type>GMimeFilterYenc</type></link> *yenc</parameter>,
                                                         <parameter><link linkend="int"><type>int</type></link> state</parameter>);</programlisting>
<para>
Sets the current state of the yencoder/ydecoder
</para><variablelist role="params">
<varlistentry><term><parameter>yenc</parameter>&#160;:</term>
<listitem><simpara>yEnc filter
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>state</parameter>&#160;:</term>
<listitem><simpara>encode/decode state
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="g-mime-filter-yenc-set-crc" role="function">
<title>g_mime_filter_yenc_set_crc ()</title>
<indexterm zone="g-mime-filter-yenc-set-crc"><primary>g_mime_filter_yenc_set_crc</primary></indexterm>
<programlisting><link linkend="void"><returnvalue>void</returnvalue></link>                g_mime_filter_yenc_set_crc          (<parameter><link linkend="GMimeFilterYenc"><type>GMimeFilterYenc</type></link> *yenc</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> crc</parameter>);</programlisting>
<para>
Sets the current crc32 value on the yEnc filter <parameter>yenc</parameter> to <parameter>crc</parameter>.
</para><variablelist role="params">
<varlistentry><term><parameter>yenc</parameter>&#160;:</term>
<listitem><simpara>yEnc filter
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>crc</parameter>&#160;:</term>
<listitem><simpara>crc32
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="g-mime-filter-yenc-get-crc" role="function">
<title>g_mime_filter_yenc_get_crc ()</title>
<indexterm zone="g-mime-filter-yenc-get-crc"><primary>g_mime_filter_yenc_get_crc</primary></indexterm>
<programlisting><link linkend="guint32"><returnvalue>guint32</returnvalue></link>             g_mime_filter_yenc_get_crc          (<parameter><link linkend="GMimeFilterYenc"><type>GMimeFilterYenc</type></link> *yenc</parameter>);</programlisting>
<para>
Get the computed crc or (guint32) -1 on fail.
</para><variablelist role="params">
<varlistentry><term><parameter>yenc</parameter>&#160;:</term>
<listitem><simpara>yEnc filter
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the computed crc or (guint32) -1 on fail.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="g-mime-filter-yenc-get-pcrc" role="function">
<title>g_mime_filter_yenc_get_pcrc ()</title>
<indexterm zone="g-mime-filter-yenc-get-pcrc"><primary>g_mime_filter_yenc_get_pcrc</primary></indexterm>
<programlisting><link linkend="guint32"><returnvalue>guint32</returnvalue></link>             g_mime_filter_yenc_get_pcrc         (<parameter><link linkend="GMimeFilterYenc"><type>GMimeFilterYenc</type></link> *yenc</parameter>);</programlisting>
<para>
Get the computed part crc or (guint32) -1 on fail.
</para><variablelist role="params">
<varlistentry><term><parameter>yenc</parameter>&#160;:</term>
<listitem><simpara>yEnc filter
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the computed part crc or (guint32) -1 on fail.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="GMIME-YENCODE-CRC-INIT:CAPS" role="macro">
<title>GMIME_YENCODE_CRC_INIT</title>
<indexterm zone="GMIME-YENCODE-CRC-INIT:CAPS"><primary>GMIME_YENCODE_CRC_INIT</primary></indexterm>
<programlisting>#define GMIME_YENCODE_CRC_INIT       (~0)
</programlisting>
<para>
Initial state for the crc and pcrc state variables.
</para></refsect2>
<refsect2 id="GMIME-YENCODE-CRC-FINAL:CAPS" role="macro">
<title>GMIME_YENCODE_CRC_FINAL()</title>
<indexterm zone="GMIME-YENCODE-CRC-FINAL:CAPS"><primary>GMIME_YENCODE_CRC_FINAL</primary></indexterm>
<programlisting>#define GMIME_YENCODE_CRC_FINAL(crc) (~crc)
</programlisting>
<para>
Gets the final crc value from <parameter>crc</parameter>.
</para><variablelist role="params">
<varlistentry><term><parameter>crc</parameter>&#160;:</term>
<listitem><simpara>crc or pcrc state variable
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="GMIME-YENCODE-STATE-INIT:CAPS" role="macro">
<title>GMIME_YENCODE_STATE_INIT</title>
<indexterm zone="GMIME-YENCODE-STATE-INIT:CAPS"><primary>GMIME_YENCODE_STATE_INIT</primary></indexterm>
<programlisting>#define GMIME_YENCODE_STATE_INIT     (0)
</programlisting>
<para>
Initial state for the <link linkend="g-mime-ydecode-step"><function>g_mime_ydecode_step()</function></link> function.
</para></refsect2>
<refsect2 id="GMIME-YDECODE-STATE-INIT:CAPS" role="macro">
<title>GMIME_YDECODE_STATE_INIT</title>
<indexterm zone="GMIME-YDECODE-STATE-INIT:CAPS"><primary>GMIME_YDECODE_STATE_INIT</primary></indexterm>
<programlisting>#define GMIME_YDECODE_STATE_INIT     (0)
</programlisting>
<para>
Initial state for the <link linkend="g-mime-ydecode-step"><function>g_mime_ydecode_step()</function></link> function.
</para></refsect2>
<refsect2 id="GMIME-YDECODE-STATE-EOLN:CAPS" role="macro">
<title>GMIME_YDECODE_STATE_EOLN</title>
<indexterm zone="GMIME-YDECODE-STATE-EOLN:CAPS"><primary>GMIME_YDECODE_STATE_EOLN</primary></indexterm>
<programlisting>#define GMIME_YDECODE_STATE_EOLN     (1 &lt;&lt; 8)
</programlisting>
<para>
State bit that denotes the yEnc filter has reached an end-of-line.
</para>
<para>
This state is for internal use only.
</para></refsect2>
<refsect2 id="GMIME-YDECODE-STATE-ESCAPE:CAPS" role="macro">
<title>GMIME_YDECODE_STATE_ESCAPE</title>
<indexterm zone="GMIME-YDECODE-STATE-ESCAPE:CAPS"><primary>GMIME_YDECODE_STATE_ESCAPE</primary></indexterm>
<programlisting>#define GMIME_YDECODE_STATE_ESCAPE   (1 &lt;&lt; 9)
</programlisting>
<para>
State bit that denotes the yEnc filter has reached an escape
sequence.
</para>
<para>
This state is for internal use only.
</para></refsect2>
<refsect2 id="GMIME-YDECODE-STATE-END:CAPS" role="macro">
<title>GMIME_YDECODE_STATE_END</title>
<indexterm zone="GMIME-YDECODE-STATE-END:CAPS"><primary>GMIME_YDECODE_STATE_END</primary></indexterm>
<programlisting>#define GMIME_YDECODE_STATE_END      (1 &lt;&lt; 15)
</programlisting>
<para>
State bit that denoates that <link linkend="g-mime-ydecode-step"><function>g_mime_ydecode_step()</function></link> has finished
decoding.
</para></refsect2>
<refsect2 id="GMIME-YDECODE-STATE-BEGIN:CAPS" role="macro">
<title>GMIME_YDECODE_STATE_BEGIN</title>
<indexterm zone="GMIME-YDECODE-STATE-BEGIN:CAPS"><primary>GMIME_YDECODE_STATE_BEGIN</primary></indexterm>
<programlisting>#define GMIME_YDECODE_STATE_BEGIN    (1 &lt;&lt; 12)
</programlisting>
<para>
State bit that denotes the yEnc filter has found the =ybegin line.
</para></refsect2>
<refsect2 id="GMIME-YDECODE-STATE-DECODE:CAPS" role="macro">
<title>GMIME_YDECODE_STATE_DECODE</title>
<indexterm zone="GMIME-YDECODE-STATE-DECODE:CAPS"><primary>GMIME_YDECODE_STATE_DECODE</primary></indexterm>
<programlisting>#define GMIME_YDECODE_STATE_DECODE   (1 &lt;&lt; 14)
</programlisting>
<para>
State bit that denotes yEnc filter has begun decoding the actual
yencoded content and will continue to do so until an =yend line is
found (or until there is nothing left to decode).
</para></refsect2>
<refsect2 id="GMIME-YDECODE-STATE-PART:CAPS" role="macro">
<title>GMIME_YDECODE_STATE_PART</title>
<indexterm zone="GMIME-YDECODE-STATE-PART:CAPS"><primary>GMIME_YDECODE_STATE_PART</primary></indexterm>
<programlisting>#define GMIME_YDECODE_STATE_PART     (1 &lt;&lt; 13)
</programlisting>
<para>
State bit that denotes the yEnc filter has found the =ypart
line. (Note: not all yencoded blocks have one)
</para></refsect2>
<refsect2 id="g-mime-ydecode-step" role="function">
<title>g_mime_ydecode_step ()</title>
<indexterm zone="g-mime-ydecode-step"><primary>g_mime_ydecode_step</primary></indexterm>
<programlisting><link linkend="size-t"><returnvalue>size_t</returnvalue></link>              g_mime_ydecode_step                 (<parameter>unsigned <link linkend="char"><type>char</type></link> *inbuf</parameter>,
                                                         <parameter><link linkend="size-t"><type>size_t</type></link> inlen</parameter>,
                                                         <parameter>unsigned <link linkend="char"><type>char</type></link> *outbuf</parameter>,
                                                         <parameter><link linkend="int"><type>int</type></link> *state</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> *pcrc</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> *crc</parameter>);</programlisting>
<para>
Performs a 'decode step' on a chunk of yEncoded data of length
<parameter>inlen</parameter> pointed to by <parameter>inbuf</parameter> and writes to <parameter>outbuf</parameter>. Assumes the =ybegin
and =ypart lines have already been stripped off.
</para>
<para>
To get the crc32 value of the part, use <link linkend="GMIME-YENCODE-CRC-FINAL:CAPS"><type>GMIME_YENCODE_CRC_FINAL</type></link>
(<parameter>pcrc</parameter>). If there are more parts, you should reuse <parameter>crc</parameter> without
re-initializing. Once all parts have been decoded, you may get the
combined crc32 value of all the parts using <link linkend="GMIME-YENCODE-CRC-FINAL:CAPS"><type>GMIME_YENCODE_CRC_FINAL</type></link>
(<parameter>crc</parameter>).
</para><variablelist role="params">
<varlistentry><term><parameter>inbuf</parameter>&#160;:</term>
<listitem><simpara>input buffer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>inlen</parameter>&#160;:</term>
<listitem><simpara>input buffer length
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>outbuf</parameter>&#160;:</term>
<listitem><simpara>output buffer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>state</parameter>&#160;:</term>
<listitem><simpara>ydecode state
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>pcrc</parameter>&#160;:</term>
<listitem><simpara>part crc state
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>crc</parameter>&#160;:</term>
<listitem><simpara>crc state
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the number of bytes decoded.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="g-mime-yencode-step" role="function">
<title>g_mime_yencode_step ()</title>
<indexterm zone="g-mime-yencode-step"><primary>g_mime_yencode_step</primary></indexterm>
<programlisting><link linkend="size-t"><returnvalue>size_t</returnvalue></link>              g_mime_yencode_step                 (<parameter>unsigned <link linkend="char"><type>char</type></link> *inbuf</parameter>,
                                                         <parameter><link linkend="size-t"><type>size_t</type></link> inlen</parameter>,
                                                         <parameter>unsigned <link linkend="char"><type>char</type></link> *outbuf</parameter>,
                                                         <parameter><link linkend="int"><type>int</type></link> *state</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> *pcrc</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> *crc</parameter>);</programlisting>
<para>
Performs an yEncode 'encode step' on a chunk of raw data of length
<parameter>inlen</parameter> pointed to by <parameter>inbuf</parameter> and writes to <parameter>outbuf</parameter>.
</para>
<para>
<parameter>state</parameter> should be initialized to <link linkend="GMIME-YENCODE-STATE-INIT:CAPS"><type>GMIME_YENCODE_STATE_INIT</type></link> before
beginning making the first call to this function. Subsequent calls
should reuse <parameter>state</parameter>.
</para>
<para>
Along the same lines, <parameter>pcrc</parameter> and <parameter>crc</parameter> should be initialized to
<link linkend="GMIME-YENCODE-CRC-INIT:CAPS"><type>GMIME_YENCODE_CRC_INIT</type></link> before using.
</para><variablelist role="params">
<varlistentry><term><parameter>inbuf</parameter>&#160;:</term>
<listitem><simpara>input buffer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>inlen</parameter>&#160;:</term>
<listitem><simpara>input buffer length
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>outbuf</parameter>&#160;:</term>
<listitem><simpara>output buffer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>state</parameter>&#160;:</term>
<listitem><simpara>yencode state
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>pcrc</parameter>&#160;:</term>
<listitem><simpara>part crc state
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>crc</parameter>&#160;:</term>
<listitem><simpara>crc state
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the number of bytes encoded.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="g-mime-yencode-close" role="function">
<title>g_mime_yencode_close ()</title>
<indexterm zone="g-mime-yencode-close"><primary>g_mime_yencode_close</primary></indexterm>
<programlisting><link linkend="size-t"><returnvalue>size_t</returnvalue></link>              g_mime_yencode_close                (<parameter>unsigned <link linkend="char"><type>char</type></link> *inbuf</parameter>,
                                                         <parameter><link linkend="size-t"><type>size_t</type></link> inlen</parameter>,
                                                         <parameter>unsigned <link linkend="char"><type>char</type></link> *outbuf</parameter>,
                                                         <parameter><link linkend="int"><type>int</type></link> *state</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> *pcrc</parameter>,
                                                         <parameter><link linkend="guint32"><type>guint32</type></link> *crc</parameter>);</programlisting>
<para>
Call this function when finished encoding data with
<link linkend="g-mime-yencode-step"><function>g_mime_yencode_step()</function></link> to flush off the remaining state.
</para>
<para>
<link linkend="GMIME-YENCODE-CRC-FINAL:CAPS"><type>GMIME_YENCODE_CRC_FINAL</type></link> (<parameter>pcrc</parameter>) will give you the crc32 of the
encoded "part". If there are more "parts" to encode, you should
re-use <parameter>crc</parameter> when encoding the next "parts" and then use
<link linkend="GMIME-YENCODE-CRC-FINAL:CAPS"><type>GMIME_YENCODE_CRC_FINAL</type></link> (<parameter>crc</parameter>) to get the combined crc32 value of
all the parts.
</para><variablelist role="params">
<varlistentry><term><parameter>inbuf</parameter>&#160;:</term>
<listitem><simpara>input buffer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>inlen</parameter>&#160;:</term>
<listitem><simpara>input buffer length
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>outbuf</parameter>&#160;:</term>
<listitem><simpara>output buffer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>state</parameter>&#160;:</term>
<listitem><simpara>yencode state
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>pcrc</parameter>&#160;:</term>
<listitem><simpara>part crc state
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>crc</parameter>&#160;:</term>
<listitem><simpara>crc state
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the number of bytes encoded.
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>
<refsect1 id="GMimeFilterYenc.see-also">
<title>See Also</title>
<link linkend="GMimeFilter"><type>GMimeFilter</type></link>
</refsect1>

</refentry>
