mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-29 11:02:44 +00:00
Revert the last commit, it made the Bruce filter flip:
PR7402 was even less suitable for committing almost verbatim than at first appearance. Rev.1.9 of primes.c has at least the following defects. - no update for man page. - no update for usage string. - blowing away of a previous commit to change EOF to -1 in getopt() test. - blowing away of a previous commit to fix printf format errors. - new printf format errors. - one gratuitous ANSIism. - two style bugs. - ... and a partition in a pear tree. PR: 7402
This commit is contained in:
parent
2a63083586
commit
7885089c3c
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=38199
@ -101,8 +101,8 @@ extern ubig *pr_limit; /* largest prime in the prime array */
|
||||
extern char pattern[];
|
||||
extern int pattern_size; /* length of pattern array */
|
||||
|
||||
void primes __P((ubig, ubig, int));
|
||||
ubig read_num_buf __P((int));
|
||||
void primes __P((ubig, ubig));
|
||||
ubig read_num_buf __P((void));
|
||||
void usage __P((void));
|
||||
|
||||
int
|
||||
@ -114,13 +114,9 @@ main(argc, argv)
|
||||
ubig stop; /* don't generate at or above this value */
|
||||
int ch;
|
||||
char *p;
|
||||
int hexa = 0;
|
||||
|
||||
while ((ch = getopt(argc, argv, "h")) != EOF)
|
||||
while ((ch = getopt(argc, argv, "")) != -1)
|
||||
switch (ch) {
|
||||
case 'h':
|
||||
hexa = 1;
|
||||
break;
|
||||
case '?':
|
||||
default:
|
||||
usage();
|
||||
@ -144,14 +140,14 @@ main(argc, argv)
|
||||
errx(1, "negative numbers aren't permitted.");
|
||||
|
||||
errno = 0;
|
||||
start = strtoul(argv[0], &p, 0);
|
||||
start = strtoul(argv[0], &p, 10);
|
||||
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, 0);
|
||||
stop = strtoul(argv[1], &p, 10);
|
||||
if (errno)
|
||||
err(1, "%s", argv[1]);
|
||||
if (*p != '\0')
|
||||
@ -163,14 +159,14 @@ main(argc, argv)
|
||||
errx(1, "negative numbers aren't permitted.");
|
||||
|
||||
errno = 0;
|
||||
start = strtoul(argv[0], &p, 0);
|
||||
start = strtoul(argv[0], &p, 10);
|
||||
if (errno)
|
||||
err(1, "%s", argv[0]);
|
||||
if (*p != '\0')
|
||||
errx(1, "%s: illegal numeric format.", argv[0]);
|
||||
break;
|
||||
case 0:
|
||||
start = read_num_buf(hexa);
|
||||
start = read_num_buf();
|
||||
break;
|
||||
default:
|
||||
usage();
|
||||
@ -178,7 +174,7 @@ main(argc, argv)
|
||||
|
||||
if (start > stop)
|
||||
errx(1, "start value must be less than stop value.");
|
||||
primes(start, stop, hexa);
|
||||
primes(start, stop);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
@ -187,7 +183,7 @@ main(argc, argv)
|
||||
* This routine returns a number n, where 0 <= n && n <= BIG.
|
||||
*/
|
||||
ubig
|
||||
read_num_buf(int hexa)
|
||||
read_num_buf()
|
||||
{
|
||||
ubig val;
|
||||
char *p, buf[100]; /* > max number of digits. */
|
||||
@ -204,7 +200,7 @@ read_num_buf(int hexa)
|
||||
if (*p == '-')
|
||||
errx(1, "negative numbers aren't permitted.");
|
||||
errno = 0;
|
||||
val = strtoul(buf, &p, 0);
|
||||
val = strtoul(buf, &p, 10);
|
||||
if (errno)
|
||||
err(1, "%s", buf);
|
||||
if (*p != '\n')
|
||||
@ -217,10 +213,9 @@ read_num_buf(int hexa)
|
||||
* primes - sieve and print primes from start up to and but not including stop
|
||||
*/
|
||||
void
|
||||
primes(start, stop, hexa)
|
||||
primes(start, stop)
|
||||
ubig start; /* where to start generating */
|
||||
ubig stop; /* don't generate at or above this value */
|
||||
int hexa;
|
||||
{
|
||||
register char *q; /* sieve spot */
|
||||
register ubig factor; /* index and factor */
|
||||
@ -261,7 +256,7 @@ primes(start, stop, hexa)
|
||||
for (p = &prime[0], factor = prime[0];
|
||||
factor < stop && p <= pr_limit; factor = *(++p)) {
|
||||
if (factor >= start) {
|
||||
printf(hexa ? "0x%x\n" : "%u\n", factor);
|
||||
printf("%lu\n", factor);
|
||||
}
|
||||
}
|
||||
/* return early if we are done */
|
||||
@ -324,7 +319,7 @@ primes(start, stop, hexa)
|
||||
*/
|
||||
for (q = table; q < tab_lim; ++q, start+=2) {
|
||||
if (*q) {
|
||||
printf(hexa ? "0x%x\n" : "%u\n", start);
|
||||
printf("%lu\n", start);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user