summaryrefslogtreecommitdiffstats
path: root/games/primes
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>1999-01-06 08:14:26 +0000
committerimp <imp@FreeBSD.org>1999-01-06 08:14:26 +0000
commit4695982235738320dd9801a117ce0e700b0b2fdf (patch)
treedf7c21f08679025acb34002e2f1dee12f7b97fc0 /games/primes
parent1eb0469a28ede5948a08d146e27a84ea0d435bf3 (diff)
downloadFreeBSD-src-4695982235738320dd9801a117ce0e700b0b2fdf.zip
FreeBSD-src-4695982235738320dd9801a117ce0e700b0b2fdf.tar.gz
added -h flag to allow for hexidecimal output.
Use '0' for base rather than 10 to allow for more flexible input bases. Inspired by changes in PR 7402, but mostly redone by me to get past bde filter. Submitted by: Timo J. Rinne PR: 7402
Diffstat (limited to 'games/primes')
-rw-r--r--games/primes/primes.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/games/primes/primes.c b/games/primes/primes.c
index e928885..f204b37 100644
--- a/games/primes/primes.c
+++ b/games/primes/primes.c
@@ -101,6 +101,8 @@ extern ubig *pr_limit; /* largest prime in the prime array */
extern char pattern[];
extern int pattern_size; /* length of pattern array */
+int hflag;
+
void primes __P((ubig, ubig));
ubig read_num_buf __P((void));
void usage __P((void));
@@ -115,8 +117,11 @@ main(argc, argv)
int ch;
char *p;
- while ((ch = getopt(argc, argv, "")) != -1)
+ while ((ch = getopt(argc, argv, "h")) != -1)
switch (ch) {
+ case 'h':
+ hflag++;
+ break;
case '?':
default:
usage();
@@ -140,14 +145,14 @@ main(argc, argv)
errx(1, "negative numbers aren't permitted.");
errno = 0;
- start = strtoul(argv[0], &p, 10);
+ start = strtoul(argv[0], &p, 0);
if (errno)
err(1, "%s", argv[0]);
if (*p != '\0')
errx(1, "%s: illegal numeric format.", argv[0]);
errno = 0;
- stop = strtoul(argv[1], &p, 10);
+ stop = strtoul(argv[1], &p, 0);
if (errno)
err(1, "%s", argv[1]);
if (*p != '\0')
@@ -159,7 +164,7 @@ main(argc, argv)
errx(1, "negative numbers aren't permitted.");
errno = 0;
- start = strtoul(argv[0], &p, 10);
+ start = strtoul(argv[0], &p, 0);
if (errno)
err(1, "%s", argv[0]);
if (*p != '\0')
@@ -200,7 +205,7 @@ read_num_buf()
if (*p == '-')
errx(1, "negative numbers aren't permitted.");
errno = 0;
- val = strtoul(buf, &p, 10);
+ val = strtoul(buf, &p, 0);
if (errno)
err(1, "%s", buf);
if (*p != '\n')
@@ -256,7 +261,7 @@ primes(start, stop)
for (p = &prime[0], factor = prime[0];
factor < stop && p <= pr_limit; factor = *(++p)) {
if (factor >= start) {
- printf("%lu\n", factor);
+ printf(hflag ? "0x%x\n" : "%lu\n", factor);
}
}
/* return early if we are done */
@@ -319,7 +324,7 @@ primes(start, stop)
*/
for (q = table; q < tab_lim; ++q, start+=2) {
if (*q) {
- printf("%lu\n", start);
+ printf(hflag ? "0x%x\n" : "%lu\n", start);
}
}
}
@@ -328,6 +333,6 @@ primes(start, stop)
void
usage()
{
- (void)fprintf(stderr, "usage: primes [start [stop]]\n");
+ (void)fprintf(stderr, "usage: primes [-h] [start [stop]]\n");
exit(1);
}
OpenPOWER on IntegriCloud