1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20: #include <stdio.h>
21: #ifdef HAVE_CONFIG_H
22: #include "config.h"
23: #endif
24: #include "libiberty.h"
25: #include "safe-ctype.h"
26:
27: #if EOF != -1
28: #error "hex.c requires EOF == -1"
29: #endif
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73: #if HOST_CHARSET == HOST_CHARSET_ASCII
74:
75: const unsigned char _hex_value[_hex_array_size] =
76: {
77: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
78: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
79: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
80: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
81: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
82: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
83: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
84: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
85:
86: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
87: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
88: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
89: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
90: 0, 1, 2, 3,
91: 4, 5, 6, 7,
92: 8, 9, _hex_bad, _hex_bad,
93: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
94:
95: _hex_bad, 10, 11, 12,
96: 13, 14, 15, _hex_bad,
97: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
98: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
99: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
100: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
101: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
102: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
103:
104: _hex_bad, 10, 11, 12,
105: 13, 14, 15, _hex_bad,
106: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
107: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
108: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
109: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
110: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
111: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
112:
113:
114: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
115: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
116: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
117: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
118: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
119: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
120: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
121: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
122:
123: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
124: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
125: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
126: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
127: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
128: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
129: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
130: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
131:
132: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
133: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
134: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
135: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
136: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
137: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
138: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
139: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
140:
141: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
142: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
143: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
144: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
145: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
146: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
147: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
148: _hex_bad, _hex_bad, _hex_bad, _hex_bad,
149: };
150: #define HEX_TABLE_INITIALIZED
151:
152: #else
153:
154: unsigned char _hex_value[_hex_array_size];
155:
156: #endif
157:
158: void
159: hex_init (void)
160: {
161: #ifndef HEX_TABLE_INITIALIZED
162: int i;
163:
164: for (i=0; i<_hex_array_size; i++)
165: {
166: switch (i)
167: {
168: case '0': _hex_value[i] = 0; break;
169: case '1': _hex_value[i] = 1; break;
170: case '2': _hex_value[i] = 2; break;
171: case '3': _hex_value[i] = 3; break;
172: case '4': _hex_value[i] = 4; break;
173: case '5': _hex_value[i] = 5; break;
174: case '6': _hex_value[i] = 6; break;
175: case '7': _hex_value[i] = 7; break;
176: case '8': _hex_value[i] = 8; break;
177: case '9': _hex_value[i] = 9; break;
178:
179: case 'a': case 'A': _hex_value[i] = 10; break;
180: case 'b': case 'B': _hex_value[i] = 11; break;
181: case 'c': case 'C': _hex_value[i] = 12; break;
182: case 'd': case 'D': _hex_value[i] = 13; break;
183: case 'e': case 'E': _hex_value[i] = 14; break;
184: case 'f': case 'F': _hex_value[i] = 15; break;
185:
186: default:
187: _hex_value[i] = _hex_bad;
188: break;
189: }
190: }
191: #endif
192: }