2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
10 #include <afsconfig.h>
11 #include <afs/param.h>
17 #if !defined(AFS_NT40_ENV)
20 printf("b32 not required for this operating system.\n");
32 printf("Usage: %s -s n [n ...] (converts int to base 32 string)\n", prog);
33 printf("Usage: %s -i s [s ...] (converts base 32 string to int)\n", prog);
34 printf("Usage: %s -c n [n ...] (converts to base 32 and back)\n", prog);
36 ("Usage: %s -r low high inc (verify converter using range and inc)\n",
41 void btoi(int ac, char **av);
42 void itob(int ac, char **av);
43 void check(int ac, char **av);
44 void verifyRange(int ac, char **av);
47 main(int ac, char **av)
52 if (!strcmp(av[1], "-s"))
54 else if (!strcmp(av[1], "-i"))
56 else if (!strcmp(av[1], "-c"))
58 else if (!strcmp(av[1], "-r"))
67 btoi(int ac, char **av)
72 printf("%d\n", base32_to_int(av[2]));
74 for (i = 2; i < ac; i++)
75 printf("%s: %d\n", av[i], base32_to_int(av[i]));
80 itob(int ac, char **av)
86 printf("%s\n", int_to_base32(str, atoi(av[2])));
88 for (i = 2; i < ac; i++)
89 printf("%d: %s\n", atoi(av[i]), int_to_base32(str, atoi(av[i])));
94 check(int ac, char **av)
100 printf("%10s %10s %10s\n", "input", "base32", "output");
101 for (i = 2; i < ac; i++) {
103 (void)int_to_base32(str, in);
104 out = base32_to_int(str);
105 printf("%10d %10s %10d\n", in, str, out);
109 #define PROGRESS 1000000
111 verifyRange(int ac, char **av)
113 unsigned int inc, low, high;
115 unsigned int in, out;
121 low = (unsigned int)atoi(av[2]);
122 high = (unsigned int)atoi(av[3]);
123 inc = (unsigned int)atoi(av[4]);
126 for (in = low; in <= high; in += inc) {
128 if (n % PROGRESS == 0)
130 (void)int_to_base32(str, in);
131 out = base32_to_int(str);
133 printf("\n\nERROR: in=%u, str='%s', out=%u\n", in, str, out);
137 printf("\nCOMPLETE - no errors found in range %u,%u,%u\n", low, high,