xref: /php-src/ext/dom/lexbor/lexbor/encoding/encode.h (revision f0934090)
1 /*
2  * Copyright (C) 2019 Alexander Borisov
3  *
4  * Author: Alexander Borisov <borisov@lexbor.com>
5  */
6 
7 #ifndef LEXBOR_ENCODING_ENCODE_H
8 #define LEXBOR_ENCODING_ENCODE_H
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 
15 #include "lexbor/encoding/base.h"
16 
17 
18 LXB_API lxb_status_t
19 lxb_encoding_encode_default(lxb_encoding_encode_t *ctx,const lxb_codepoint_t **cp,
20                             const lxb_codepoint_t *end);
21 
22 LXB_API lxb_status_t
23 lxb_encoding_encode_auto(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
24                          const lxb_codepoint_t *end);
25 
26 LXB_API lxb_status_t
27 lxb_encoding_encode_undefined(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
28                               const lxb_codepoint_t *end);
29 
30 LXB_API lxb_status_t
31 lxb_encoding_encode_big5(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
32                          const lxb_codepoint_t *end);
33 
34 LXB_API lxb_status_t
35 lxb_encoding_encode_euc_jp(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
36                            const lxb_codepoint_t *end);
37 
38 LXB_API lxb_status_t
39 lxb_encoding_encode_euc_kr(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
40                            const lxb_codepoint_t *end);
41 
42 LXB_API lxb_status_t
43 lxb_encoding_encode_gbk(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
44                         const lxb_codepoint_t *end);
45 
46 LXB_API lxb_status_t
47 lxb_encoding_encode_ibm866(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
48                            const lxb_codepoint_t *end);
49 
50 LXB_API lxb_status_t
51 lxb_encoding_encode_iso_2022_jp(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
52                                 const lxb_codepoint_t *end);
53 
54 LXB_API lxb_status_t
55 lxb_encoding_encode_iso_2022_jp_eof(lxb_encoding_encode_t *ctx);
56 
57 LXB_API lxb_status_t
58 lxb_encoding_encode_iso_8859_10(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
59                                 const lxb_codepoint_t *end);
60 
61 LXB_API lxb_status_t
62 lxb_encoding_encode_iso_8859_13(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
63                                 const lxb_codepoint_t *end);
64 
65 LXB_API lxb_status_t
66 lxb_encoding_encode_iso_8859_14(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
67                                 const lxb_codepoint_t *end);
68 
69 LXB_API lxb_status_t
70 lxb_encoding_encode_iso_8859_15(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
71                                 const lxb_codepoint_t *end);
72 
73 LXB_API lxb_status_t
74 lxb_encoding_encode_iso_8859_16(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
75                                 const lxb_codepoint_t *end);
76 
77 LXB_API lxb_status_t
78 lxb_encoding_encode_iso_8859_2(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
79                                const lxb_codepoint_t *end);
80 
81 LXB_API lxb_status_t
82 lxb_encoding_encode_iso_8859_3(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
83                                const lxb_codepoint_t *end);
84 
85 LXB_API lxb_status_t
86 lxb_encoding_encode_iso_8859_4(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
87                                const lxb_codepoint_t *end);
88 
89 LXB_API lxb_status_t
90 lxb_encoding_encode_iso_8859_5(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
91                                const lxb_codepoint_t *end);
92 
93 LXB_API lxb_status_t
94 lxb_encoding_encode_iso_8859_6(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
95                                const lxb_codepoint_t *end);
96 
97 LXB_API lxb_status_t
98 lxb_encoding_encode_iso_8859_7(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
99                                const lxb_codepoint_t *end);
100 
101 LXB_API lxb_status_t
102 lxb_encoding_encode_iso_8859_8(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
103                                const lxb_codepoint_t *end);
104 
105 LXB_API lxb_status_t
106 lxb_encoding_encode_iso_8859_8_i(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
107                                  const lxb_codepoint_t *end);
108 
109 LXB_API lxb_status_t
110 lxb_encoding_encode_koi8_r(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
111                            const lxb_codepoint_t *end);
112 
113 LXB_API lxb_status_t
114 lxb_encoding_encode_koi8_u(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
115                            const lxb_codepoint_t *end);
116 
117 LXB_API lxb_status_t
118 lxb_encoding_encode_shift_jis(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
119                               const lxb_codepoint_t *end);
120 
121 LXB_API lxb_status_t
122 lxb_encoding_encode_utf_16be(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
123                              const lxb_codepoint_t *end);
124 
125 LXB_API lxb_status_t
126 lxb_encoding_encode_utf_16le(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
127                              const lxb_codepoint_t *end);
128 
129 LXB_API lxb_status_t
130 lxb_encoding_encode_utf_8(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
131                           const lxb_codepoint_t *end);
132 
133 LXB_API lxb_status_t
134 lxb_encoding_encode_gb18030(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
135                             const lxb_codepoint_t *end);
136 
137 LXB_API lxb_status_t
138 lxb_encoding_encode_macintosh(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
139                               const lxb_codepoint_t *end);
140 
141 LXB_API lxb_status_t
142 lxb_encoding_encode_replacement(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
143                                 const lxb_codepoint_t *end);
144 
145 LXB_API lxb_status_t
146 lxb_encoding_encode_windows_1250(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
147                                  const lxb_codepoint_t *end);
148 
149 LXB_API lxb_status_t
150 lxb_encoding_encode_windows_1251(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
151                                  const lxb_codepoint_t *end);
152 
153 LXB_API lxb_status_t
154 lxb_encoding_encode_windows_1252(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
155                                  const lxb_codepoint_t *end);
156 
157 LXB_API lxb_status_t
158 lxb_encoding_encode_windows_1253(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
159                                  const lxb_codepoint_t *end);
160 
161 LXB_API lxb_status_t
162 lxb_encoding_encode_windows_1254(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
163                                  const lxb_codepoint_t *end);
164 
165 LXB_API lxb_status_t
166 lxb_encoding_encode_windows_1255(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
167                                  const lxb_codepoint_t *end);
168 
169 LXB_API lxb_status_t
170 lxb_encoding_encode_windows_1256(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
171                                  const lxb_codepoint_t *end);
172 
173 LXB_API lxb_status_t
174 lxb_encoding_encode_windows_1257(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
175                                  const lxb_codepoint_t *end);
176 
177 LXB_API lxb_status_t
178 lxb_encoding_encode_windows_1258(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
179                                  const lxb_codepoint_t *end);
180 
181 LXB_API lxb_status_t
182 lxb_encoding_encode_windows_874(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
183                                 const lxb_codepoint_t *end);
184 
185 LXB_API lxb_status_t
186 lxb_encoding_encode_x_mac_cyrillic(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
187                                    const lxb_codepoint_t *end);
188 
189 LXB_API lxb_status_t
190 lxb_encoding_encode_x_user_defined(lxb_encoding_encode_t *ctx, const lxb_codepoint_t **cp,
191                                    const lxb_codepoint_t *end);
192 
193 /*
194  * Single
195  */
196 LXB_API int8_t
197 lxb_encoding_encode_default_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
198                                    const lxb_char_t *end, lxb_codepoint_t cp);
199 
200 LXB_API int8_t
201 lxb_encoding_encode_auto_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
202                                 const lxb_char_t *end, lxb_codepoint_t cp);
203 
204 LXB_API int8_t
205 lxb_encoding_encode_undefined_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
206                                      const lxb_char_t *end, lxb_codepoint_t cp);
207 
208 LXB_API int8_t
209 lxb_encoding_encode_big5_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
210                                 const lxb_char_t *end, lxb_codepoint_t cp);
211 
212 LXB_API int8_t
213 lxb_encoding_encode_euc_jp_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
214                                   const lxb_char_t *end, lxb_codepoint_t cp);
215 
216 LXB_API int8_t
217 lxb_encoding_encode_euc_kr_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
218                                   const lxb_char_t *end, lxb_codepoint_t cp);
219 
220 LXB_API int8_t
221 lxb_encoding_encode_gbk_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
222                                const lxb_char_t *end, lxb_codepoint_t cp);
223 
224 LXB_API int8_t
225 lxb_encoding_encode_ibm866_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
226                                   const lxb_char_t *end, lxb_codepoint_t cp);
227 
228 LXB_API int8_t
229 lxb_encoding_encode_iso_2022_jp_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
230                                        const lxb_char_t *end, lxb_codepoint_t cp);
231 
232 LXB_API int8_t
233 lxb_encoding_encode_iso_2022_jp_eof_single(lxb_encoding_encode_t *ctx,
234                                            lxb_char_t **data, const lxb_char_t *end);
235 
236 LXB_API int8_t
237 lxb_encoding_encode_iso_8859_10_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
238                                        const lxb_char_t *end, lxb_codepoint_t cp);
239 
240 LXB_API int8_t
241 lxb_encoding_encode_iso_8859_13_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
242                                        const lxb_char_t *end, lxb_codepoint_t cp);
243 
244 LXB_API int8_t
245 lxb_encoding_encode_iso_8859_14_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
246                                        const lxb_char_t *end, lxb_codepoint_t cp);
247 
248 LXB_API int8_t
249 lxb_encoding_encode_iso_8859_15_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
250                                        const lxb_char_t *end, lxb_codepoint_t cp);
251 
252 LXB_API int8_t
253 lxb_encoding_encode_iso_8859_16_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
254                                        const lxb_char_t *end, lxb_codepoint_t cp);
255 
256 LXB_API int8_t
257 lxb_encoding_encode_iso_8859_2_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
258                                       const lxb_char_t *end, lxb_codepoint_t cp);
259 
260 LXB_API int8_t
261 lxb_encoding_encode_iso_8859_3_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
262                                       const lxb_char_t *end, lxb_codepoint_t cp);
263 
264 LXB_API int8_t
265 lxb_encoding_encode_iso_8859_4_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
266                                       const lxb_char_t *end, lxb_codepoint_t cp);
267 
268 LXB_API int8_t
269 lxb_encoding_encode_iso_8859_5_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
270                                       const lxb_char_t *end, lxb_codepoint_t cp);
271 
272 LXB_API int8_t
273 lxb_encoding_encode_iso_8859_6_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
274                                       const lxb_char_t *end, lxb_codepoint_t cp);
275 
276 LXB_API int8_t
277 lxb_encoding_encode_iso_8859_7_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
278                                       const lxb_char_t *end, lxb_codepoint_t cp);
279 
280 LXB_API int8_t
281 lxb_encoding_encode_iso_8859_8_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
282                                       const lxb_char_t *end, lxb_codepoint_t cp);
283 
284 LXB_API int8_t
285 lxb_encoding_encode_iso_8859_8_i_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
286                                         const lxb_char_t *end, lxb_codepoint_t cp);
287 
288 LXB_API int8_t
289 lxb_encoding_encode_koi8_r_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
290                                   const lxb_char_t *end, lxb_codepoint_t cp);
291 
292 LXB_API int8_t
293 lxb_encoding_encode_koi8_u_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
294                                   const lxb_char_t *end, lxb_codepoint_t cp);
295 
296 LXB_API int8_t
297 lxb_encoding_encode_shift_jis_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
298                                      const lxb_char_t *end, lxb_codepoint_t cp);
299 
300 LXB_API int8_t
301 lxb_encoding_encode_utf_16be_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
302                                     const lxb_char_t *end, lxb_codepoint_t cp);
303 
304 LXB_API int8_t
305 lxb_encoding_encode_utf_16le_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
306                                     const lxb_char_t *end, lxb_codepoint_t cp);
307 
308 LXB_API int8_t
309 lxb_encoding_encode_utf_8_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
310                                  const lxb_char_t *end, lxb_codepoint_t cp);
311 
312 LXB_API int8_t
313 lxb_encoding_encode_utf_8_length(lxb_codepoint_t cp);
314 
315 LXB_API int8_t
316 lxb_encoding_encode_gb18030_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
317                                    const lxb_char_t *end, lxb_codepoint_t cp);
318 
319 LXB_API int8_t
320 lxb_encoding_encode_macintosh_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
321                                      const lxb_char_t *end, lxb_codepoint_t cp);
322 
323 LXB_API int8_t
324 lxb_encoding_encode_replacement_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
325                                        const lxb_char_t *end, lxb_codepoint_t cp);
326 
327 LXB_API int8_t
328 lxb_encoding_encode_windows_1250_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
329                                         const lxb_char_t *end, lxb_codepoint_t cp);
330 
331 LXB_API int8_t
332 lxb_encoding_encode_windows_1251_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
333                                         const lxb_char_t *end, lxb_codepoint_t cp);
334 
335 LXB_API int8_t
336 lxb_encoding_encode_windows_1252_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
337                                         const lxb_char_t *end, lxb_codepoint_t cp);
338 
339 LXB_API int8_t
340 lxb_encoding_encode_windows_1253_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
341                                         const lxb_char_t *end, lxb_codepoint_t cp);
342 
343 LXB_API int8_t
344 lxb_encoding_encode_windows_1254_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
345                                         const lxb_char_t *end, lxb_codepoint_t cp);
346 
347 LXB_API int8_t
348 lxb_encoding_encode_windows_1255_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
349                                         const lxb_char_t *end, lxb_codepoint_t cp);
350 
351 LXB_API int8_t
352 lxb_encoding_encode_windows_1256_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
353                                         const lxb_char_t *end, lxb_codepoint_t cp);
354 
355 LXB_API int8_t
356 lxb_encoding_encode_windows_1257_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
357                                         const lxb_char_t *end, lxb_codepoint_t cp);
358 
359 LXB_API int8_t
360 lxb_encoding_encode_windows_1258_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
361                                         const lxb_char_t *end, lxb_codepoint_t cp);
362 
363 LXB_API int8_t
364 lxb_encoding_encode_windows_874_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
365                                        const lxb_char_t *end, lxb_codepoint_t cp);
366 
367 LXB_API int8_t
368 lxb_encoding_encode_x_mac_cyrillic_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
369                                           const lxb_char_t *end, lxb_codepoint_t cp);
370 
371 LXB_API int8_t
372 lxb_encoding_encode_x_user_defined_single(lxb_encoding_encode_t *ctx, lxb_char_t **data,
373                                           const lxb_char_t *end, lxb_codepoint_t cp);
374 
375 
376 #ifdef __cplusplus
377 } /* extern "C" */
378 #endif
379 
380 #endif /* LEXBOR_ENCODING_ENCODE_H */
381