Initialize the gmime for upstream
[platform/upstream/gmime.git] / docs / reference / html / gmime-gmime-encodings.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>gmime-encodings</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GMime 2.6 Reference Manual">
8 <link rel="up" href="core.html" title="Part III. GMime Core Reference">
9 <link rel="prev" href="gmime-gmime-iconv-utils.html" title="gmime-iconv-utils">
10 <link rel="next" href="gmime-gmime-utils.html" title="gmime-utils">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="gmime-gmime-iconv-utils.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="core.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GMime 2.6 Reference Manual</th>
21 <td><a accesskey="n" href="gmime-gmime-utils.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#gmime-gmime-encodings.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#gmime-gmime-encodings.description" class="shortcut">Description</a>
27 </td></tr>
28 </table>
29 <div class="refentry">
30 <a name="gmime-gmime-encodings"></a><div class="titlepage"></div>
31 <div class="refnamediv"><table width="100%"><tr>
32 <td valign="top">
33 <h2><span class="refentrytitle"><a name="gmime-gmime-encodings.top_of_page"></a>gmime-encodings</span></h2>
34 <p>gmime-encodings — MIME encoding functions</p>
35 </td>
36 <td valign="top" align="right"></td>
37 </tr></table></div>
38 <div class="refsynopsisdiv">
39 <a name="gmime-gmime-encodings.synopsis"></a><h2>Synopsis</h2>
40 <pre class="synopsis">enum                <a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding">GMimeContentEncoding</a>;
41 <a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="returnvalue">GMimeContentEncoding</span></a> <a class="link" href="gmime-gmime-encodings.html#g-mime-content-encoding-from-string" title="g_mime_content_encoding_from_string ()">g_mime_content_encoding_from_string</a>
42                                                         (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>);
43 const <span class="returnvalue">char</span> *        <a class="link" href="gmime-gmime-encodings.html#g-mime-content-encoding-to-string" title="g_mime_content_encoding_to_string ()">g_mime_content_encoding_to_string</a>   (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="type">GMimeContentEncoding</span></a> encoding</code></em>);
44 enum                <a class="link" href="gmime-gmime-encodings.html#GMimeEncodingConstraint" title="enum GMimeEncodingConstraint">GMimeEncodingConstraint</a>;
45                     <a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding">GMimeEncoding</a>;
46 <span class="returnvalue">void</span>                <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-init-encode" title="g_mime_encoding_init_encode ()">g_mime_encoding_init_encode</a>         (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> *state</code></em>,
47                                                          <em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="type">GMimeContentEncoding</span></a> encoding</code></em>);
48 <span class="returnvalue">void</span>                <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-init-decode" title="g_mime_encoding_init_decode ()">g_mime_encoding_init_decode</a>         (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> *state</code></em>,
49                                                          <em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="type">GMimeContentEncoding</span></a> encoding</code></em>);
50 <span class="returnvalue">void</span>                <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-reset" title="g_mime_encoding_reset ()">g_mime_encoding_reset</a>               (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> *state</code></em>);
51 <span class="returnvalue">size_t</span>              <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-outlen" title="g_mime_encoding_outlen ()">g_mime_encoding_outlen</a>              (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> *state</code></em>,
52                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>);
53 <span class="returnvalue">size_t</span>              <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-step" title="g_mime_encoding_step ()">g_mime_encoding_step</a>                (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> *state</code></em>,
54                                                          <em class="parameter"><code>const <span class="type">char</span> *inbuf</code></em>,
55                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
56                                                          <em class="parameter"><code><span class="type">char</span> *outbuf</code></em>);
57 <span class="returnvalue">size_t</span>              <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-flush" title="g_mime_encoding_flush ()">g_mime_encoding_flush</a>               (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> *state</code></em>,
58                                                          <em class="parameter"><code>const <span class="type">char</span> *inbuf</code></em>,
59                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
60                                                          <em class="parameter"><code><span class="type">char</span> *outbuf</code></em>);
61 #define             <a class="link" href="gmime-gmime-encodings.html#GMIME-BASE64-ENCODE-LEN:CAPS" title="GMIME_BASE64_ENCODE_LEN()">GMIME_BASE64_ENCODE_LEN</a>             (x)
62 <span class="returnvalue">size_t</span>              <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-base64-decode-step" title="g_mime_encoding_base64_decode_step ()">g_mime_encoding_base64_decode_step</a>  (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
63                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
64                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
65                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
66                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);
67 <span class="returnvalue">size_t</span>              <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-base64-encode-step" title="g_mime_encoding_base64_encode_step ()">g_mime_encoding_base64_encode_step</a>  (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
68                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
69                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
70                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
71                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);
72 <span class="returnvalue">size_t</span>              <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-base64-encode-close" title="g_mime_encoding_base64_encode_close ()">g_mime_encoding_base64_encode_close</a> (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
73                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
74                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
75                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
76                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);
77 #define             <a class="link" href="gmime-gmime-encodings.html#GMIME-UUDECODE-STATE-INIT:CAPS" title="GMIME_UUDECODE_STATE_INIT">GMIME_UUDECODE_STATE_INIT</a>
78 #define             <a class="link" href="gmime-gmime-encodings.html#GMIME-UUDECODE-STATE-BEGIN:CAPS" title="GMIME_UUDECODE_STATE_BEGIN">GMIME_UUDECODE_STATE_BEGIN</a>
79 #define             <a class="link" href="gmime-gmime-encodings.html#GMIME-UUDECODE-STATE-END:CAPS" title="GMIME_UUDECODE_STATE_END">GMIME_UUDECODE_STATE_END</a>
80 #define             <a class="link" href="gmime-gmime-encodings.html#GMIME-UUENCODE-LEN:CAPS" title="GMIME_UUENCODE_LEN()">GMIME_UUENCODE_LEN</a>                  (x)
81 <span class="returnvalue">size_t</span>              <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-uudecode-step" title="g_mime_encoding_uudecode_step ()">g_mime_encoding_uudecode_step</a>       (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
82                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
83                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
84                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
85                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);
86 <span class="returnvalue">size_t</span>              <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-uuencode-step" title="g_mime_encoding_uuencode_step ()">g_mime_encoding_uuencode_step</a>       (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
87                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
88                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
89                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *uubuf</code></em>,
90                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
91                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);
92 <span class="returnvalue">size_t</span>              <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-uuencode-close" title="g_mime_encoding_uuencode_close ()">g_mime_encoding_uuencode_close</a>      (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
93                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
94                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
95                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *uubuf</code></em>,
96                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
97                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);
98 #define             <a class="link" href="gmime-gmime-encodings.html#GMIME-QP-ENCODE-LEN:CAPS" title="GMIME_QP_ENCODE_LEN()">GMIME_QP_ENCODE_LEN</a>                 (x)
99 <span class="returnvalue">size_t</span>              <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-quoted-decode-step" title="g_mime_encoding_quoted_decode_step ()">g_mime_encoding_quoted_decode_step</a>  (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
100                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
101                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
102                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
103                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);
104 <span class="returnvalue">size_t</span>              <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-quoted-encode-step" title="g_mime_encoding_quoted_encode_step ()">g_mime_encoding_quoted_encode_step</a>  (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
105                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
106                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
107                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
108                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);
109 <span class="returnvalue">size_t</span>              <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-quoted-encode-close" title="g_mime_encoding_quoted_encode_close ()">g_mime_encoding_quoted_encode_close</a> (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
110                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
111                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
112                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
113                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);
114 </pre>
115 </div>
116 <div class="refsect1">
117 <a name="gmime-gmime-encodings.description"></a><h2>Description</h2>
118 <p>
119 Utility functions to encode or decode MIME
120 Content-Transfer-Encodings.
121 </p>
122 </div>
123 <div class="refsect1">
124 <a name="gmime-gmime-encodings.details"></a><h2>Details</h2>
125 <div class="refsect2">
126 <a name="GMimeContentEncoding"></a><h3>enum GMimeContentEncoding</h3>
127 <pre class="programlisting">typedef enum {
128         GMIME_CONTENT_ENCODING_DEFAULT,
129         GMIME_CONTENT_ENCODING_7BIT,
130         GMIME_CONTENT_ENCODING_8BIT,
131         GMIME_CONTENT_ENCODING_BINARY,
132         GMIME_CONTENT_ENCODING_BASE64,
133         GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE,
134         GMIME_CONTENT_ENCODING_UUENCODE
135 } GMimeContentEncoding;
136 </pre>
137 <p>
138 A Content-Transfer-Encoding enumeration.
139 </p>
140 <div class="variablelist"><table border="0">
141 <col align="left" valign="top">
142 <tbody>
143 <tr>
144 <td><p><a name="GMIME-CONTENT-ENCODING-DEFAULT:CAPS"></a><span class="term"><code class="literal">GMIME_CONTENT_ENCODING_DEFAULT</code></span></p></td>
145 <td>Default transfer encoding.
146 </td>
147 </tr>
148 <tr>
149 <td><p><a name="GMIME-CONTENT-ENCODING-7BIT:CAPS"></a><span class="term"><code class="literal">GMIME_CONTENT_ENCODING_7BIT</code></span></p></td>
150 <td>7bit text transfer encoding.
151 </td>
152 </tr>
153 <tr>
154 <td><p><a name="GMIME-CONTENT-ENCODING-8BIT:CAPS"></a><span class="term"><code class="literal">GMIME_CONTENT_ENCODING_8BIT</code></span></p></td>
155 <td>8bit text transfer encoding.
156 </td>
157 </tr>
158 <tr>
159 <td><p><a name="GMIME-CONTENT-ENCODING-BINARY:CAPS"></a><span class="term"><code class="literal">GMIME_CONTENT_ENCODING_BINARY</code></span></p></td>
160 <td>Binary transfer encoding.
161 </td>
162 </tr>
163 <tr>
164 <td><p><a name="GMIME-CONTENT-ENCODING-BASE64:CAPS"></a><span class="term"><code class="literal">GMIME_CONTENT_ENCODING_BASE64</code></span></p></td>
165 <td>Base64 transfer encoding.
166 </td>
167 </tr>
168 <tr>
169 <td><p><a name="GMIME-CONTENT-ENCODING-QUOTEDPRINTABLE:CAPS"></a><span class="term"><code class="literal">GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE</code></span></p></td>
170 <td>Quoted-printable transfer encoding.
171 </td>
172 </tr>
173 <tr>
174 <td><p><a name="GMIME-CONTENT-ENCODING-UUENCODE:CAPS"></a><span class="term"><code class="literal">GMIME_CONTENT_ENCODING_UUENCODE</code></span></p></td>
175 <td>Uuencode transfer encoding.
176 </td>
177 </tr>
178 </tbody>
179 </table></div>
180 </div>
181 <hr>
182 <div class="refsect2">
183 <a name="g-mime-content-encoding-from-string"></a><h3>g_mime_content_encoding_from_string ()</h3>
184 <pre class="programlisting"><a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="returnvalue">GMimeContentEncoding</span></a> g_mime_content_encoding_from_string
185                                                         (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>);</pre>
186 <p>
187 Gets the appropriate <a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="type">GMimeContentEncoding</span></a> enumeration value based
188 on the input string.
189 </p>
190 <div class="variablelist"><table border="0">
191 <col align="left" valign="top">
192 <tbody>
193 <tr>
194 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
195 <td>a string representing a Content-Transfer-Encoding value</td>
196 </tr>
197 <tr>
198 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
199 <td>the <a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="type">GMimeContentEncoding</span></a> specified by <em class="parameter"><code>str</code></em> or
200 <a class="link" href="gmime-gmime-encodings.html#GMIME-CONTENT-ENCODING-DEFAULT:CAPS"><span class="type">GMIME_CONTENT_ENCODING_DEFAULT</span></a> on error.</td>
201 </tr>
202 </tbody>
203 </table></div>
204 </div>
205 <hr>
206 <div class="refsect2">
207 <a name="g-mime-content-encoding-to-string"></a><h3>g_mime_content_encoding_to_string ()</h3>
208 <pre class="programlisting">const <span class="returnvalue">char</span> *        g_mime_content_encoding_to_string   (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="type">GMimeContentEncoding</span></a> encoding</code></em>);</pre>
209 <p>
210 Gets the string value of the content encoding.
211 </p>
212 <div class="variablelist"><table border="0">
213 <col align="left" valign="top">
214 <tbody>
215 <tr>
216 <td><p><span class="term"><em class="parameter"><code>encoding</code></em> :</span></p></td>
217 <td>a <a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="type">GMimeContentEncoding</span></a>
218 </td>
219 </tr>
220 <tr>
221 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
222 <td>the encoding type as a string or <code class="literal">NULL</code> on error. Available
223 values for the encoding are: <a class="link" href="gmime-gmime-encodings.html#GMIME-CONTENT-ENCODING-DEFAULT:CAPS"><span class="type">GMIME_CONTENT_ENCODING_DEFAULT</span></a>,
224 <a class="link" href="gmime-gmime-encodings.html#GMIME-CONTENT-ENCODING-7BIT:CAPS"><span class="type">GMIME_CONTENT_ENCODING_7BIT</span></a>, <a class="link" href="gmime-gmime-encodings.html#GMIME-CONTENT-ENCODING-8BIT:CAPS"><span class="type">GMIME_CONTENT_ENCODING_8BIT</span></a>,
225 <a class="link" href="gmime-gmime-encodings.html#GMIME-CONTENT-ENCODING-BINARY:CAPS"><span class="type">GMIME_CONTENT_ENCODING_BINARY</span></a>, <a class="link" href="gmime-gmime-encodings.html#GMIME-CONTENT-ENCODING-BASE64:CAPS"><span class="type">GMIME_CONTENT_ENCODING_BASE64</span></a>,
226 <a class="link" href="gmime-gmime-encodings.html#GMIME-CONTENT-ENCODING-QUOTEDPRINTABLE:CAPS"><span class="type">GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE</span></a> and
227 <a class="link" href="gmime-gmime-encodings.html#GMIME-CONTENT-ENCODING-UUENCODE:CAPS"><span class="type">GMIME_CONTENT_ENCODING_UUENCODE</span></a>.</td>
228 </tr>
229 </tbody>
230 </table></div>
231 </div>
232 <hr>
233 <div class="refsect2">
234 <a name="GMimeEncodingConstraint"></a><h3>enum GMimeEncodingConstraint</h3>
235 <pre class="programlisting">typedef enum {
236         GMIME_ENCODING_CONSTRAINT_7BIT,
237         GMIME_ENCODING_CONSTRAINT_8BIT,
238         GMIME_ENCODING_CONSTRAINT_BINARY
239 } GMimeEncodingConstraint;
240 </pre>
241 <p>
242 Used with functions like <a class="link" href="GMimeFilterBest.html#g-mime-filter-best-encoding" title="g_mime_filter_best_encoding ()"><code class="function">g_mime_filter_best_encoding()</code></a> and
243 <a class="link" href="GMimeObject.html#g-mime-object-encode" title="g_mime_object_encode ()"><code class="function">g_mime_object_encode()</code></a> as the 'constraint' argument. These values
244 provide a means of letting the filter know what the encoding
245 constraints are for the stream.
246 </p>
247 <div class="variablelist"><table border="0">
248 <col align="left" valign="top">
249 <tbody>
250 <tr>
251 <td><p><a name="GMIME-ENCODING-CONSTRAINT-7BIT:CAPS"></a><span class="term"><code class="literal">GMIME_ENCODING_CONSTRAINT_7BIT</code></span></p></td>
252 <td>The stream data must fit within the 7bit ASCII range.
253 </td>
254 </tr>
255 <tr>
256 <td><p><a name="GMIME-ENCODING-CONSTRAINT-8BIT:CAPS"></a><span class="term"><code class="literal">GMIME_ENCODING_CONSTRAINT_8BIT</code></span></p></td>
257 <td>The stream data may have bytes with the high bit set, but no null bytes.
258 </td>
259 </tr>
260 <tr>
261 <td><p><a name="GMIME-ENCODING-CONSTRAINT-BINARY:CAPS"></a><span class="term"><code class="literal">GMIME_ENCODING_CONSTRAINT_BINARY</code></span></p></td>
262 <td>The stream may contain any binary data.
263 </td>
264 </tr>
265 </tbody>
266 </table></div>
267 </div>
268 <hr>
269 <div class="refsect2">
270 <a name="GMimeEncoding"></a><h3>GMimeEncoding</h3>
271 <pre class="programlisting">typedef struct {
272         GMimeContentEncoding encoding;
273         unsigned char uubuf[60];
274         gboolean encode;
275         guint32 save;
276         int state;
277 } GMimeEncoding;
278 </pre>
279 <p>
280 A context used for encoding or decoding data.
281 </p>
282 <div class="variablelist"><table border="0">
283 <col align="left" valign="top">
284 <tbody>
285 <tr>
286 <td><p><span class="term"><a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="type">GMimeContentEncoding</span></a> <em class="structfield"><code><a name="GMimeEncoding.encoding"></a>encoding</code></em>;</span></p></td>
287 <td>the type of encoding</td>
288 </tr>
289 <tr>
290 <td><p><span class="term">unsigned <span class="type">char</span> <em class="structfield"><code><a name="GMimeEncoding.uubuf"></a>uubuf</code></em>[60];</span></p></td>
291 <td>a temporary buffer needed when uuencoding data</td>
292 </tr>
293 <tr>
294 <td><p><span class="term"><span class="type">gboolean</span> <em class="structfield"><code><a name="GMimeEncoding.encode"></a>encode</code></em>;</span></p></td>
295 <td>
296 <code class="literal">TRUE</code> if encoding or <code class="literal">FALSE</code> if decoding</td>
297 </tr>
298 <tr>
299 <td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GMimeEncoding.save"></a>save</code></em>;</span></p></td>
300 <td>saved bytes from the previous step</td>
301 </tr>
302 <tr>
303 <td><p><span class="term"><span class="type">int</span> <em class="structfield"><code><a name="GMimeEncoding.state"></a>state</code></em>;</span></p></td>
304 <td>current encder/decoder state</td>
305 </tr>
306 </tbody>
307 </table></div>
308 </div>
309 <hr>
310 <div class="refsect2">
311 <a name="g-mime-encoding-init-encode"></a><h3>g_mime_encoding_init_encode ()</h3>
312 <pre class="programlisting"><span class="returnvalue">void</span>                g_mime_encoding_init_encode         (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> *state</code></em>,
313                                                          <em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="type">GMimeContentEncoding</span></a> encoding</code></em>);</pre>
314 <p>
315 Initializes a <a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> state machine for encoding to
316 <em class="parameter"><code>encoding</code></em>.
317 </p>
318 <div class="variablelist"><table border="0">
319 <col align="left" valign="top">
320 <tbody>
321 <tr>
322 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
323 <td>a <a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> to initialize</td>
324 </tr>
325 <tr>
326 <td><p><span class="term"><em class="parameter"><code>encoding</code></em> :</span></p></td>
327 <td>a <a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="type">GMimeContentEncoding</span></a> to use</td>
328 </tr>
329 </tbody>
330 </table></div>
331 </div>
332 <hr>
333 <div class="refsect2">
334 <a name="g-mime-encoding-init-decode"></a><h3>g_mime_encoding_init_decode ()</h3>
335 <pre class="programlisting"><span class="returnvalue">void</span>                g_mime_encoding_init_decode         (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> *state</code></em>,
336                                                          <em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="type">GMimeContentEncoding</span></a> encoding</code></em>);</pre>
337 <p>
338 Initializes a <a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> state machine for decoding from
339 <em class="parameter"><code>encoding</code></em>.
340 </p>
341 <div class="variablelist"><table border="0">
342 <col align="left" valign="top">
343 <tbody>
344 <tr>
345 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
346 <td>a <a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> to initialize</td>
347 </tr>
348 <tr>
349 <td><p><span class="term"><em class="parameter"><code>encoding</code></em> :</span></p></td>
350 <td>a <a class="link" href="gmime-gmime-encodings.html#GMimeContentEncoding" title="enum GMimeContentEncoding"><span class="type">GMimeContentEncoding</span></a> to use</td>
351 </tr>
352 </tbody>
353 </table></div>
354 </div>
355 <hr>
356 <div class="refsect2">
357 <a name="g-mime-encoding-reset"></a><h3>g_mime_encoding_reset ()</h3>
358 <pre class="programlisting"><span class="returnvalue">void</span>                g_mime_encoding_reset               (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> *state</code></em>);</pre>
359 <p>
360 Resets the state of the <a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a>.
361 </p>
362 <div class="variablelist"><table border="0">
363 <col align="left" valign="top">
364 <tbody><tr>
365 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
366 <td>a <a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> to reset</td>
367 </tr></tbody>
368 </table></div>
369 </div>
370 <hr>
371 <div class="refsect2">
372 <a name="g-mime-encoding-outlen"></a><h3>g_mime_encoding_outlen ()</h3>
373 <pre class="programlisting"><span class="returnvalue">size_t</span>              g_mime_encoding_outlen              (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> *state</code></em>,
374                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>);</pre>
375 <p>
376 Given the input length, <em class="parameter"><code>inlen</code></em>, calculate the needed output length
377 to perform an encoding or decoding step.
378 </p>
379 <div class="variablelist"><table border="0">
380 <col align="left" valign="top">
381 <tbody>
382 <tr>
383 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
384 <td>a <a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a>
385 </td>
386 </tr>
387 <tr>
388 <td><p><span class="term"><em class="parameter"><code>inlen</code></em> :</span></p></td>
389 <td>an input length</td>
390 </tr>
391 <tr>
392 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
393 <td>the maximum number of bytes needed to encode or decode a
394 buffer of <em class="parameter"><code>inlen</code></em> bytes.</td>
395 </tr>
396 </tbody>
397 </table></div>
398 </div>
399 <hr>
400 <div class="refsect2">
401 <a name="g-mime-encoding-step"></a><h3>g_mime_encoding_step ()</h3>
402 <pre class="programlisting"><span class="returnvalue">size_t</span>              g_mime_encoding_step                (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> *state</code></em>,
403                                                          <em class="parameter"><code>const <span class="type">char</span> *inbuf</code></em>,
404                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
405                                                          <em class="parameter"><code><span class="type">char</span> *outbuf</code></em>);</pre>
406 <p>
407 Incrementally encodes or decodes (depending on <em class="parameter"><code>state</code></em>) an input
408 stream by 'stepping' through a block of input at a time.
409 </p>
410 <p>
411 You should make sure <em class="parameter"><code>outbuf</code></em> is large enough by calling
412 <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-outlen" title="g_mime_encoding_outlen ()"><code class="function">g_mime_encoding_outlen()</code></a> to find out how large <em class="parameter"><code>outbuf</code></em> might need
413 to be.
414 </p>
415 <div class="variablelist"><table border="0">
416 <col align="left" valign="top">
417 <tbody>
418 <tr>
419 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
420 <td>a <a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a>
421 </td>
422 </tr>
423 <tr>
424 <td><p><span class="term"><em class="parameter"><code>inbuf</code></em> :</span></p></td>
425 <td>an input buffer to encode or decode</td>
426 </tr>
427 <tr>
428 <td><p><span class="term"><em class="parameter"><code>inlen</code></em> :</span></p></td>
429 <td>input buffer length</td>
430 </tr>
431 <tr>
432 <td><p><span class="term"><em class="parameter"><code>outbuf</code></em> :</span></p></td>
433 <td>an output buffer</td>
434 </tr>
435 <tr>
436 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
437 <td>the number of bytes written to <em class="parameter"><code>outbuf</code></em>.</td>
438 </tr>
439 </tbody>
440 </table></div>
441 </div>
442 <hr>
443 <div class="refsect2">
444 <a name="g-mime-encoding-flush"></a><h3>g_mime_encoding_flush ()</h3>
445 <pre class="programlisting"><span class="returnvalue">size_t</span>              g_mime_encoding_flush               (<em class="parameter"><code><a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a> *state</code></em>,
446                                                          <em class="parameter"><code>const <span class="type">char</span> *inbuf</code></em>,
447                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
448                                                          <em class="parameter"><code><span class="type">char</span> *outbuf</code></em>);</pre>
449 <p>
450 Completes the incremental encode or decode of the input stream (see
451 <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-step" title="g_mime_encoding_step ()"><code class="function">g_mime_encoding_step()</code></a> for details).
452 </p>
453 <div class="variablelist"><table border="0">
454 <col align="left" valign="top">
455 <tbody>
456 <tr>
457 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
458 <td>a <a class="link" href="gmime-gmime-encodings.html#GMimeEncoding" title="GMimeEncoding"><span class="type">GMimeEncoding</span></a>
459 </td>
460 </tr>
461 <tr>
462 <td><p><span class="term"><em class="parameter"><code>inbuf</code></em> :</span></p></td>
463 <td>an input buffer to encode or decode</td>
464 </tr>
465 <tr>
466 <td><p><span class="term"><em class="parameter"><code>inlen</code></em> :</span></p></td>
467 <td>input buffer length</td>
468 </tr>
469 <tr>
470 <td><p><span class="term"><em class="parameter"><code>outbuf</code></em> :</span></p></td>
471 <td>an output buffer</td>
472 </tr>
473 <tr>
474 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
475 <td>the number of bytes written to <em class="parameter"><code>outbuf</code></em>.</td>
476 </tr>
477 </tbody>
478 </table></div>
479 </div>
480 <hr>
481 <div class="refsect2">
482 <a name="GMIME-BASE64-ENCODE-LEN:CAPS"></a><h3>GMIME_BASE64_ENCODE_LEN()</h3>
483 <pre class="programlisting">#define GMIME_BASE64_ENCODE_LEN(x) ((size_t) (((((x) + 2) / 57) * 77) + 77))
484 </pre>
485 <p>
486 Calculates the maximum number of bytes needed to base64 encode the
487 full input buffer of length <em class="parameter"><code>x</code></em>.
488 </p>
489 <div class="variablelist"><table border="0">
490 <col align="left" valign="top">
491 <tbody>
492 <tr>
493 <td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
494 <td>Length of the input data to encode</td>
495 </tr>
496 <tr>
497 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
498 <td>the number of output bytes needed to base64 encode an input
499 buffer of size <em class="parameter"><code>x</code></em>.</td>
500 </tr>
501 </tbody>
502 </table></div>
503 </div>
504 <hr>
505 <div class="refsect2">
506 <a name="g-mime-encoding-base64-decode-step"></a><h3>g_mime_encoding_base64_decode_step ()</h3>
507 <pre class="programlisting"><span class="returnvalue">size_t</span>              g_mime_encoding_base64_decode_step  (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
508                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
509                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
510                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
511                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);</pre>
512 <p>
513 Decodes a chunk of base64 encoded data.
514 </p>
515 <div class="variablelist"><table border="0">
516 <col align="left" valign="top">
517 <tbody>
518 <tr>
519 <td><p><span class="term"><em class="parameter"><code>inbuf</code></em> :</span></p></td>
520 <td>input buffer</td>
521 </tr>
522 <tr>
523 <td><p><span class="term"><em class="parameter"><code>inlen</code></em> :</span></p></td>
524 <td>input buffer length</td>
525 </tr>
526 <tr>
527 <td><p><span class="term"><em class="parameter"><code>outbuf</code></em> :</span></p></td>
528 <td>output buffer</td>
529 </tr>
530 <tr>
531 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
532 <td>holds the number of bits that are stored in <em class="parameter"><code>save</code></em>
533 </td>
534 </tr>
535 <tr>
536 <td><p><span class="term"><em class="parameter"><code>save</code></em> :</span></p></td>
537 <td>leftover bits that have not yet been decoded</td>
538 </tr>
539 <tr>
540 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
541 <td>the number of bytes decoded (which have been dumped in
542 <em class="parameter"><code>outbuf</code></em>).</td>
543 </tr>
544 </tbody>
545 </table></div>
546 </div>
547 <hr>
548 <div class="refsect2">
549 <a name="g-mime-encoding-base64-encode-step"></a><h3>g_mime_encoding_base64_encode_step ()</h3>
550 <pre class="programlisting"><span class="returnvalue">size_t</span>              g_mime_encoding_base64_encode_step  (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
551                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
552                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
553                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
554                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);</pre>
555 <p>
556 Base64 encodes a chunk of data. Performs an 'encode step', only
557 encodes blocks of 3 characters to the output at a time, saves
558 left-over state in state and save (initialise to 0 on first
559 invocation).
560 </p>
561 <div class="variablelist"><table border="0">
562 <col align="left" valign="top">
563 <tbody>
564 <tr>
565 <td><p><span class="term"><em class="parameter"><code>inbuf</code></em> :</span></p></td>
566 <td>input buffer</td>
567 </tr>
568 <tr>
569 <td><p><span class="term"><em class="parameter"><code>inlen</code></em> :</span></p></td>
570 <td>input buffer length</td>
571 </tr>
572 <tr>
573 <td><p><span class="term"><em class="parameter"><code>outbuf</code></em> :</span></p></td>
574 <td>output buffer</td>
575 </tr>
576 <tr>
577 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
578 <td>holds the number of bits that are stored in <em class="parameter"><code>save</code></em>
579 </td>
580 </tr>
581 <tr>
582 <td><p><span class="term"><em class="parameter"><code>save</code></em> :</span></p></td>
583 <td>leftover bits that have not yet been encoded</td>
584 </tr>
585 <tr>
586 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
587 <td>the number of bytes encoded.</td>
588 </tr>
589 </tbody>
590 </table></div>
591 </div>
592 <hr>
593 <div class="refsect2">
594 <a name="g-mime-encoding-base64-encode-close"></a><h3>g_mime_encoding_base64_encode_close ()</h3>
595 <pre class="programlisting"><span class="returnvalue">size_t</span>              g_mime_encoding_base64_encode_close (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
596                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
597                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
598                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
599                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);</pre>
600 <p>
601 Base64 encodes the input stream to the output stream. Call this
602 when finished encoding data with <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-base64-encode-step" title="g_mime_encoding_base64_encode_step ()"><code class="function">g_mime_encoding_base64_encode_step()</code></a>
603 to flush off the last little bit.
604 </p>
605 <div class="variablelist"><table border="0">
606 <col align="left" valign="top">
607 <tbody>
608 <tr>
609 <td><p><span class="term"><em class="parameter"><code>inbuf</code></em> :</span></p></td>
610 <td>input buffer</td>
611 </tr>
612 <tr>
613 <td><p><span class="term"><em class="parameter"><code>inlen</code></em> :</span></p></td>
614 <td>input buffer length</td>
615 </tr>
616 <tr>
617 <td><p><span class="term"><em class="parameter"><code>outbuf</code></em> :</span></p></td>
618 <td>output buffer</td>
619 </tr>
620 <tr>
621 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
622 <td>holds the number of bits that are stored in <em class="parameter"><code>save</code></em>
623 </td>
624 </tr>
625 <tr>
626 <td><p><span class="term"><em class="parameter"><code>save</code></em> :</span></p></td>
627 <td>leftover bits that have not yet been encoded</td>
628 </tr>
629 <tr>
630 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
631 <td>the number of bytes encoded.</td>
632 </tr>
633 </tbody>
634 </table></div>
635 </div>
636 <hr>
637 <div class="refsect2">
638 <a name="GMIME-UUDECODE-STATE-INIT:CAPS"></a><h3>GMIME_UUDECODE_STATE_INIT</h3>
639 <pre class="programlisting">#define GMIME_UUDECODE_STATE_INIT   (0)
640 </pre>
641 <p>
642 Initial state for the <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-uudecode-step" title="g_mime_encoding_uudecode_step ()"><code class="function">g_mime_encoding_uudecode_step()</code></a> function.
643 </p>
644 </div>
645 <hr>
646 <div class="refsect2">
647 <a name="GMIME-UUDECODE-STATE-BEGIN:CAPS"></a><h3>GMIME_UUDECODE_STATE_BEGIN</h3>
648 <pre class="programlisting">#define GMIME_UUDECODE_STATE_BEGIN  (1 &lt;&lt; 16)
649 </pre>
650 <p>
651 State for the <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-uudecode-step" title="g_mime_encoding_uudecode_step ()"><code class="function">g_mime_encoding_uudecode_step()</code></a> function, denoting that
652 the 'begin' line has been found.
653 </p>
654 </div>
655 <hr>
656 <div class="refsect2">
657 <a name="GMIME-UUDECODE-STATE-END:CAPS"></a><h3>GMIME_UUDECODE_STATE_END</h3>
658 <pre class="programlisting">#define GMIME_UUDECODE_STATE_END    (1 &lt;&lt; 17)
659 </pre>
660 <p>
661 State for the <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-uudecode-step" title="g_mime_encoding_uudecode_step ()"><code class="function">g_mime_encoding_uudecode_step()</code></a> function, denoting that
662 the end of the UU encoded block has been found.
663 </p>
664 </div>
665 <hr>
666 <div class="refsect2">
667 <a name="GMIME-UUENCODE-LEN:CAPS"></a><h3>GMIME_UUENCODE_LEN()</h3>
668 <pre class="programlisting">#define GMIME_UUENCODE_LEN(x)      ((size_t) (((((x) + 2) / 45) * 62) + 64))
669 </pre>
670 <p>
671 Calculates the maximum number of bytes needed to uuencode the full
672 input buffer of length <em class="parameter"><code>x</code></em>.
673 </p>
674 <div class="variablelist"><table border="0">
675 <col align="left" valign="top">
676 <tbody>
677 <tr>
678 <td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
679 <td>Length of the input data to encode</td>
680 </tr>
681 <tr>
682 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
683 <td>the number of output bytes needed to uuencode an input
684 buffer of size <em class="parameter"><code>x</code></em>.</td>
685 </tr>
686 </tbody>
687 </table></div>
688 </div>
689 <hr>
690 <div class="refsect2">
691 <a name="g-mime-encoding-uudecode-step"></a><h3>g_mime_encoding_uudecode_step ()</h3>
692 <pre class="programlisting"><span class="returnvalue">size_t</span>              g_mime_encoding_uudecode_step       (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
693                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
694                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
695                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
696                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);</pre>
697 <p>
698 Uudecodes a chunk of data. Performs a 'decode step' on a chunk of
699 uuencoded data. Assumes the "begin mode filename" line has
700 been stripped off.
701 </p>
702 <div class="variablelist"><table border="0">
703 <col align="left" valign="top">
704 <tbody>
705 <tr>
706 <td><p><span class="term"><em class="parameter"><code>inbuf</code></em> :</span></p></td>
707 <td>input buffer</td>
708 </tr>
709 <tr>
710 <td><p><span class="term"><em class="parameter"><code>inlen</code></em> :</span></p></td>
711 <td>input buffer length</td>
712 </tr>
713 <tr>
714 <td><p><span class="term"><em class="parameter"><code>outbuf</code></em> :</span></p></td>
715 <td>output buffer</td>
716 </tr>
717 <tr>
718 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
719 <td>holds the number of bits that are stored in <em class="parameter"><code>save</code></em>
720 </td>
721 </tr>
722 <tr>
723 <td><p><span class="term"><em class="parameter"><code>save</code></em> :</span></p></td>
724 <td>leftover bits that have not yet been decoded</td>
725 </tr>
726 <tr>
727 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
728 <td>the number of bytes decoded.</td>
729 </tr>
730 </tbody>
731 </table></div>
732 </div>
733 <hr>
734 <div class="refsect2">
735 <a name="g-mime-encoding-uuencode-step"></a><h3>g_mime_encoding_uuencode_step ()</h3>
736 <pre class="programlisting"><span class="returnvalue">size_t</span>              g_mime_encoding_uuencode_step       (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
737                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
738                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
739                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *uubuf</code></em>,
740                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
741                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);</pre>
742 <p>
743 Uuencodes a chunk of data. Performs an 'encode step', only encodes
744 blocks of 45 characters to the output at a time, saves left-over
745 state in <em class="parameter"><code>uubuf</code></em>, <em class="parameter"><code>state</code></em> and <em class="parameter"><code>save</code></em> (initialize to 0 on first
746 invocation).
747 </p>
748 <div class="variablelist"><table border="0">
749 <col align="left" valign="top">
750 <tbody>
751 <tr>
752 <td><p><span class="term"><em class="parameter"><code>inbuf</code></em> :</span></p></td>
753 <td>input buffer</td>
754 </tr>
755 <tr>
756 <td><p><span class="term"><em class="parameter"><code>inlen</code></em> :</span></p></td>
757 <td>input buffer length</td>
758 </tr>
759 <tr>
760 <td><p><span class="term"><em class="parameter"><code>outbuf</code></em> :</span></p></td>
761 <td>output stream</td>
762 </tr>
763 <tr>
764 <td><p><span class="term"><em class="parameter"><code>uubuf</code></em> :</span></p></td>
765 <td>temporary buffer of 60 bytes</td>
766 </tr>
767 <tr>
768 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
769 <td>holds the number of bits that are stored in <em class="parameter"><code>save</code></em>
770 </td>
771 </tr>
772 <tr>
773 <td><p><span class="term"><em class="parameter"><code>save</code></em> :</span></p></td>
774 <td>leftover bits that have not yet been encoded</td>
775 </tr>
776 <tr>
777 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
778 <td>the number of bytes encoded.</td>
779 </tr>
780 </tbody>
781 </table></div>
782 </div>
783 <hr>
784 <div class="refsect2">
785 <a name="g-mime-encoding-uuencode-close"></a><h3>g_mime_encoding_uuencode_close ()</h3>
786 <pre class="programlisting"><span class="returnvalue">size_t</span>              g_mime_encoding_uuencode_close      (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
787                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
788                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
789                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *uubuf</code></em>,
790                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
791                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);</pre>
792 <p>
793 Uuencodes a chunk of data. Call this when finished encoding data
794 with <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-uuencode-step" title="g_mime_encoding_uuencode_step ()"><code class="function">g_mime_encoding_uuencode_step()</code></a> to flush off the last little bit.
795 </p>
796 <div class="variablelist"><table border="0">
797 <col align="left" valign="top">
798 <tbody>
799 <tr>
800 <td><p><span class="term"><em class="parameter"><code>inbuf</code></em> :</span></p></td>
801 <td>input buffer</td>
802 </tr>
803 <tr>
804 <td><p><span class="term"><em class="parameter"><code>inlen</code></em> :</span></p></td>
805 <td>input buffer length</td>
806 </tr>
807 <tr>
808 <td><p><span class="term"><em class="parameter"><code>outbuf</code></em> :</span></p></td>
809 <td>output buffer</td>
810 </tr>
811 <tr>
812 <td><p><span class="term"><em class="parameter"><code>uubuf</code></em> :</span></p></td>
813 <td>temporary buffer of 60 bytes</td>
814 </tr>
815 <tr>
816 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
817 <td>holds the number of bits that are stored in <em class="parameter"><code>save</code></em>
818 </td>
819 </tr>
820 <tr>
821 <td><p><span class="term"><em class="parameter"><code>save</code></em> :</span></p></td>
822 <td>leftover bits that have not yet been encoded</td>
823 </tr>
824 <tr>
825 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
826 <td>the number of bytes encoded.</td>
827 </tr>
828 </tbody>
829 </table></div>
830 </div>
831 <hr>
832 <div class="refsect2">
833 <a name="GMIME-QP-ENCODE-LEN:CAPS"></a><h3>GMIME_QP_ENCODE_LEN()</h3>
834 <pre class="programlisting">#define GMIME_QP_ENCODE_LEN(x)     ((size_t) ((((x) / 24) * 74) + 74))
835 </pre>
836 <p>
837 Calculates the maximum number of bytes needed to encode the full
838 input buffer of length <em class="parameter"><code>x</code></em> using the quoted-printable encoding.
839 </p>
840 <div class="variablelist"><table border="0">
841 <col align="left" valign="top">
842 <tbody>
843 <tr>
844 <td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
845 <td>Length of the input data to encode</td>
846 </tr>
847 <tr>
848 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
849 <td>the number of output bytes needed to encode an input buffer
850 of size <em class="parameter"><code>x</code></em> using the quoted-printable encoding.</td>
851 </tr>
852 </tbody>
853 </table></div>
854 </div>
855 <hr>
856 <div class="refsect2">
857 <a name="g-mime-encoding-quoted-decode-step"></a><h3>g_mime_encoding_quoted_decode_step ()</h3>
858 <pre class="programlisting"><span class="returnvalue">size_t</span>              g_mime_encoding_quoted_decode_step  (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
859                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
860                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
861                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
862                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);</pre>
863 <p>
864 Decodes a block of quoted-printable encoded data. Performs a
865 'decode step' on a chunk of QP encoded data.
866 </p>
867 <div class="variablelist"><table border="0">
868 <col align="left" valign="top">
869 <tbody>
870 <tr>
871 <td><p><span class="term"><em class="parameter"><code>inbuf</code></em> :</span></p></td>
872 <td>input buffer</td>
873 </tr>
874 <tr>
875 <td><p><span class="term"><em class="parameter"><code>inlen</code></em> :</span></p></td>
876 <td>input buffer length</td>
877 </tr>
878 <tr>
879 <td><p><span class="term"><em class="parameter"><code>outbuf</code></em> :</span></p></td>
880 <td>output buffer</td>
881 </tr>
882 <tr>
883 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
884 <td>holds the number of bits that are stored in <em class="parameter"><code>save</code></em>
885 </td>
886 </tr>
887 <tr>
888 <td><p><span class="term"><em class="parameter"><code>save</code></em> :</span></p></td>
889 <td>leftover bits that have not yet been decoded</td>
890 </tr>
891 <tr>
892 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
893 <td>the number of bytes decoded.</td>
894 </tr>
895 </tbody>
896 </table></div>
897 </div>
898 <hr>
899 <div class="refsect2">
900 <a name="g-mime-encoding-quoted-encode-step"></a><h3>g_mime_encoding_quoted_encode_step ()</h3>
901 <pre class="programlisting"><span class="returnvalue">size_t</span>              g_mime_encoding_quoted_encode_step  (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
902                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
903                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
904                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
905                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);</pre>
906 <p>
907 Quoted-printable encodes a block of text. Performs an 'encode
908 step', saves left-over state in state and save (initialise to -1 on
909 first invocation).
910 </p>
911 <div class="variablelist"><table border="0">
912 <col align="left" valign="top">
913 <tbody>
914 <tr>
915 <td><p><span class="term"><em class="parameter"><code>inbuf</code></em> :</span></p></td>
916 <td>input buffer</td>
917 </tr>
918 <tr>
919 <td><p><span class="term"><em class="parameter"><code>inlen</code></em> :</span></p></td>
920 <td>input buffer length</td>
921 </tr>
922 <tr>
923 <td><p><span class="term"><em class="parameter"><code>outbuf</code></em> :</span></p></td>
924 <td>output buffer</td>
925 </tr>
926 <tr>
927 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
928 <td>holds the number of bits that are stored in <em class="parameter"><code>save</code></em>
929 </td>
930 </tr>
931 <tr>
932 <td><p><span class="term"><em class="parameter"><code>save</code></em> :</span></p></td>
933 <td>leftover bits that have not yet been encoded</td>
934 </tr>
935 <tr>
936 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
937 <td>the number of bytes encoded.</td>
938 </tr>
939 </tbody>
940 </table></div>
941 </div>
942 <hr>
943 <div class="refsect2">
944 <a name="g-mime-encoding-quoted-encode-close"></a><h3>g_mime_encoding_quoted_encode_close ()</h3>
945 <pre class="programlisting"><span class="returnvalue">size_t</span>              g_mime_encoding_quoted_encode_close (<em class="parameter"><code>const unsigned <span class="type">char</span> *inbuf</code></em>,
946                                                          <em class="parameter"><code><span class="type">size_t</span> inlen</code></em>,
947                                                          <em class="parameter"><code>unsigned <span class="type">char</span> *outbuf</code></em>,
948                                                          <em class="parameter"><code><span class="type">int</span> *state</code></em>,
949                                                          <em class="parameter"><code><span class="type">guint32</span> *save</code></em>);</pre>
950 <p>
951 Quoted-printable encodes a block of text. Call this when finished
952 encoding data with <a class="link" href="gmime-gmime-encodings.html#g-mime-encoding-quoted-encode-step" title="g_mime_encoding_quoted_encode_step ()"><code class="function">g_mime_encoding_quoted_encode_step()</code></a> to flush off
953 the last little bit.
954 </p>
955 <div class="variablelist"><table border="0">
956 <col align="left" valign="top">
957 <tbody>
958 <tr>
959 <td><p><span class="term"><em class="parameter"><code>inbuf</code></em> :</span></p></td>
960 <td>input buffer</td>
961 </tr>
962 <tr>
963 <td><p><span class="term"><em class="parameter"><code>inlen</code></em> :</span></p></td>
964 <td>input buffer length</td>
965 </tr>
966 <tr>
967 <td><p><span class="term"><em class="parameter"><code>outbuf</code></em> :</span></p></td>
968 <td>output buffer</td>
969 </tr>
970 <tr>
971 <td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
972 <td>holds the number of bits that are stored in <em class="parameter"><code>save</code></em>
973 </td>
974 </tr>
975 <tr>
976 <td><p><span class="term"><em class="parameter"><code>save</code></em> :</span></p></td>
977 <td>leftover bits that have not yet been encoded</td>
978 </tr>
979 <tr>
980 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
981 <td>the number of bytes encoded.</td>
982 </tr>
983 </tbody>
984 </table></div>
985 </div>
986 </div>
987 </div>
988 <div class="footer">
989 <hr>
990           Generated by GTK-Doc V1.18</div>
991 </body>
992 </html>