equal
deleted
inserted
replaced
105 case '6': return 58; |
105 case '6': return 58; |
106 case '7': return 59; |
106 case '7': return 59; |
107 case '8': return 60; |
107 case '8': return 60; |
108 case '9': return 61; |
108 case '9': return 61; |
109 case '+': return 62; |
109 case '+': return 62; |
110 case '-': return 63; |
110 case '/': return 63; |
111 default: |
111 default: |
112 return 0; |
112 return 0; |
113 } |
113 } |
114 } |
114 } |
115 |
115 |
116 static int str2int(const char *str) |
116 int str2int(const char *str) |
117 { |
117 { |
118 int i = 0; |
118 int i = 0; |
119 int length; |
119 int length; |
120 int val = 0; |
120 int val = 0; |
121 |
121 |
153 |
153 |
154 out = (char *) malloc(length); |
154 out = (char *) malloc(length); |
155 fread(out, length, 1, fdefs); |
155 fread(out, length, 1, fdefs); |
156 return out; |
156 return out; |
157 } |
157 } |
|
158 |
|
159 static char num_to_ia5char(int n) |
|
160 { |
|
161 /* From RFC 1421 */ |
|
162 if (n >= 0 && n <= 25) |
|
163 return 'A' + n; |
|
164 else if (n >= 26 && n <= 51) |
|
165 return 'a' + (n - 26); |
|
166 else if (n >= 52 && n <= 61) |
|
167 return '0' + (n - 52); |
|
168 else if (n == 62) |
|
169 return '+'; |
|
170 else if (n == 63) |
|
171 return '/'; |
|
172 else |
|
173 return '!'; /* Error */ |
|
174 } |
|
175 |
|
176 int num_to_ia5(char *dest, int n) |
|
177 { |
|
178 char tmp[20]; |
|
179 |
|
180 int i, max; |
|
181 |
|
182 for(i =0; i <= 10; ++i) |
|
183 { |
|
184 tmp[i] = num_to_ia5char(n % 64); |
|
185 if (n < 64) |
|
186 break; |
|
187 n /= 64; |
|
188 } |
|
189 |
|
190 max = i; |
|
191 |
|
192 /* reverse the number */ |
|
193 for (i=0; i<=max; ++i) |
|
194 dest[i] = tmp[max-i]; |
|
195 |
|
196 /* Ending '\0' */ |
|
197 dest[max+1] = '\0'; |
|
198 return max; |
|
199 } |