00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <stdio.h>
00025 #include "libiberty.h"
00026 #include "safe-ctype.h"
00027
00028 #if EOF != -1
00029 #error "hex.c requires EOF == -1"
00030 #endif
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 #if HOST_CHARSET == HOST_CHARSET_ASCII
00075
00076 const unsigned char _hex_value[_hex_array_size] =
00077 {
00078 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00079 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00080 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00081 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00082 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00083 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00084 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00085 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00086
00087 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00088 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00089 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00090 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00091 0, 1, 2, 3,
00092 4, 5, 6, 7,
00093 8, 9, _hex_bad, _hex_bad,
00094 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00095
00096 _hex_bad, 10, 11, 12,
00097 13, 14, 15, _hex_bad,
00098 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00099 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00100 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00101 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00102 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00103 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00104
00105 _hex_bad, 10, 11, 12,
00106 13, 14, 15, _hex_bad,
00107 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00108 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00109 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00110 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00111 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00112 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00113
00114
00115 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00116 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00117 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00118 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00119 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00120 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00121 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00122 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00123
00124 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00125 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00126 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00127 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00128 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00129 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00130 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00131 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00132
00133 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00134 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00135 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00136 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00137 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00138 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00139 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00140 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00141
00142 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00143 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00144 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00145 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00146 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00147 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00148 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00149 _hex_bad, _hex_bad, _hex_bad, _hex_bad,
00150 };
00151 #define HEX_TABLE_INITIALIZED
00152
00153 #else
00154
00155 unsigned char _hex_value[_hex_array_size];
00156
00157 #endif
00158
00159 void
00160 hex_init ()
00161 {
00162 #ifndef HEX_TABLE_INITIALIZED
00163 int i;
00164
00165 for (i=0; i<_hex_array_size; i++)
00166 {
00167 switch (i)
00168 {
00169 case '0': _hex_value[i] = 0; break;
00170 case '1': _hex_value[i] = 1; break;
00171 case '2': _hex_value[i] = 2; break;
00172 case '3': _hex_value[i] = 3; break;
00173 case '4': _hex_value[i] = 4; break;
00174 case '5': _hex_value[i] = 5; break;
00175 case '6': _hex_value[i] = 6; break;
00176 case '7': _hex_value[i] = 7; break;
00177 case '8': _hex_value[i] = 8; break;
00178 case '9': _hex_value[i] = 9; break;
00179
00180 case 'a': case 'A': _hex_value[i] = 10; break;
00181 case 'b': case 'B': _hex_value[i] = 11; break;
00182 case 'c': case 'C': _hex_value[i] = 12; break;
00183 case 'd': case 'D': _hex_value[i] = 13; break;
00184 case 'e': case 'E': _hex_value[i] = 14; break;
00185 case 'f': case 'F': _hex_value[i] = 15; break;
00186
00187 default:
00188 _hex_value[i] = _hex_bad;
00189 break;
00190 }
00191 }
00192 #endif
00193 }