|
|
researchv8 Dan Cross
#
/*
*
* UNIX debugger
*
*/
#include "defs.h"
char line[LINSIZ];
int infile;
char *lp;
char peekc,lastc = EOR;
int eof;
/* input routines */
eol(c)
char c;
{
return(c==EOR || c==';');
}
int
rdc()
{
do {
readchar();
} while (lastc==SP || lastc==TB);
return(lastc);
}
reread()
{
peekc = lastc;
}
clrinp()
{
lp = 0;
peekc = 0;
}
int
readchar()
{
if (eof)
lastc=0;
else if (peekc) {
lastc = peekc;
peekc = 0;
}
else {
if (lp==0) {
lp=line;
do {
eof = read(infile,lp,1)==0;
if (mkfault)
error(0);
} while (eof==0 && *lp++!=EOR);
*lp=0;
lp=line;
}
if ((lastc = *lp) != 0)
lp++;
}
return(lastc);
}
nextchar()
{
if (eol(rdc())) {
reread();
return(0);
}
return(lastc);
}
quotchar()
{
if (readchar()=='\\')
return(readchar());
else if (lastc=='\'')
return(0);
else
return(lastc);
}
getformat(deformat)
char *deformat;
{
register char *fptr;
register BOOL quote;
fptr=deformat;
quote=FALSE;
while ((quote ? readchar()!=EOR : !eol(readchar())))
if ((*fptr++ = lastc)=='"')
quote = ~quote;
lp--;
if (fptr!=deformat)
*fptr = '\0';
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.