summaryrefslogtreecommitdiff
path: root/ext/Encode/encode.h
blob: aecc66eafe31c8ea7b3bf5e5d0cb1fcdf4405d98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#ifndef ENCODE_H
#define ENCODE_H
#ifndef U8
typedef unsigned char U8;
#endif

typedef struct encpage_s encpage_t;

struct encpage_s
{
 const U8   *seq;
 encpage_t  *next;
 U8         min;
 U8         max;
 U8         dlen;
 U8         slen;
};

typedef struct encode_s encode_t;
struct encode_s
{
 encpage_t  *t_utf8;
 encpage_t  *f_utf8;
 const U8   *rep;
 int        replen;
 U8         min_el;
 U8         max_el;
 const char *name[2];
};

#ifdef U8
extern int do_encode(encpage_t *enc, const U8 *src, STRLEN *slen,
                     U8 *dst, STRLEN dlen, STRLEN *dout, int approx);

extern void Encode_DefineEncoding(encode_t *enc);
#endif

#define ENCODE_NOSPACE  1
#define ENCODE_PARTIAL  2
#define ENCODE_NOREP    3
#define ENCODE_FALLBACK 4
#endif