Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | #include <config.h> | - |
19 | | - |
20 | | - |
21 | #include "unistr.h" | - |
22 | | - |
23 | int | - |
24 | u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n) | - |
25 | { | - |
26 | uint8_t c = *s; | - |
27 | | - |
28 | if (c < 0x80)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
29 | { | - |
30 | *puc = c; | - |
31 | return 1; never executed: return 1; | 0 |
32 | } | - |
33 | else if (c >= 0xc2)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
34 | { | - |
35 | if (c < 0xe0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
36 | { | - |
37 | if (n >= 2)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
38 | { | - |
39 | if ((s[1] ^ 0x80) < 0x40)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
40 | { | - |
41 | *puc = ((unsigned int) (c & 0x1f) << 6) | - |
42 | | (unsigned int) (s[1] ^ 0x80); | - |
43 | return 2; never executed: return 2; | 0 |
44 | } | - |
45 | | - |
46 | } never executed: end of block | 0 |
47 | else | - |
48 | { | - |
49 | | - |
50 | *puc = 0xfffd; | - |
51 | return -2; never executed: return -2; | 0 |
52 | } | - |
53 | } | - |
54 | else if (c < 0xf0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
55 | { | - |
56 | if (n >= 2)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
57 | { | - |
58 | if ((s[1] ^ 0x80) < 0x40TRUE | never evaluated | FALSE | never evaluated |
| 0 |
59 | && (c >= 0xe1 || s[1] >= 0xa0)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
60 | && (c != 0xed || s[1] < 0xa0))TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
61 | { | - |
62 | if (n >= 3)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
63 | { | - |
64 | if ((s[2] ^ 0x80) < 0x40)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
65 | { | - |
66 | *puc = ((unsigned int) (c & 0x0f) << 12) | - |
67 | | ((unsigned int) (s[1] ^ 0x80) << 6) | - |
68 | | (unsigned int) (s[2] ^ 0x80); | - |
69 | return 3; never executed: return 3; | 0 |
70 | } | - |
71 | | - |
72 | } never executed: end of block | 0 |
73 | else | - |
74 | { | - |
75 | | - |
76 | *puc = 0xfffd; | - |
77 | return -2; never executed: return -2; | 0 |
78 | } | - |
79 | } | - |
80 | | - |
81 | } never executed: end of block | 0 |
82 | else | - |
83 | { | - |
84 | | - |
85 | *puc = 0xfffd; | - |
86 | return -2; never executed: return -2; | 0 |
87 | } | - |
88 | } | - |
89 | else if (c < 0xf8)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
90 | { | - |
91 | if (n >= 2)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
92 | { | - |
93 | if ((s[1] ^ 0x80) < 0x40TRUE | never evaluated | FALSE | never evaluated |
| 0 |
94 | && (c >= 0xf1 || s[1] >= 0x90)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
95 | && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90)))TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | never evaluated |
| 0 |
96 | { | - |
97 | if (n >= 3)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
98 | { | - |
99 | if ((s[2] ^ 0x80) < 0x40)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
100 | { | - |
101 | if (n >= 4)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
102 | { | - |
103 | if ((s[3] ^ 0x80) < 0x40)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
104 | { | - |
105 | *puc = ((unsigned int) (c & 0x07) << 18) | - |
106 | | ((unsigned int) (s[1] ^ 0x80) << 12) | - |
107 | | ((unsigned int) (s[2] ^ 0x80) << 6) | - |
108 | | (unsigned int) (s[3] ^ 0x80); | - |
109 | return 4; never executed: return 4; | 0 |
110 | } | - |
111 | | - |
112 | } never executed: end of block | 0 |
113 | else | - |
114 | { | - |
115 | | - |
116 | *puc = 0xfffd; | - |
117 | return -2; never executed: return -2; | 0 |
118 | } | - |
119 | } | - |
120 | | - |
121 | } never executed: end of block | 0 |
122 | else | - |
123 | { | - |
124 | | - |
125 | *puc = 0xfffd; | - |
126 | return -2; never executed: return -2; | 0 |
127 | } | - |
128 | } | - |
129 | | - |
130 | } never executed: end of block | 0 |
131 | else | - |
132 | { | - |
133 | | - |
134 | *puc = 0xfffd; | - |
135 | return -2; never executed: return -2; | 0 |
136 | } | - |
137 | } | - |
138 | } never executed: end of block | 0 |
139 | | - |
140 | *puc = 0xfffd; | - |
141 | return -1; never executed: return -1; | 0 |
142 | } | - |
| | |