add new api docs.
[lms] / www / api / lightmediascanner__charset__conv_8c.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3 <title>Light Media Scanner: src/lib/lightmediascanner_charset_conv.c File Reference</title>
4 <link href="tabs.css" rel="stylesheet" type="text/css">
5 <link href="doxygen.css" rel="stylesheet" type="text/css">
6 </head><body>
7 <!-- Generated by Doxygen 1.5.8 -->
8 <div class="navigation" id="top">
9   <div class="tabs">
10     <ul>
11       <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12       <li><a href="modules.html"><span>Modules</span></a></li>
13       <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
14       <li class="current"><a href="files.html"><span>Files</span></a></li>
15     </ul>
16   </div>
17   <div class="tabs">
18     <ul>
19       <li><a href="files.html"><span>File&nbsp;List</span></a></li>
20       <li><a href="globals.html"><span>Globals</span></a></li>
21     </ul>
22   </div>
23 </div>
24 <div class="contents">
25 <h1>src/lib/lightmediascanner_charset_conv.c File Reference</h1><code>#include &quot;<a class="el" href="lightmediascanner__charset__conv_8h-source.html">lightmediascanner_charset_conv.h</a>&quot;</code><br>
26 <code>#include &lt;iconv.h&gt;</code><br>
27 <code>#include &lt;stdio.h&gt;</code><br>
28 <code>#include &lt;stdlib.h&gt;</code><br>
29 <code>#include &lt;string.h&gt;</code><br>
30 <code>#include &lt;errno.h&gt;</code><br>
31 <code>#include &lt;ctype.h&gt;</code><br>
32
33 <p>
34 <div class="dynheader">
35 Include dependency graph for lightmediascanner_charset_conv.c:</div>
36 <div class="dynsection">
37 </div>
38
39 <p>
40 <a href="lightmediascanner__charset__conv_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
41 <tr><td></td></tr>
42 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
43 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g893421821eacaa0fd2020c872361af15">lms_charset_conv_new_full</a> (int use_check, int use_fallback)</td></tr>
44
45 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g0120c222a55e6d7d9bb24300300561ab">lms_charset_conv_new</a> (void)</td></tr>
46
47 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__LMS__CHARSET.html#g960ce31bca428212abdd60c12b878091">lms_charset_conv_free</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc)</td></tr>
48
49 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__charset__conv_8c.html#0a3006beae6fc8c59eca75468c1bc000">lms_charset_conv_add</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, const char *charset)</td></tr>
50
51 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__charset__conv_8c.html#ad60dd3a2c2ebcf9ee1100986fc572e4">lms_charset_conv_del</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, const char *charset)</td></tr>
52
53 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__charset__conv_8c.html#35b728d3c5cb940027ebc47589971b25">lms_charset_conv</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, char **p_str, unsigned int *p_len)</td></tr>
54
55 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__charset__conv_8c.html#8ea844f16120ba4000b7b142192e91e4">lms_charset_conv_force</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, char **p_str, unsigned int *p_len)</td></tr>
56
57 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="lightmediascanner__charset__conv_8c.html#f069b89e828896690fdd919e5b042c7d">lms_charset_conv_check</a> (<a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *lcc, const char *str, unsigned int len)</td></tr>
58
59 </table>
60 <hr><h2>Function Documentation</h2>
61 <a class="anchor" name="35b728d3c5cb940027ebc47589971b25"></a><!-- doxytag: member="lightmediascanner_charset_conv.c::lms_charset_conv" ref="35b728d3c5cb940027ebc47589971b25" args="(lms_charset_conv_t *lcc, char **p_str, unsigned int *p_len)" -->
62 <div class="memitem">
63 <div class="memproto">
64       <table class="memname">
65         <tr>
66           <td class="memname">int lms_charset_conv           </td>
67           <td>(</td>
68           <td class="paramtype"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td>
69           <td class="paramname"> <em>lcc</em>, </td>
70         </tr>
71         <tr>
72           <td class="paramkey"></td>
73           <td></td>
74           <td class="paramtype">char **&nbsp;</td>
75           <td class="paramname"> <em>p_str</em>, </td>
76         </tr>
77         <tr>
78           <td class="paramkey"></td>
79           <td></td>
80           <td class="paramtype">unsigned int *&nbsp;</td>
81           <td class="paramname"> <em>p_len</em></td><td>&nbsp;</td>
82         </tr>
83         <tr>
84           <td></td>
85           <td>)</td>
86           <td></td><td></td><td></td>
87         </tr>
88       </table>
89 </div>
90 <div class="memdoc">
91
92 <p>
93 If required, do charset conversion to UTF-8.<p>
94 <dl compact><dt><b>Parameters:</b></dt><dd>
95   <table border="0" cellspacing="2" cellpadding="0">
96     <tr><td valign="top"></td><td valign="top"><em>lcc</em>&nbsp;</td><td>existing Light Media Scanner charset conversion. </td></tr>
97     <tr><td valign="top"></td><td valign="top"><em>p_str</em>&nbsp;</td><td>string to be converted. </td></tr>
98     <tr><td valign="top"></td><td valign="top"><em>p_len</em>&nbsp;</td><td>string size.</td></tr>
99   </table>
100 </dl>
101 <dl class="note" compact><dt><b>Note:</b></dt><dd>the check for string being already UTF-8 is not reliable, some cases might show false positives (UTF-16 is considered UTF-8). </dd></dl>
102 <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="lightmediascanner__charset__conv_8c.html#f069b89e828896690fdd919e5b042c7d">lms_charset_conv_check()</a></dd></dl>
103 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
104
105 <p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00328">328</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.</p>
106
107 </div>
108 </div><p>
109 <a class="anchor" name="0a3006beae6fc8c59eca75468c1bc000"></a><!-- doxytag: member="lightmediascanner_charset_conv.c::lms_charset_conv_add" ref="0a3006beae6fc8c59eca75468c1bc000" args="(lms_charset_conv_t *lcc, const char *charset)" -->
110 <div class="memitem">
111 <div class="memproto">
112       <table class="memname">
113         <tr>
114           <td class="memname">int lms_charset_conv_add           </td>
115           <td>(</td>
116           <td class="paramtype"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td>
117           <td class="paramname"> <em>lcc</em>, </td>
118         </tr>
119         <tr>
120           <td class="paramkey"></td>
121           <td></td>
122           <td class="paramtype">const char *&nbsp;</td>
123           <td class="paramname"> <em>charset</em></td><td>&nbsp;</td>
124         </tr>
125         <tr>
126           <td></td>
127           <td>)</td>
128           <td></td><td></td><td></td>
129         </tr>
130       </table>
131 </div>
132 <div class="memdoc">
133
134 <p>
135 Register new charset to conversion tool.<p>
136 <dl compact><dt><b>Parameters:</b></dt><dd>
137   <table border="0" cellspacing="2" cellpadding="0">
138     <tr><td valign="top"></td><td valign="top"><em>lcc</em>&nbsp;</td><td>existing Light Media Scanner charset conversion. </td></tr>
139     <tr><td valign="top"></td><td valign="top"><em>charset</em>&nbsp;</td><td>charset name as understood by iconv_open(3).</td></tr>
140   </table>
141 </dl>
142 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
143
144 <p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00145">145</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.</p>
145
146 <p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00496">lms_charset_add()</a>.</p>
147
148 </div>
149 </div><p>
150 <a class="anchor" name="f069b89e828896690fdd919e5b042c7d"></a><!-- doxytag: member="lightmediascanner_charset_conv.c::lms_charset_conv_check" ref="f069b89e828896690fdd919e5b042c7d" args="(lms_charset_conv_t *lcc, const char *str, unsigned int len)" -->
151 <div class="memitem">
152 <div class="memproto">
153       <table class="memname">
154         <tr>
155           <td class="memname">int lms_charset_conv_check           </td>
156           <td>(</td>
157           <td class="paramtype"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td>
158           <td class="paramname"> <em>lcc</em>, </td>
159         </tr>
160         <tr>
161           <td class="paramkey"></td>
162           <td></td>
163           <td class="paramtype">const char *&nbsp;</td>
164           <td class="paramname"> <em>str</em>, </td>
165         </tr>
166         <tr>
167           <td class="paramkey"></td>
168           <td></td>
169           <td class="paramtype">unsigned int&nbsp;</td>
170           <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
171         </tr>
172         <tr>
173           <td></td>
174           <td>)</td>
175           <td></td><td></td><td></td>
176         </tr>
177       </table>
178 </div>
179 <div class="memdoc">
180
181 <p>
182 Check if strings is not UTF-8 and conversion is required.<p>
183 <dl compact><dt><b>Parameters:</b></dt><dd>
184   <table border="0" cellspacing="2" cellpadding="0">
185     <tr><td valign="top"></td><td valign="top"><em>lcc</em>&nbsp;</td><td>existing Light Media Scanner charset conversion. </td></tr>
186     <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>string to be analysed. </td></tr>
187     <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>string size.</td></tr>
188   </table>
189 </dl>
190 <dl class="note" compact><dt><b>Note:</b></dt><dd>current implementation is not reliable, it tries to convert from UTF-8 to UTF-8. Some cases, like ISO-8859-1 will work, but some like UTF-16 to UTF-8 will say it's already in the correct charset, even if it's not.</dd></dl>
191 <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if string is already UTF-8. </dd></dl>
192
193 <p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00440">440</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.</p>
194
195 </div>
196 </div><p>
197 <a class="anchor" name="ad60dd3a2c2ebcf9ee1100986fc572e4"></a><!-- doxytag: member="lightmediascanner_charset_conv.c::lms_charset_conv_del" ref="ad60dd3a2c2ebcf9ee1100986fc572e4" args="(lms_charset_conv_t *lcc, const char *charset)" -->
198 <div class="memitem">
199 <div class="memproto">
200       <table class="memname">
201         <tr>
202           <td class="memname">int lms_charset_conv_del           </td>
203           <td>(</td>
204           <td class="paramtype"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td>
205           <td class="paramname"> <em>lcc</em>, </td>
206         </tr>
207         <tr>
208           <td class="paramkey"></td>
209           <td></td>
210           <td class="paramtype">const char *&nbsp;</td>
211           <td class="paramname"> <em>charset</em></td><td>&nbsp;</td>
212         </tr>
213         <tr>
214           <td></td>
215           <td>)</td>
216           <td></td><td></td><td></td>
217         </tr>
218       </table>
219 </div>
220 <div class="memdoc">
221
222 <p>
223 Forget about previously registered charset in conversion tool.<p>
224 <dl compact><dt><b>Parameters:</b></dt><dd>
225   <table border="0" cellspacing="2" cellpadding="0">
226     <tr><td valign="top"></td><td valign="top"><em>lcc</em>&nbsp;</td><td>existing Light Media Scanner charset conversion. </td></tr>
227     <tr><td valign="top"></td><td valign="top"><em>charset</em>&nbsp;</td><td>charset name.</td></tr>
228   </table>
229 </dl>
230 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
231
232 <p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00211">211</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.</p>
233
234 <p>Referenced by <a class="el" href="lightmediascanner_8c-source.html#l00519">lms_charset_del()</a>.</p>
235
236 </div>
237 </div><p>
238 <a class="anchor" name="8ea844f16120ba4000b7b142192e91e4"></a><!-- doxytag: member="lightmediascanner_charset_conv.c::lms_charset_conv_force" ref="8ea844f16120ba4000b7b142192e91e4" args="(lms_charset_conv_t *lcc, char **p_str, unsigned int *p_len)" -->
239 <div class="memitem">
240 <div class="memproto">
241       <table class="memname">
242         <tr>
243           <td class="memname">int lms_charset_conv_force           </td>
244           <td>(</td>
245           <td class="paramtype"><a class="el" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *&nbsp;</td>
246           <td class="paramname"> <em>lcc</em>, </td>
247         </tr>
248         <tr>
249           <td class="paramkey"></td>
250           <td></td>
251           <td class="paramtype">char **&nbsp;</td>
252           <td class="paramname"> <em>p_str</em>, </td>
253         </tr>
254         <tr>
255           <td class="paramkey"></td>
256           <td></td>
257           <td class="paramtype">unsigned int *&nbsp;</td>
258           <td class="paramname"> <em>p_len</em></td><td>&nbsp;</td>
259         </tr>
260         <tr>
261           <td></td>
262           <td>)</td>
263           <td></td><td></td><td></td>
264         </tr>
265       </table>
266 </div>
267 <div class="memdoc">
268
269 <p>
270 Forcefully do charset conversion to UTF-8.<p>
271 <dl compact><dt><b>Parameters:</b></dt><dd>
272   <table border="0" cellspacing="2" cellpadding="0">
273     <tr><td valign="top"></td><td valign="top"><em>lcc</em>&nbsp;</td><td>existing Light Media Scanner charset conversion. </td></tr>
274     <tr><td valign="top"></td><td valign="top"><em>p_str</em>&nbsp;</td><td>string to be converted. </td></tr>
275     <tr><td valign="top"></td><td valign="top"><em>p_len</em>&nbsp;</td><td>string size.</td></tr>
276   </table>
277 </dl>
278 <dl class="note" compact><dt><b>Note:</b></dt><dd>This function does not check for the string being in UTF-8 before doing the conversion, use it if you are sure about the charset. In this case you'll usually have just one charset added.</dd></dl>
279 <dl class="return" compact><dt><b>Returns:</b></dt><dd>On success 0 is returned. </dd></dl>
280
281 <p>Definition at line <a class="el" href="lightmediascanner__charset__conv_8c-source.html#l00386">386</a> of file <a class="el" href="lightmediascanner__charset__conv_8c-source.html">lightmediascanner_charset_conv.c</a>.</p>
282
283 </div>
284 </div><p>
285 </div>
286 <hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 22 23:56:01 2009 for Light Media Scanner by&nbsp;
287 <a href="http://www.doxygen.org/index.html">
288 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
289 </body>
290 </html>