Skip to content

Commit 114e033

Browse files
committed
tutf8e: Refresh from upstream
Signed-off-by: Nigel Stewart <[email protected]>
1 parent 1d4f116 commit 114e033

28 files changed

+489
-1198
lines changed

lib/tutf8e/codegen.py

Lines changed: 242 additions & 117 deletions
Large diffs are not rendered by default.

lib/tutf8e/include/tutf8e.h

Lines changed: 56 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -6,118 +6,68 @@
66
#include <stdint.h> /* uint16_t */
77

88
/* Internal API */
9+
910
extern int tutf8e_string_length(const uint16_t *table, const char *i, size_t *ilen, size_t *olen);
10-
extern int tutf8e_buffer_length(const uint16_t *table, const char *i, size_t ilen, size_t *length);
11-
extern int tutf8e_buffer_encode(const uint16_t *table, const char *i, size_t ilen, char *output, size_t *olen);
11+
extern int tutf8e_string_encode(const uint16_t *table, const char *i, char *o, size_t *olen);
12+
13+
extern int tutf8e_buffer_length(const uint16_t *table, const char *i, size_t ilen, size_t *olen);
14+
extern int tutf8e_buffer_encode(const uint16_t *table, const char *i, size_t ilen, char *o, size_t *olen);
15+
16+
/* Generic API */
1217

13-
/* External API */
18+
typedef void *TUTF8encoder;
19+
20+
extern TUTF8encoder tutf8e_encoder(const char *encoding);
1421

1522
#define TUTF8E_OK 0 /* Success */
1623
#define TUTF8E_INVALID 1 /* Invalid input character */
1724
#define TUTF8E_TOOLONG 2 /* Insufficient output buffer */
1825

19-
/* Encode NUL-terminated string to UTF8 */
20-
extern int tutf8e_string_encode_iso_8859_1 (char *output, size_t olen, const char *input);
21-
extern int tutf8e_string_encode_iso_8859_10 (char *output, size_t olen, const char *input);
22-
extern int tutf8e_string_encode_iso_8859_11 (char *output, size_t olen, const char *input);
23-
extern int tutf8e_string_encode_iso_8859_13 (char *output, size_t olen, const char *input);
24-
extern int tutf8e_string_encode_iso_8859_14 (char *output, size_t olen, const char *input);
25-
extern int tutf8e_string_encode_iso_8859_15 (char *output, size_t olen, const char *input);
26-
extern int tutf8e_string_encode_iso_8859_16 (char *output, size_t olen, const char *input);
27-
extern int tutf8e_string_encode_iso_8859_2 (char *output, size_t olen, const char *input);
28-
extern int tutf8e_string_encode_iso_8859_3 (char *output, size_t olen, const char *input);
29-
extern int tutf8e_string_encode_iso_8859_4 (char *output, size_t olen, const char *input);
30-
extern int tutf8e_string_encode_iso_8859_5 (char *output, size_t olen, const char *input);
31-
extern int tutf8e_string_encode_iso_8859_6 (char *output, size_t olen, const char *input);
32-
extern int tutf8e_string_encode_iso_8859_7 (char *output, size_t olen, const char *input);
33-
extern int tutf8e_string_encode_iso_8859_8 (char *output, size_t olen, const char *input);
34-
extern int tutf8e_string_encode_iso_8859_9 (char *output, size_t olen, const char *input);
35-
extern int tutf8e_string_encode_windows_1250(char *output, size_t olen, const char *input);
36-
extern int tutf8e_string_encode_windows_1251(char *output, size_t olen, const char *input);
37-
extern int tutf8e_string_encode_windows_1252(char *output, size_t olen, const char *input);
38-
extern int tutf8e_string_encode_windows_1253(char *output, size_t olen, const char *input);
39-
extern int tutf8e_string_encode_windows_1254(char *output, size_t olen, const char *input);
40-
extern int tutf8e_string_encode_windows_1255(char *output, size_t olen, const char *input);
41-
extern int tutf8e_string_encode_windows_1256(char *output, size_t olen, const char *input);
42-
extern int tutf8e_string_encode_windows_1257(char *output, size_t olen, const char *input);
43-
extern int tutf8e_string_encode_windows_1258(char *output, size_t olen, const char *input);
44-
45-
/* Encode NUL-terminated string to UTF8, realloc as necessary */
46-
extern char * tutf8e_string_encode_iso_8859_1_realloc(char *input);
47-
extern char * tutf8e_string_encode_iso_8859_10_realloc(char *input);
48-
extern char * tutf8e_string_encode_iso_8859_11_realloc(char *input);
49-
extern char * tutf8e_string_encode_iso_8859_13_realloc(char *input);
50-
extern char * tutf8e_string_encode_iso_8859_14_realloc(char *input);
51-
extern char * tutf8e_string_encode_iso_8859_15_realloc(char *input);
52-
extern char * tutf8e_string_encode_iso_8859_16_realloc(char *input);
53-
extern char * tutf8e_string_encode_iso_8859_2_realloc(char *input);
54-
extern char * tutf8e_string_encode_iso_8859_3_realloc(char *input);
55-
extern char * tutf8e_string_encode_iso_8859_4_realloc(char *input);
56-
extern char * tutf8e_string_encode_iso_8859_5_realloc(char *input);
57-
extern char * tutf8e_string_encode_iso_8859_6_realloc(char *input);
58-
extern char * tutf8e_string_encode_iso_8859_7_realloc(char *input);
59-
extern char * tutf8e_string_encode_iso_8859_8_realloc(char *input);
60-
extern char * tutf8e_string_encode_iso_8859_9_realloc(char *input);
61-
extern char * tutf8e_string_encode_windows_1250_realloc(char *input);
62-
extern char * tutf8e_string_encode_windows_1251_realloc(char *input);
63-
extern char * tutf8e_string_encode_windows_1252_realloc(char *input);
64-
extern char * tutf8e_string_encode_windows_1253_realloc(char *input);
65-
extern char * tutf8e_string_encode_windows_1254_realloc(char *input);
66-
extern char * tutf8e_string_encode_windows_1255_realloc(char *input);
67-
extern char * tutf8e_string_encode_windows_1256_realloc(char *input);
68-
extern char * tutf8e_string_encode_windows_1257_realloc(char *input);
69-
extern char * tutf8e_string_encode_windows_1258_realloc(char *input);
70-
71-
/* Buffer length as UTF8 */
72-
extern int tutf8e_buffer_length_iso_8859_1 (const char *i, size_t ilen, size_t *length);
73-
extern int tutf8e_buffer_length_iso_8859_10 (const char *i, size_t ilen, size_t *length);
74-
extern int tutf8e_buffer_length_iso_8859_11 (const char *i, size_t ilen, size_t *length);
75-
extern int tutf8e_buffer_length_iso_8859_13 (const char *i, size_t ilen, size_t *length);
76-
extern int tutf8e_buffer_length_iso_8859_14 (const char *i, size_t ilen, size_t *length);
77-
extern int tutf8e_buffer_length_iso_8859_15 (const char *i, size_t ilen, size_t *length);
78-
extern int tutf8e_buffer_length_iso_8859_16 (const char *i, size_t ilen, size_t *length);
79-
extern int tutf8e_buffer_length_iso_8859_2 (const char *i, size_t ilen, size_t *length);
80-
extern int tutf8e_buffer_length_iso_8859_3 (const char *i, size_t ilen, size_t *length);
81-
extern int tutf8e_buffer_length_iso_8859_4 (const char *i, size_t ilen, size_t *length);
82-
extern int tutf8e_buffer_length_iso_8859_5 (const char *i, size_t ilen, size_t *length);
83-
extern int tutf8e_buffer_length_iso_8859_6 (const char *i, size_t ilen, size_t *length);
84-
extern int tutf8e_buffer_length_iso_8859_7 (const char *i, size_t ilen, size_t *length);
85-
extern int tutf8e_buffer_length_iso_8859_8 (const char *i, size_t ilen, size_t *length);
86-
extern int tutf8e_buffer_length_iso_8859_9 (const char *i, size_t ilen, size_t *length);
87-
extern int tutf8e_buffer_length_windows_1250(const char *i, size_t ilen, size_t *length);
88-
extern int tutf8e_buffer_length_windows_1251(const char *i, size_t ilen, size_t *length);
89-
extern int tutf8e_buffer_length_windows_1252(const char *i, size_t ilen, size_t *length);
90-
extern int tutf8e_buffer_length_windows_1253(const char *i, size_t ilen, size_t *length);
91-
extern int tutf8e_buffer_length_windows_1254(const char *i, size_t ilen, size_t *length);
92-
extern int tutf8e_buffer_length_windows_1255(const char *i, size_t ilen, size_t *length);
93-
extern int tutf8e_buffer_length_windows_1256(const char *i, size_t ilen, size_t *length);
94-
extern int tutf8e_buffer_length_windows_1257(const char *i, size_t ilen, size_t *length);
95-
extern int tutf8e_buffer_length_windows_1258(const char *i, size_t ilen, size_t *length);
96-
97-
/* Encode buffer to UTF8 */
98-
extern int tutf8e_buffer_encode_iso_8859_1 (char *output, size_t *olen, const char *input, size_t ilen);
99-
extern int tutf8e_buffer_encode_iso_8859_10 (char *output, size_t *olen, const char *input, size_t ilen);
100-
extern int tutf8e_buffer_encode_iso_8859_11 (char *output, size_t *olen, const char *input, size_t ilen);
101-
extern int tutf8e_buffer_encode_iso_8859_13 (char *output, size_t *olen, const char *input, size_t ilen);
102-
extern int tutf8e_buffer_encode_iso_8859_14 (char *output, size_t *olen, const char *input, size_t ilen);
103-
extern int tutf8e_buffer_encode_iso_8859_15 (char *output, size_t *olen, const char *input, size_t ilen);
104-
extern int tutf8e_buffer_encode_iso_8859_16 (char *output, size_t *olen, const char *input, size_t ilen);
105-
extern int tutf8e_buffer_encode_iso_8859_2 (char *output, size_t *olen, const char *input, size_t ilen);
106-
extern int tutf8e_buffer_encode_iso_8859_3 (char *output, size_t *olen, const char *input, size_t ilen);
107-
extern int tutf8e_buffer_encode_iso_8859_4 (char *output, size_t *olen, const char *input, size_t ilen);
108-
extern int tutf8e_buffer_encode_iso_8859_5 (char *output, size_t *olen, const char *input, size_t ilen);
109-
extern int tutf8e_buffer_encode_iso_8859_6 (char *output, size_t *olen, const char *input, size_t ilen);
110-
extern int tutf8e_buffer_encode_iso_8859_7 (char *output, size_t *olen, const char *input, size_t ilen);
111-
extern int tutf8e_buffer_encode_iso_8859_8 (char *output, size_t *olen, const char *input, size_t ilen);
112-
extern int tutf8e_buffer_encode_iso_8859_9 (char *output, size_t *olen, const char *input, size_t ilen);
113-
extern int tutf8e_buffer_encode_windows_1250(char *output, size_t *olen, const char *input, size_t ilen);
114-
extern int tutf8e_buffer_encode_windows_1251(char *output, size_t *olen, const char *input, size_t ilen);
115-
extern int tutf8e_buffer_encode_windows_1252(char *output, size_t *olen, const char *input, size_t ilen);
116-
extern int tutf8e_buffer_encode_windows_1253(char *output, size_t *olen, const char *input, size_t ilen);
117-
extern int tutf8e_buffer_encode_windows_1254(char *output, size_t *olen, const char *input, size_t ilen);
118-
extern int tutf8e_buffer_encode_windows_1255(char *output, size_t *olen, const char *input, size_t ilen);
119-
extern int tutf8e_buffer_encode_windows_1256(char *output, size_t *olen, const char *input, size_t ilen);
120-
extern int tutf8e_buffer_encode_windows_1257(char *output, size_t *olen, const char *input, size_t ilen);
121-
extern int tutf8e_buffer_encode_windows_1258(char *output, size_t *olen, const char *input, size_t ilen);
26+
static inline int tutf8e_encoder_string_length(const TUTF8encoder encoder, const char *i, size_t *ilen, size_t *olen)
27+
{
28+
return tutf8e_string_length((const uint16_t *) encoder, i, ilen, olen);
29+
}
30+
31+
static inline int tutf8e_encoder_string_encode(const TUTF8encoder encoder, const char *i, char *o, size_t *olen)
32+
{
33+
return tutf8e_string_encode((const uint16_t *) encoder, i, o, olen);
34+
}
35+
36+
static inline int tutf8e_encoder_buffer_length(const TUTF8encoder encoder, const char *i, size_t ilen, size_t *length)
37+
{
38+
return tutf8e_buffer_length((const uint16_t *) encoder, i, ilen, length);
39+
}
40+
41+
static inline int tutf8e_encoder_buffer_encode(const TUTF8encoder encoder, const char *i, size_t ilen, char *o, size_t *olen)
42+
{
43+
return tutf8e_buffer_encode((const uint16_t *) encoder, i, ilen, o, olen);
44+
}
45+
46+
/* Supported encoders */
47+
48+
extern const TUTF8encoder tutf8e_encoder_iso_8859_1;
49+
extern const TUTF8encoder tutf8e_encoder_iso_8859_10;
50+
extern const TUTF8encoder tutf8e_encoder_iso_8859_11;
51+
extern const TUTF8encoder tutf8e_encoder_iso_8859_13;
52+
extern const TUTF8encoder tutf8e_encoder_iso_8859_14;
53+
extern const TUTF8encoder tutf8e_encoder_iso_8859_15;
54+
extern const TUTF8encoder tutf8e_encoder_iso_8859_16;
55+
extern const TUTF8encoder tutf8e_encoder_iso_8859_2;
56+
extern const TUTF8encoder tutf8e_encoder_iso_8859_3;
57+
extern const TUTF8encoder tutf8e_encoder_iso_8859_4;
58+
extern const TUTF8encoder tutf8e_encoder_iso_8859_5;
59+
extern const TUTF8encoder tutf8e_encoder_iso_8859_6;
60+
extern const TUTF8encoder tutf8e_encoder_iso_8859_7;
61+
extern const TUTF8encoder tutf8e_encoder_iso_8859_8;
62+
extern const TUTF8encoder tutf8e_encoder_iso_8859_9;
63+
extern const TUTF8encoder tutf8e_encoder_windows_1250;
64+
extern const TUTF8encoder tutf8e_encoder_windows_1251;
65+
extern const TUTF8encoder tutf8e_encoder_windows_1252;
66+
extern const TUTF8encoder tutf8e_encoder_windows_1253;
67+
extern const TUTF8encoder tutf8e_encoder_windows_1254;
68+
extern const TUTF8encoder tutf8e_encoder_windows_1255;
69+
extern const TUTF8encoder tutf8e_encoder_windows_1256;
70+
extern const TUTF8encoder tutf8e_encoder_windows_1257;
71+
extern const TUTF8encoder tutf8e_encoder_windows_1258;
12272

12373
#endif

lib/tutf8e/src/iso_8859_1.c

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
#include <tutf8e.h>
22

3-
#include <string.h> /* strlen */
4-
#include <stdlib.h> /* malloc/free */
5-
6-
static const uint16_t iso_8859_1_utf8[256] =
3+
static const uint16_t tutf8e_iso_8859_1_utf8[256] =
74
{
85
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
96
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
@@ -23,34 +20,4 @@ static const uint16_t iso_8859_1_utf8[256] =
2320
0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff,
2421
};
2522

26-
int tutf8e_string_encode_iso_8859_1(char *output, size_t olen, const char *input)
27-
{
28-
size_t len = strlen(input) + 1;
29-
return tutf8e_buffer_encode(iso_8859_1_utf8, input, len, output, &olen);
30-
}
31-
32-
int tutf8e_buffer_length_iso_8859_1(const char *i, size_t ilen, size_t *length)
33-
{
34-
return tutf8e_buffer_length(iso_8859_1_utf8, i, ilen, length);
35-
}
36-
37-
int tutf8e_buffer_encode_iso_8859_1(char *output, size_t *olen, const char *input, size_t ilen)
38-
{
39-
return tutf8e_buffer_encode(iso_8859_1_utf8, input, ilen, output, olen);
40-
}
41-
42-
char * tutf8e_string_encode_iso_8859_1_realloc(char *input)
43-
{
44-
size_t ilen = 0;
45-
size_t olen = 0;
46-
if (input && !tutf8e_string_length(iso_8859_1_utf8, input, &ilen, &olen) && ilen && olen && ilen!=olen) {
47-
char * output = malloc(olen + 1);
48-
if (output && !tutf8e_buffer_encode(iso_8859_1_utf8, input, ilen, output, &olen)) {
49-
free(input);
50-
output[olen] = 0;
51-
return output;
52-
}
53-
free(output);
54-
}
55-
return input;
56-
}
23+
const TUTF8encoder tutf8e_encoder_iso_8859_1 = (TUTF8encoder) tutf8e_iso_8859_1_utf8;

lib/tutf8e/src/iso_8859_10.c

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
#include <tutf8e.h>
22

3-
#include <string.h> /* strlen */
4-
#include <stdlib.h> /* malloc/free */
5-
6-
static const uint16_t iso_8859_10_utf8[256] =
3+
static const uint16_t tutf8e_iso_8859_10_utf8[256] =
74
{
85
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
96
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
@@ -23,34 +20,4 @@ static const uint16_t iso_8859_10_utf8[256] =
2320
0x00f0, 0x0146, 0x014d, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0169, 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0138,
2421
};
2522

26-
int tutf8e_string_encode_iso_8859_10(char *output, size_t olen, const char *input)
27-
{
28-
size_t len = strlen(input) + 1;
29-
return tutf8e_buffer_encode(iso_8859_10_utf8, input, len, output, &olen);
30-
}
31-
32-
int tutf8e_buffer_length_iso_8859_10(const char *i, size_t ilen, size_t *length)
33-
{
34-
return tutf8e_buffer_length(iso_8859_10_utf8, i, ilen, length);
35-
}
36-
37-
int tutf8e_buffer_encode_iso_8859_10(char *output, size_t *olen, const char *input, size_t ilen)
38-
{
39-
return tutf8e_buffer_encode(iso_8859_10_utf8, input, ilen, output, olen);
40-
}
41-
42-
char * tutf8e_string_encode_iso_8859_10_realloc(char *input)
43-
{
44-
size_t ilen = 0;
45-
size_t olen = 0;
46-
if (input && !tutf8e_string_length(iso_8859_10_utf8, input, &ilen, &olen) && ilen && olen && ilen!=olen) {
47-
char * output = malloc(olen + 1);
48-
if (output && !tutf8e_buffer_encode(iso_8859_10_utf8, input, ilen, output, &olen)) {
49-
free(input);
50-
output[olen] = 0;
51-
return output;
52-
}
53-
free(output);
54-
}
55-
return input;
56-
}
23+
const TUTF8encoder tutf8e_encoder_iso_8859_10 = (TUTF8encoder) tutf8e_iso_8859_10_utf8;

lib/tutf8e/src/iso_8859_11.c

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
#include <tutf8e.h>
22

3-
#include <string.h> /* strlen */
4-
#include <stdlib.h> /* malloc/free */
5-
6-
static const uint16_t iso_8859_11_utf8[256] =
3+
static const uint16_t tutf8e_iso_8859_11_utf8[256] =
74
{
85
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
96
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
@@ -23,34 +20,4 @@ static const uint16_t iso_8859_11_utf8[256] =
2320
0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xffff, 0xffff, 0xffff, 0xffff,
2421
};
2522

26-
int tutf8e_string_encode_iso_8859_11(char *output, size_t olen, const char *input)
27-
{
28-
size_t len = strlen(input) + 1;
29-
return tutf8e_buffer_encode(iso_8859_11_utf8, input, len, output, &olen);
30-
}
31-
32-
int tutf8e_buffer_length_iso_8859_11(const char *i, size_t ilen, size_t *length)
33-
{
34-
return tutf8e_buffer_length(iso_8859_11_utf8, i, ilen, length);
35-
}
36-
37-
int tutf8e_buffer_encode_iso_8859_11(char *output, size_t *olen, const char *input, size_t ilen)
38-
{
39-
return tutf8e_buffer_encode(iso_8859_11_utf8, input, ilen, output, olen);
40-
}
41-
42-
char * tutf8e_string_encode_iso_8859_11_realloc(char *input)
43-
{
44-
size_t ilen = 0;
45-
size_t olen = 0;
46-
if (input && !tutf8e_string_length(iso_8859_11_utf8, input, &ilen, &olen) && ilen && olen && ilen!=olen) {
47-
char * output = malloc(olen + 1);
48-
if (output && !tutf8e_buffer_encode(iso_8859_11_utf8, input, ilen, output, &olen)) {
49-
free(input);
50-
output[olen] = 0;
51-
return output;
52-
}
53-
free(output);
54-
}
55-
return input;
56-
}
23+
const TUTF8encoder tutf8e_encoder_iso_8859_11 = (TUTF8encoder) tutf8e_iso_8859_11_utf8;

lib/tutf8e/src/iso_8859_13.c

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
#include <tutf8e.h>
22

3-
#include <string.h> /* strlen */
4-
#include <stdlib.h> /* malloc/free */
5-
6-
static const uint16_t iso_8859_13_utf8[256] =
3+
static const uint16_t tutf8e_iso_8859_13_utf8[256] =
74
{
85
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
96
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
@@ -23,34 +20,4 @@ static const uint16_t iso_8859_13_utf8[256] =
2320
0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7, 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x2019,
2421
};
2522

26-
int tutf8e_string_encode_iso_8859_13(char *output, size_t olen, const char *input)
27-
{
28-
size_t len = strlen(input) + 1;
29-
return tutf8e_buffer_encode(iso_8859_13_utf8, input, len, output, &olen);
30-
}
31-
32-
int tutf8e_buffer_length_iso_8859_13(const char *i, size_t ilen, size_t *length)
33-
{
34-
return tutf8e_buffer_length(iso_8859_13_utf8, i, ilen, length);
35-
}
36-
37-
int tutf8e_buffer_encode_iso_8859_13(char *output, size_t *olen, const char *input, size_t ilen)
38-
{
39-
return tutf8e_buffer_encode(iso_8859_13_utf8, input, ilen, output, olen);
40-
}
41-
42-
char * tutf8e_string_encode_iso_8859_13_realloc(char *input)
43-
{
44-
size_t ilen = 0;
45-
size_t olen = 0;
46-
if (input && !tutf8e_string_length(iso_8859_13_utf8, input, &ilen, &olen) && ilen && olen && ilen!=olen) {
47-
char * output = malloc(olen + 1);
48-
if (output && !tutf8e_buffer_encode(iso_8859_13_utf8, input, ilen, output, &olen)) {
49-
free(input);
50-
output[olen] = 0;
51-
return output;
52-
}
53-
free(output);
54-
}
55-
return input;
56-
}
23+
const TUTF8encoder tutf8e_encoder_iso_8859_13 = (TUTF8encoder) tutf8e_iso_8859_13_utf8;

0 commit comments

Comments
 (0)