File: charsets.h

package info (click to toggle)
termrec 0.19-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,148 kB
  • sloc: ansic: 8,430; makefile: 181; perl: 16; sh: 15
file content (43 lines) | stat: -rw-r--r-- 1,929 bytes parent folder | download | duplicates (4)
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
43
extern unsigned short charset_vt100[128];
extern unsigned short charset_cp437[256];

// TF8, the "tf" in "utf8"
#define TF8(vb, uv)     do                      \
{                                               \
    if ((uv)<0x80)                              \
    {                                           \
        *(vb)++=(uv);                           \
    }                                           \
    else if ((uv) < 0x800) {                    \
        *(vb)++ = ( (uv) >>  6)         | 0xc0; \
        *(vb)++ = ( (uv)        & 0x3f) | 0x80; \
    }                                           \
    else if ((uv) < 0x10000) {                  \
        *(vb)++ = ( (uv) >> 12)         | 0xe0; \
        *(vb)++ = (((uv) >>  6) & 0x3f) | 0x80; \
        *(vb)++ = ( (uv)        & 0x3f) | 0x80; \
    }                                           \
    else /*if ((uv) < 0x200000)*/ {             \
        *(vb)++ = ( (uv) >> 18)         | 0xf0; \
        *(vb)++ = (((uv) >> 12) & 0x3f) | 0x80; \
        *(vb)++ = (((uv) >>  6) & 0x3f) | 0x80; \
        *(vb)++ = ( (uv)        & 0x3f) | 0x80; \
    }                                           \
} while (0)
#if 0 // we do only Unicode, not full TF8
    else if ((uv) < 0x4000000) {                \
        *(vb)++ = ( (uv) >> 24)         | 0xf8; \
        *(vb)++ = (((uv) >> 18) & 0x3f) | 0x80; \
        *(vb)++ = (((uv) >> 12) & 0x3f) | 0x80; \
        *(vb)++ = (((uv) >>  6) & 0x3f) | 0x80; \
        *(vb)++ = ( (uv)        & 0x3f) | 0x80; \
    }                                           \
    else if ((uv) < 0x80000000) {               \
        *(vb)++ = ( (uv) >> 30)         | 0xfc; \
        *(vb)++ = (((uv) >> 24) & 0x3f) | 0x80; \
        *(vb)++ = (((uv) >> 18) & 0x3f) | 0x80; \
        *(vb)++ = (((uv) >> 12) & 0x3f) | 0x80; \
        *(vb)++ = (((uv) >>  6) & 0x3f) | 0x80; \
        *(vb)++ = ( (uv)        & 0x3f) | 0x80; \
    }
#endif