aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/numconvert.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/numconvert.c')
-rw-r--r--src/numconvert.c49
1 files changed, 48 insertions, 1 deletions
diff --git a/src/numconvert.c b/src/numconvert.c
index 16b7bb1..2efbeb8 100644
--- a/src/numconvert.c
+++ b/src/numconvert.c
@@ -158,8 +158,8 @@ int main(int argc, char * argv[])
158 158
159 opt = MY_OPT_SPACE | MY_OPT_LIMIT; 159 opt = MY_OPT_SPACE | MY_OPT_LIMIT;
160 base = 0; 160 base = 0;
161 order = "abxod";
162 bases = 0; 161 bases = 0;
162 order = NULL;
163 163
164 while((c = getopt_long(argc, argv, short_opt, long_opt, &opt_index)) != -1) 164 while((c = getopt_long(argc, argv, short_opt, long_opt, &opt_index)) != -1)
165 { 165 {
@@ -258,6 +258,53 @@ int main(int argc, char * argv[])
258 }; 258 };
259 }; 259 };
260 260
261 if ((order))
262 {
263 bases = 0;
264 for(x = 0; (x < (int)strlen(order)); x++)
265 {
266 switch(order[x])
267 {
268 case 'B':
269 case 'b':
270 opt |= MY_OPT_BIN;
271 bases++;
272 break;
273
274 case 'D':
275 case 'd':
276 opt |= MY_OPT_DEC;
277 bases++;
278 break;
279
280 case 'X':
281 case 'x':
282 opt |= MY_OPT_HEX;
283 bases++;
284 break;
285
286 case 'O':
287 case 'o':
288 opt |= MY_OPT_OCT;
289 bases++;
290 break;
291
292 case 'A':
293 case 'a':
294 opt |= MY_OPT_ASCII;
295 bases++;
296 break;
297
298 default:
299 fprintf(stderr, "%s: unknown order option -- %c\n", PROGRAM_NAME, order[x]);
300 fprintf(stderr, "Try `%s --help' for more information.\n", PROGRAM_NAME);
301 return(1);
302 };
303 };
304 };
305 if (!(order))
306 order = "abxod";
307
261 if (!(opt & (MY_OPT_BIN|MY_OPT_DEC|MY_OPT_HEX|MY_OPT_OCT|MY_OPT_ASCII))) 308 if (!(opt & (MY_OPT_BIN|MY_OPT_DEC|MY_OPT_HEX|MY_OPT_OCT|MY_OPT_ASCII)))
262 { 309 {
263 opt |= (MY_OPT_BIN|MY_OPT_DEC|MY_OPT_HEX|MY_OPT_OCT|MY_OPT_ASCII); 310 opt |= (MY_OPT_BIN|MY_OPT_DEC|MY_OPT_HEX|MY_OPT_OCT|MY_OPT_ASCII);