Lines Matching defs:parsefile
82 * The parsefile structure pointed to by the global variable parsefile
87 struct parsefile {
88 struct parsefile *prev; /* preceding file on stack */
102 int parsenleft; /* copy of parsefile->nleft */
103 MKINIT int parselleft; /* copy of parsefile->lleft */
104 const char *parsenextc; /* copy of parsefile->nextc */
105 MKINIT struct parsefile basepf; /* top level input file */
107 struct parsefile *parsefile = &basepf; /* current input file */
189 char *buf = parsefile->buf;
194 if (parsefile->fd == 0 && el) {
216 nr = read(parsefile->fd, buf, BUFSIZ - 8);
223 if (parsefile->fd == 0 && errno == EWOULDBLOCK) {
260 while (parsefile->strpush) {
261 if (parsenleft == -1 && parsefile->strpush->ap != NULL)
267 if (parsenleft == EOF_NLEFT || parsefile->buf == NULL)
278 parsefile->nskip = 0;
282 parsenextc += parsefile->nskip;
283 parsefile->nskip = 0;
286 p = parsefile->buf + (parsenextc - parsefile->buf);
302 parsefile->nskip++;
322 if (parsefile->nskip)
343 if (parsefile->fd == 0 && hist && (something || whichprompt == 2)) {
376 struct strpush *sp = parsefile->strpush;
397 if (parsenleft == EOF_NLEFT || parsefile->buf == NULL)
419 * Push a string back onto the input at this current parsefile level.
434 if (parsefile->strpush) {
436 sp->prev = parsefile->strpush;
437 parsefile->strpush = sp;
439 sp = parsefile->strpush = &(parsefile->basestrpush);
455 struct strpush *sp = parsefile->strpush;
475 parsefile->strpush = sp->prev;
476 if (sp != &(parsefile->basestrpush))
538 struct parsefile *pf;
540 pf = parsefile;
563 if (parsefile->fd > 0)
564 sh_close(parsefile->fd);
565 parsefile->fd = fd;
566 if (parsefile->buf == NULL)
567 parsefile->buf = ckmalloc(BUFSIZ);
608 struct parsefile *pf;
612 parsefile->fd, parsefile->buf, parsenleft, parselleft,
615 parsefile->nleft = parsenleft;
616 parsefile->lleft = parselleft;
617 parsefile->nextc = parsenextc;
618 parsefile->linno = plinno;
619 pf = (struct parsefile *)ckmalloc(sizeof (struct parsefile));
620 pf->prev = parsefile;
625 parsefile = pf;
632 struct parsefile *pf = parsefile;
641 parsefile = pf->prev;
643 parsenleft = parsefile->nleft;
644 parselleft = parsefile->lleft;
645 parsenextc = parsefile->nextc;
649 parsefile->fd, parsefile->buf, parsenleft, parselleft,
650 parsenleft, parsenextc, plinno, parsefile->linno));
652 plinno = parsefile->linno;
660 struct parsefile *
663 return parsefile;
674 popfilesupto(struct parsefile *file)
676 while (parsefile != file && parsefile != &basepf)
678 if (parsefile != file)
690 while (parsefile != &basepf)
716 if (parsefile->fd > 0) {
717 sh_close(parsefile->fd);
718 parsefile->fd = 0;