bc: cleanup, make sure to run 9 dc
This commit is contained in:
parent
6ef0b1cabd
commit
56e6f8f994
1 changed files with 30 additions and 31 deletions
61
src/cmd/bc.y
61
src/cmd/bc.y
|
|
@ -786,9 +786,10 @@ loop:
|
||||||
peekc = -1;
|
peekc = -1;
|
||||||
if(ch >= 0)
|
if(ch >= 0)
|
||||||
return ch;
|
return ch;
|
||||||
|
|
||||||
ifile++;
|
ifile++;
|
||||||
if(ifile > sargc) {
|
if(ifile >= sargc) {
|
||||||
if(ifile >= sargc+2)
|
if(ifile >= sargc+1)
|
||||||
getout();
|
getout();
|
||||||
in = &bstdin;
|
in = &bstdin;
|
||||||
Binit(in, 0, OREAD);
|
Binit(in, 0, OREAD);
|
||||||
|
|
@ -802,6 +803,7 @@ loop:
|
||||||
ss = sargv[ifile];
|
ss = sargv[ifile];
|
||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
|
fprint(2, "open %s: %r\n", sargv[ifile]);
|
||||||
yyerror("cannot open input file");
|
yyerror("cannot open input file");
|
||||||
return 0; /* shut up ken */
|
return 0; /* shut up ken */
|
||||||
}
|
}
|
||||||
|
|
@ -871,7 +873,7 @@ yyerror(char *s, ...)
|
||||||
{
|
{
|
||||||
if(ifile > sargc)
|
if(ifile > sargc)
|
||||||
ss = "teletype";
|
ss = "teletype";
|
||||||
Bprint(&bstdout, "c[%s on line %d, %s]pc\n", s, ln+1, ss);
|
Bprint(&bstdout, "c[%s:%d, %s]pc\n", s, ln+1, ss);
|
||||||
Bflush(&bstdout);
|
Bflush(&bstdout);
|
||||||
cp = cary;
|
cp = cary;
|
||||||
crs = rcrs;
|
crs = rcrs;
|
||||||
|
|
@ -905,15 +907,15 @@ yyinit(int argc, char **argv)
|
||||||
{
|
{
|
||||||
Binit(&bstdout, 1, OWRITE);
|
Binit(&bstdout, 1, OWRITE);
|
||||||
sargv = argv;
|
sargv = argv;
|
||||||
sargc = argc - 1;
|
sargc = argc;
|
||||||
if(sargc == 0) {
|
if(sargc == 0) {
|
||||||
in = &bstdin;
|
in = &bstdin;
|
||||||
Binit(in, 0, OREAD);
|
Binit(in, 0, OREAD);
|
||||||
} else if((in = Bopen(sargv[1], OREAD)) == 0)
|
} else if((in = Bopen(sargv[0], OREAD)) == 0)
|
||||||
yyerror("cannot open input file");
|
yyerror("cannot open input file");
|
||||||
ifile = 1;
|
ifile = 0;
|
||||||
ln = 0;
|
ln = 0;
|
||||||
ss = sargv[1];
|
ss = sargv[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -941,31 +943,28 @@ main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int p[2];
|
int p[2];
|
||||||
|
|
||||||
while(argc > 1 && *argv[1] == '-') {
|
ARGBEGIN{
|
||||||
switch(argv[1][1]) {
|
case 'd':
|
||||||
case 'd':
|
bdebug++;
|
||||||
bdebug++;
|
break;
|
||||||
break;
|
case 'c':
|
||||||
case 'c':
|
cflag++;
|
||||||
cflag++;
|
break;
|
||||||
break;
|
case 'l':
|
||||||
case 'l':
|
lflag++;
|
||||||
lflag++;
|
break;
|
||||||
break;
|
case 's':
|
||||||
case 's':
|
sflag++;
|
||||||
sflag++;
|
break;
|
||||||
break;
|
default:
|
||||||
default:
|
fprint(2, "Usage: bc [-l] [-c] [file ...]\n");
|
||||||
fprint(2, "Usage: bc [-l] [-c] [file ...]\n");
|
exits("usage");
|
||||||
exits("usage");
|
}ARGEND
|
||||||
}
|
|
||||||
argc--;
|
|
||||||
argv++;
|
|
||||||
}
|
|
||||||
if(lflag) {
|
if(lflag) {
|
||||||
argv--;
|
|
||||||
argc++;
|
argc++;
|
||||||
argv[1] = unsharp("#9/lib/bclib");
|
argv--;
|
||||||
|
*argv = unsharp("#9/lib/bclib");
|
||||||
}
|
}
|
||||||
if(cflag) {
|
if(cflag) {
|
||||||
yyinit(argc, argv);
|
yyinit(argc, argv);
|
||||||
|
|
@ -985,5 +984,5 @@ main(int argc, char **argv)
|
||||||
dup(p[0], 0);
|
dup(p[0], 0);
|
||||||
close(p[0]);
|
close(p[0]);
|
||||||
close(p[1]);
|
close(p[1]);
|
||||||
execl("dc", "dc", nil);
|
execl(unsharp("#9/bin/dc"), "dc", nil);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue