parsefile
struct parsefile *savetopfile;
parsenextc = parsefile->buf;
if (parsefile->fd == 0 && el) {
memcpy(parsefile->buf, rl_cp, nr);
nr = read(parsefile->fd, parsefile->buf, BUFSIZ);
if (parsefile->fd == 0 && errno == EWOULDBLOCK) {
while (parsefile->strpush) {
if (parsenleft == -1 && parsefile->strpush->ap != NULL)
if (parsenleft == EOF_NLEFT || parsefile->buf == NULL)
p = parsefile->buf + (parsenextc - parsefile->buf);
if (parsefile->fd == 0 && hist &&
if (parsefile->strpush)
if (parsenleft == EOF_NLEFT || parsefile->buf == NULL)
if (parsefile->strpush) {
sp->prev = parsefile->strpush;
parsefile->strpush = sp;
sp = parsefile->strpush = &(parsefile->basestrpush);
struct strpush *sp = parsefile->strpush;
parsefile->strpush = sp->prev;
if (sp != &(parsefile->basestrpush))
parsefile->buf = ckmalloc(BUFSIZ + 1);
if (parsefile->fd > 0)
close(parsefile->fd);
parsefile->fd = fd;
if (parsefile->buf == NULL)
parsefile->buf = ckmalloc(BUFSIZ + 1);
parsefile->buf = NULL;
struct parsefile *pf;
parsefile->nleft = parsenleft;
parsefile->lleft = parselleft;
parsefile->nextc = parsenextc;
parsefile->linno = plinno;
pf = (struct parsefile *)ckmalloc(sizeof (struct parsefile));
pf->prev = parsefile;
parsefile = pf;
struct parsefile *pf = parsefile;
parsefile = pf->prev;
parsenleft = parsefile->nleft;
parselleft = parsefile->lleft;
parsenextc = parsefile->nextc;
plinno = parsefile->linno;
struct parsefile *
return parsefile;
popfilesupto(struct parsefile *file)
while (parsefile != file && parsefile != &basepf)
if (parsefile != file)
while (parsefile != &basepf)
if (parsefile->fd > 0) {
close(parsefile->fd);
parsefile->fd = 0;
struct parsefile *prev; /* preceding file on stack */
static struct parsefile basepf = { /* top level input file */
static struct parsefile *parsefile = &basepf; /* current input file */
struct parsefile;
struct parsefile *getcurrentfile(void);
void popfilesupto(struct parsefile *);
struct parsefile *const savetopfile = getcurrentfile();
struct parsefile *const savetopfile = getcurrentfile();
warncount += parsefile(file);
static int parsefile(FILE *);