new seq from plan 9 (Anthony Martin)

This commit is contained in:
rsc 2006-10-12 01:42:11 +00:00
parent 729e53b9e5
commit 470dce9dee

View file

@ -18,19 +18,19 @@ usage(void)
void
buildfmt(void)
{
int i;
char *dp;
int w, p, maxw, maxp;
static char fmt[16];
char buf[32];
double val;
format = "%g\n";
if(!constant)
return;
maxw = 0;
maxp = 0;
for(i=0; i<=nsteps; i++){
sprint(buf, "%g", min+i*incr);
for(val = min; val <= max; val += incr){
sprint(buf, "%g", val);
if(strchr(buf, 'e')!=0)
return;
dp = strchr(buf,'.');
@ -49,8 +49,9 @@ buildfmt(void)
void
main(int argc, char *argv[]){
int i, j, n;
int j, n;
char buf[256], ffmt[4096];
double val;
ARGBEGIN{
case 'w':
@ -78,15 +79,24 @@ main(int argc, char *argv[]){
fprint(2, "seq: zero increment\n");
exits("zero increment");
}
nsteps = (max-min)/incr+.5;
if(!format)
buildfmt();
for(i=0; i<=nsteps; i++){
n = sprint(buf, format, min+i*incr);
if(incr > 0){
for(val = min; val <= max; val += incr){
n = sprint(buf, format, val);
if(constant)
for(j=0; buf[j]==' '; j++)
buf[j] ='0';
write(1, buf, n);
}
}else{
for(val = min; val >= max; val += incr){
n = sprint(buf, format, val);
if(constant)
for(j=0; buf[j]==' '; j++)
buf[j] ='0';
write(1, buf, n);
}
}
exits(0);
}