Lines Matching defs:iop
434 static void p_redirect(register const struct ionod *iop)
438 for(;iop;iop=iop->ionxt)
440 iof=iop->iofile;
442 if(iop->iovname)
445 sfputr(outfile,iop->iovname,')');
452 if(*cp == '1' && !iop->iovname)
458 if(*cp == '0' && !iop->iovname)
476 if(iop->iodelim)
480 iop->iolink = (char*)here_doc;
482 here_doc = iop;
490 if(iop->ionxt)
499 if(iop->iodelim)
501 if(!(iop->iofile&IODOC))
503 sfputr(outfile,sh_fmtq(iop->iodelim),iof);
505 else if(iop->iofile&IORAW)
506 sfputr(outfile,sh_fmtq(iop->ioname),iof);
508 sfputr(outfile,iop->ioname,iof);
586 static void here_body(register const struct ionod *iop)
590 if(iop->iolink)
591 here_body((struct inode*)iop->iolink);
592 iop->iolink = 0;
594 if(iop->iofile&IOSTRG)
595 infile = sfnew((Sfio_t*)0,iop->ioname,iop->iosize,-1,SF_STRING|SF_READ);
597 sfseek(infile=sh.heredocs,iop->iooffset,SEEK_SET);
598 sfmove(infile,outfile,iop->iosize,-1);
599 if(iop->iofile&IOSTRG)
601 sfputr(outfile,iop->iodelim,'\n');