Lines Matching refs:pp

150 	register Pr_t *pp;  in prinit()  local
151 if(!(pp = (Pr_t*)stakalloc(DATESZ+sizeof(Pr_t)))) in prinit()
153 pp->columns = 1; in prinit()
154 pp->pageskip = pp->pageno = 0; in prinit()
155 pp->pagelen = PAGESZ; in prinit()
156 pp->numwidth = 0; in prinit()
157 pp->flags = 0; in prinit()
158 pp->igap = pp->ogap = 0; in prinit()
159 pp->nchar = pp->itab = pp->otab= '\t'; in prinit()
160 pp->schar = 0; in prinit()
161 pp->numwidth = pp->width = pp->offset = 0; in prinit()
162 pp->header = 0; in prinit()
163 pp->date = (char*)(pp+1); in prinit()
164 memset(pp->state, 0, 1<<CHAR_BIT); in prinit()
165 return pp; in prinit()
171 static int prheader(register Pr_t *pp) in prheader() argument
174 if(pp->header) in prheader()
175 header = pp->header; in prheader()
176 else if(!(pp->flags&M_FLAG) && pp->filename) in prheader()
177 header = pp->filename; in prheader()
178 sfputc(pp->outfile,'\n'); in prheader()
179 sfputc(pp->outfile,'\n'); in prheader()
180 if(pp->offset) in prheader()
181 sfwrite(pp->outfile,pp->margin,pp->offlen); in prheader()
182 if(sfprintf(pp->outfile,"%s %s Page %d\n\n\n",pp->date,header,pp->pageno)<0) in prheader()
190 static int prtrailer(register Pr_t *pp,int line) in prtrailer() argument
192 register int n= pp->pagelen-line; in prtrailer()
193 if(pp->flags&D_FLAG) in prtrailer()
196 n = !pp->pageodd; in prtrailer()
198 n = 2*n-pp->pageodd; in prtrailer()
200 if(pp->flags&F_FLAG) in prtrailer()
202 if(sfputc(pp->outfile,'\f') < 0) in prtrailer()
207 if(sfnputc(pp->outfile, '\n',n+HDRSZ) < 0) in prtrailer()
216 static void prpage(register Pr_t *pp) in prpage() argument
218 register int n, tflag = !(pp->flags&T_FLAG); in prpage()
222 if(pp->pageno++ >= pp->pageskip) in prpage()
223 out = pp->outfile; in prpage()
225 prheader(pp); in prpage()
226 if((n=sfmove(pp->infile,out,pp->pagelen,'\n')) != pp->pagelen) in prpage()
230 if(!sfreserve(pp->infile,0,0)||sfvalue(pp->infile)<0) in prpage()
232 sfnputc(pp->outfile,'\n',HDRSZ); in prpage()
236 prtrailer(pp,n); in prpage()
245 static int outspaces(register Pr_t* pp,register int spaces, register int col) in outspaces() argument
248 if(pp->ogap) in outspaces()
253 if(sfputc(pp->outfile,pp->otab) < 0) in outspaces()
257 col = pp->ogap; in outspaces()
261 if(sfnputc(pp->outfile,' ',spaces) < 0) in outspaces()
272 static int outcol(register Pr_t *pp,char *buff, register int size, int spaces) in outcol() argument
274 register char *state=pp->state; in outcol()
278 if(pp->igap || pp->ogap) in outcol()
284 if(pp->ogap) in outcol()
285 omod = pp->ogap - (pp->colno-size)%pp->ogap; in outcol()
288 outspaces(pp,size,omod); in outcol()
296 if(pp->width && col >= pp->width) in outcol()
298 size -= (col+1-pp->width); in outcol()
307 if(sfwrite(pp->outfile,buff,--size)< 0) in outcol()
309 if(pp->width && col >= pp->width) in outcol()
312 if(pp->ogap) in outcol()
313 omod = pp->ogap - (pp->colno+col)%pp->ogap; in outcol()
320 n= (pp->igap-(col%pp->igap)); in outcol()
328 sfputc(pp->outfile,'\n'); in outcol()
332 if(cp>=buffend || (pp->width && col>=pp->width)) in outcol()
335 if(col>=pp->width) in outcol()
339 sfputc(pp->outfile,'\n'); in outcol()
342 size -= (col-pp->width); in outcol()
345 size += pp->width-col; in outcol()
348 outspaces(pp,size,omod); in outcol()
353 if(size>0 && sfwrite(pp->outfile,buff,size)< 0) in outcol()
361 static int prline(register Pr_t *pp) in prline() argument
363 register int n, line = pp->pagelen; in prline()
365 pp->colno = pp->offset; in prline()
366 if(pp->pageskip > 0) in prline()
368 n = pp->pageskip*pp->pagelen; in prline()
369 if(sfmove(pp->infile, NiL, n, '\n')!=n) in prline()
372 while(cp = sfgetr(pp->infile,'\n',0)) in prline()
374 n = sfvalue(pp->infile); in prline()
375 if(line >= pp->pagelen) in prline()
378 pp->pageno++; in prline()
379 if(!(pp->flags&T_FLAG) && prheader(pp)<0) in prline()
382 if(pp->offset) in prline()
383 sfwrite(pp->outfile,pp->margin,pp->offlen); in prline()
384 if(pp->numwidth) in prline()
385 sfprintf(pp->outfile,"%*d%c",pp->numwidth,++pp->lineno,pp->nchar); in prline()
386 if(outcol(pp,cp,n,0) < 0) in prline()
388 if(++line >= pp->pagelen && !(pp->flags&T_FLAG)) in prline()
390 if(pp->flags&F_FLAG) in prline()
391 sfputc(pp->outfile,'\f'); in prline()
393 sfnputc(pp->outfile, '\n',HDRSZ); in prline()
395 else if(pp->flags&D_FLAG) in prline()
396 sfputc(pp->outfile,'\n'); in prline()
398 if(!(pp->flags&T_FLAG)) in prline()
399 prtrailer(pp,line); in prline()
406 static int outpage(register Pr_t *pp,int n) in outpage() argument
408 register char *cp,**next = pp->fieldlist; in outpage()
410 if(pp->pageno++ < pp->pageskip) in outpage()
412 pp->lineno += pp->pagelen; in outpage()
415 if(!(pp->flags&T_FLAG)) in outpage()
416 prheader(pp); in outpage()
417 if(pp->flags&A_FLAG) in outpage()
420 incr = (n+pp->columns-1)/pp->columns; in outpage()
424 if(!(pp->flags&A_FLAG)) in outpage()
428 next = pp->fieldlist + line; in outpage()
430 else if(next >= pp->fieldlast) in outpage()
432 if(pp->offset) in outpage()
433 sfwrite(pp->outfile,pp->margin,pp->offlen); in outpage()
434 if(pp->numwidth) in outpage()
435 sfprintf(pp->outfile,"%*d%c",pp->numwidth,++pp->lineno,pp->nchar); in outpage()
436 pp->colno = pp->offset; in outpage()
437 for(old=0,j=pp->columns; --j>=0; ) in outpage()
439 if(next+incr >= pp->fieldlast) in outpage()
448 if((old=outcol(pp,cp,size,old))<0) in outpage()
450 pp->colno += pp->width; in outpage()
451 if(j>0 && pp->schar) in outpage()
453 sfputc(pp->outfile,pp->schar); in outpage()
454 pp->colno = old; in outpage()
455 if(pp->schar==pp->otab && pp->ogap) in outpage()
456 pp->colno += pp->ogap - pp->colno%pp->ogap; in outpage()
458 pp->colno++; in outpage()
463 if(++line >= pp->pagelen) in outpage()
465 if(pp->flags&D_FLAG) in outpage()
466 sfputc(pp->outfile,'\n'); in outpage()
468 if(!(pp->flags&T_FLAG)) in outpage()
469 prtrailer(pp,line); in outpage()
477 static int prcol(register Pr_t *pp) in prcol() argument
481 register Sfio_t *fp=pp->infile; in prcol()
482 int nstream,r=0, skip=pp->pageskip; in prcol()
483 nextmax = pp->fieldlist + pp->columns*pp->pagelen; in prcol()
486 next = pp->fieldlist; in prcol()
487 *next = pp->fieldptr = pp->fieldbuff; in prcol()
488 if(pp->streams) in prcol()
491 fp = *pp->streams; in prcol()
497 if((size=sfvalue(fp)) > pp->width) in prcol()
498 size = pp->width; in prcol()
500 memcpy(pp->fieldptr,cp,size); in prcol()
502 else if(pp->streams) in prcol()
508 pp->streams[nstream] = 0; in prcol()
509 if(--pp->nopen<=0) in prcol()
511 next -= (pp->columns-1); in prcol()
519 pp->fieldptr +=size; in prcol()
520 *++next = pp->fieldptr; in prcol()
523 if(pp->streams) in prcol()
525 if(++nstream>=pp->columns) in prcol()
527 fp = pp->streams[nstream]; in prcol()
535 pp->fieldlast = next; in prcol()
536 if((n = next - pp->fieldlist) > 0) in prcol()
537 r=outpage(pp,n); in prcol()
546 register Pr_t* pp = (Pr_t*)dp; in c_read() local
554 if (pp->control.cur >= pp->control.end) in c_read()
556 if (n > pp->control.siz) in c_read()
558 pp->control.siz = roundof(n, 1024); in c_read()
559 if (!(pp->control.buf = newof(pp->control.buf, char, pp->control.siz, 0))) in c_read()
562 if ((z = sfrd(fp, pp->control.buf, n, dp)) <= 0) in c_read()
564 pp->control.cur = pp->control.buf; in c_read()
565 pp->control.end = pp->control.buf + z; in c_read()
567 while (pp->control.cur < pp->control.end && s < e) in c_read()
569 if ((c = mbsize(pp->control.cur)) > 1) in c_read()
574 *s++ = *pp->control.cur++; in c_read()
578 c = ccmapchr(pp->control.map, *pp->control.cur); in c_read()
580 *s++ = *pp->control.cur++; in c_read()
585 pp->control.cur++; in c_read()
597 register Pr_t* pp = (Pr_t*)dp; in v_read() local
604 if (pp->control.cur >= pp->control.end) in v_read()
606 if (n > pp->control.siz) in v_read()
608 pp->control.siz = roundof(n, 1024); in v_read()
609 if (!(pp->control.buf = newof(pp->control.buf, char, pp->control.siz, 0))) in v_read()
612 if ((z = sfrd(fp, pp->control.buf, n, dp)) <= 0) in v_read()
614 pp->control.cur = pp->control.buf; in v_read()
615 pp->control.end = pp->control.buf + z; in v_read()
617 while (pp->control.cur < pp->control.end && s < e) in v_read()
619 if ((c = mbsize(pp->control.cur)) > 1) in v_read()
624 *s++ = *pp->control.cur++; in v_read()
628 c = *pp->control.cur++; in v_read()
631 t = fmtquote(pp->control.cur - 1, NiL, NiL, 1, 0); in v_read()
634 pp->control.cur--; in v_read()
651 register Pr_t *pp; in b_pr() local
657 pp = prinit(); in b_pr()
665 pp->flags |= A_FLAG; in b_pr()
668 pp->control.disc = &pp->disc; in b_pr()
669 pp->control.disc->readf = c_read; in b_pr()
670 pp->control.map = ccmap(CC_NATIVE, CC_ASCII); in b_pr()
673 pp->flags |= D_FLAG; in b_pr()
676 pp->flags |= (P_FLAG|F_FLAG); in b_pr()
679 pp->flags |= F_FLAG; in b_pr()
682 pp->flags |= M_FLAG; in b_pr()
685 pp->flags |= P_FLAG; in b_pr()
688 pp->flags |= R_FLAG; in b_pr()
692 pp->flags |= T_FLAG; in b_pr()
696 pp->columns = opt_info.num; in b_pr()
698 pp->pageskip = opt_info.num-1; in b_pr()
701 pp->header = opt_info.arg; in b_pr()
704 pp->width = opt_info.num; in b_pr()
707 pp->pagelen = opt_info.num; in b_pr()
710 pp->offset = opt_info.num; in b_pr()
713 pp->pageskip = opt_info.num-1; in b_pr()
726 pp->igap = TABSZ; in b_pr()
728 pp->ogap = TABSZ; in b_pr()
730 pp->numwidth = NWIDTH; in b_pr()
736 pp->itab = *opt_info.arg++; in b_pr()
738 pp->otab = *opt_info.arg++; in b_pr()
740 pp->nchar = *opt_info.arg++; in b_pr()
748 pp->igap = l; in b_pr()
750 pp->ogap = l; in b_pr()
752 pp->numwidth = l; in b_pr()
765 pp->schar = *opt_info.arg; in b_pr()
767 pp->schar = '\t'; in b_pr()
770 pp->control.disc = &pp->disc; in b_pr()
771 pp->control.disc->readf = v_read; in b_pr()
774 pp->flags |= X_FLAG; in b_pr()
791 pp->outfile = sfstdout; in b_pr()
792 if(pp->pagelen<=(2*HDRSZ)) in b_pr()
793 pp->flags |= T_FLAG; in b_pr()
794 if(!(pp->flags&T_FLAG)) in b_pr()
795 pp->pagelen -= (2*HDRSZ); in b_pr()
796 pp->pageodd = (pp->pagelen&1); in b_pr()
797 if(pp->flags&D_FLAG) in b_pr()
798 pp->pagelen = (pp->pagelen+1)/2; in b_pr()
799 if(pp->flags&M_FLAG) in b_pr()
801 pp->columns = argc-opt_info.index; in b_pr()
802 pp->flags |= A_FLAG; in b_pr()
805 if(pp->width) in b_pr()
806 pp->width -= pp->offset; in b_pr()
808 if(pp->columns > 0) in b_pr()
810 if(pp->columns==1) in b_pr()
812 pp->columns = 0; in b_pr()
813 pp->flags &= ~(M_FLAG|A_FLAG); in b_pr()
817 if(pp->igap==0) in b_pr()
818 pp->igap = TABSZ; in b_pr()
819 if(pp->ogap==0) in b_pr()
820 pp->ogap = TABSZ; in b_pr()
821 if((n=pp->width)==0) in b_pr()
823 n = (pp->schar?SWIDTH:(WIDTH-pp->offset)); in b_pr()
825 n = (pp->schar?SWIDTH:WIDTH); in b_pr()
827 n -= pp->numwidth; in b_pr()
828 if((pp->width = ((n+1)/pp->columns)) <=0) in b_pr()
830 n = (pp->pagelen*pp->columns+1); in b_pr()
831 if(!(pp->fieldlist = (char**)stakalloc(n*(sizeof(char*)+pp->width)))) in b_pr()
833 pp->fieldbuff = pp->fieldptr = (char*)(pp->fieldlist+n); in b_pr()
836 if(pp->igap) in b_pr()
837 pp->state[pp->itab] = S_TAB; in b_pr()
838 pp->state[' '] |= S_SPACE; in b_pr()
839 pp->state['\n'] = S_NL; in b_pr()
840 if(pp->ogap) in b_pr()
841 pp->omod = (pp->numwidth+pp->numwidth>0)%pp->ogap; in b_pr()
842 if(pp->offset) in b_pr()
845 if(pp->ogap) in b_pr()
847 n = pp->offset/pp->ogap; in b_pr()
848 pp->offlen = pp->offset - n*(pp->ogap-1); in b_pr()
852 if(!(pp->margin = (char*)stakalloc(pp->offset))) in b_pr()
854 for(cp=pp->margin; cp < pp->margin+pp->offlen; cp++) in b_pr()
857 *cp = pp->otab; in b_pr()
866 pp->filename = cp; in b_pr()
871 if(!(pp->flags&R_FLAG)) in b_pr()
876 if (pp->control.disc && !sfdisc(fp, pp->control.disc)) in b_pr()
878 if(pp->streams) in b_pr()
879 pp->streams[n++] = fp; in b_pr()
882 if(!(pp->flags&T_FLAG)) in b_pr()
884 if(pp->flags&X_FLAG) in b_pr()
885 strcpy(pp->date, "- Date/Time --"); in b_pr()
887 …tmfmt(pp->date, DATESZ, "%b %e %H:%M %Y", fstat(sffileno(fp), &statb) ? (time_t*)0 : &statb.st_mti… in b_pr()
889 pp->lineno = pp->pageno = 0; in b_pr()
890 pp->infile = fp; in b_pr()
891 if(pp->flags&M_FLAG) in b_pr()
893 pp->streams = (Sfio_t**)stakalloc(pp->columns*sizeof(Sfio_t*)); in b_pr()
894 *pp->streams = fp; in b_pr()
898 if(pp->columns) in b_pr()
899 prcol(pp); in b_pr()
900 else if(pp->width || pp->igap || pp->ogap || pp->offset || pp->numwidth || (pp->flags&D_FLAG)) in b_pr()
901 prline(pp); in b_pr()
903 prpage(pp); in b_pr()
909 if(pp->streams) in b_pr()
911 pp->nopen = n; in b_pr()
912 prcol(pp); in b_pr()
914 if (pp->control.buf) in b_pr()
915 free(pp->control.buf); in b_pr()