Lines Matching refs:ps
41 (size_t)((double)(x) * (1000.0 / (double)(p)->ps->scale))
45 ((double)(x) / (1000.0 / (double)(p)->ps->scale))
539 p->ps = mandoc_calloc(1, sizeof(*p->ps)); in pspdf_alloc()
552 p->ps->medianame = "Letter"; in pspdf_alloc()
566 p->ps->medianame = "A3"; in pspdf_alloc()
570 p->ps->medianame = "A4"; in pspdf_alloc()
574 p->ps->medianame = "A5"; in pspdf_alloc()
578 p->ps->medianame = "Legal"; in pspdf_alloc()
582 p->ps->medianame = "CustomSize"; in pspdf_alloc()
592 p->ps->scale = 11; in pspdf_alloc()
606 lineheight = PNT2AFM(p, ((double)p->ps->scale * 1.4)); in pspdf_alloc()
608 p->ps->width = p->ps->lastwidth = (size_t)pagex; in pspdf_alloc()
609 p->ps->height = (size_t)pagey; in pspdf_alloc()
610 p->ps->header = pagey - (marginy / 2) - (lineheight / 2); in pspdf_alloc()
611 p->ps->top = pagey - marginy; in pspdf_alloc()
612 p->ps->footer = (marginy / 2) - (lineheight / 2); in pspdf_alloc()
613 p->ps->bottom = marginy; in pspdf_alloc()
614 p->ps->left = marginx; in pspdf_alloc()
615 p->ps->lineheight = lineheight; in pspdf_alloc()
626 lastwidth = p->ps->width; in ps_setwidth()
628 p->ps->width += width; in ps_setwidth()
630 p->ps->width = width ? (size_t)width : p->ps->lastwidth; in ps_setwidth()
631 else if (p->ps->width > (size_t)width) in ps_setwidth()
632 p->ps->width -= width; in ps_setwidth()
634 p->ps->width = 0; in ps_setwidth()
635 p->ps->lastwidth = lastwidth; in ps_setwidth()
645 free(p->ps->psmarg); in pspdf_free()
646 free(p->ps->pdfobjs); in pspdf_free()
648 free(p->ps); in pspdf_free()
666 if ( ! (PS_MARGINS & p->ps->flags)) { in ps_printf()
669 p->ps->pdfbytes += len < 0 ? 0 : (size_t)len; in ps_printf()
681 pos = (int)p->ps->psmargcur; in ps_printf()
682 vsnprintf(&p->ps->psmarg[pos], PS_BUFSLOP, fmt, ap); in ps_printf()
686 p->ps->psmargcur = strlen(p->ps->psmarg); in ps_printf()
696 if ( ! (PS_MARGINS & p->ps->flags)) { in ps_putchar()
698 p->ps->pdfbytes++; in ps_putchar()
704 pos = (int)p->ps->psmargcur++; in ps_putchar()
705 p->ps->psmarg[pos++] = c; in ps_putchar()
706 p->ps->psmarg[pos] = '\0'; in ps_putchar()
715 if ((obj - 1) >= p->ps->pdfobjsz) { in pdf_obj()
716 p->ps->pdfobjsz = obj + 128; in pdf_obj()
717 p->ps->pdfobjs = mandoc_reallocarray(p->ps->pdfobjs, in pdf_obj()
718 p->ps->pdfobjsz, sizeof(size_t)); in pdf_obj()
721 p->ps->pdfobjs[(int)obj - 1] = p->ps->pdfbytes; in pdf_obj()
738 assert(p->ps->psmarg && p->ps->psmarg[0]); in ps_closepage()
739 ps_printf(p, "%s", p->ps->psmarg); in ps_closepage()
742 len = p->ps->pdfbytes - p->ps->pdflastpg; in ps_closepage()
743 base = p->ps->pages * 4 + p->ps->pdfbody; in ps_closepage()
770 p->ps->pages++; in ps_closepage()
771 p->ps->psrow = p->ps->top; in ps_closepage()
772 assert( ! (PS_NEWPAGE & p->ps->flags)); in ps_closepage()
773 p->ps->flags |= PS_NEWPAGE; in ps_closepage()
790 if ( ! (PS_NEWPAGE & p->ps->flags)) { in ps_end()
791 assert(0 == p->ps->flags); in ps_end()
792 assert('\0' == p->ps->last); in ps_end()
798 ps_printf(p, "%%%%Pages: %zu\n", p->ps->pages); in ps_end()
806 (size_t)AFM2PNT(p, p->ps->width), in ps_end()
807 (size_t)AFM2PNT(p, p->ps->height)); in ps_end()
809 ps_printf(p, "/Count %zu\n", p->ps->pages); in ps_end()
812 for (i = 0; i < p->ps->pages; i++) in ps_end()
813 ps_printf(p, " %zu 0 R", i * 4 + p->ps->pdfbody + 3); in ps_end()
815 base = (p->ps->pages - 1) * 4 + p->ps->pdfbody + 4; in ps_end()
823 xref = p->ps->pdfbytes; in ps_end()
830 p->ps->pdfobjs[(int)i]); in ps_end()
854 if (p->ps->psmarg) { in ps_begin()
855 assert(p->ps->psmargsz); in ps_begin()
856 p->ps->psmarg[0] = '\0'; in ps_begin()
860 p->ps->psmargcur = 0; in ps_begin()
861 p->ps->flags = PS_MARGINS; in ps_begin()
862 p->ps->pscol = p->ps->left; in ps_begin()
863 p->ps->psrow = p->ps->header; in ps_begin()
864 p->ps->lastrow = 0; /* impossible row */ in ps_begin()
871 p->ps->pscol = p->ps->left; in ps_begin()
872 p->ps->psrow = p->ps->footer; in ps_begin()
877 p->ps->flags &= ~PS_MARGINS; in ps_begin()
879 assert(0 == p->ps->flags); in ps_begin()
880 assert(p->ps->psmarg); in ps_begin()
881 assert('\0' != p->ps->psmarg[0]); in ps_begin()
889 width = AFM2PNT(p, p->ps->width); in ps_begin()
890 height = AFM2PNT(p, p->ps->height); in ps_begin()
898 p->ps->medianame, width, height); in ps_begin()
911 ps_printf(p, "/fs %zu def\n", p->ps->scale); in ps_begin()
922 p->ps->medianame); in ps_begin()
945 p->ps->pdfbody = (size_t)TERMFONT__MAX + 3; in ps_begin()
946 p->ps->pscol = p->ps->left; in ps_begin()
947 p->ps->psrow = p->ps->top; in ps_begin()
948 p->ps->flags |= PS_NEWPAGE; in ps_begin()
962 if (PS_NEWPAGE & p->ps->flags) { in ps_pletter()
965 p->ps->pages + 1, p->ps->pages + 1); in ps_pletter()
966 ps_printf(p, "f%d\n", (int)p->ps->lastf); in ps_pletter()
968 pdf_obj(p, p->ps->pdfbody + in ps_pletter()
969 p->ps->pages * 4); in ps_pletter()
972 p->ps->pdfbody + 1 + p->ps->pages * 4); in ps_pletter()
975 p->ps->pdflastpg = p->ps->pdfbytes; in ps_pletter()
976 p->ps->flags &= ~PS_NEWPAGE; in ps_pletter()
984 if ( ! (PS_INLINE & p->ps->flags)) { in ps_pletter()
987 (int)p->ps->lastf, p->ps->scale); in ps_pletter()
989 AFM2PNT(p, p->ps->pscol), in ps_pletter()
990 AFM2PNT(p, p->ps->psrow)); in ps_pletter()
992 ps_printf(p, "%.3f", AFM2PNT(p, p->ps->pscol)); in ps_pletter()
993 if (p->ps->psrow != p->ps->lastrow) in ps_pletter()
995 AFM2PNT(p, p->ps->psrow)); in ps_pletter()
998 p->ps->flags |= PS_INLINE; in ps_pletter()
1001 assert( ! (PS_NEWPAGE & p->ps->flags)); in ps_pletter()
1022 f = (int)p->ps->lastf; in ps_pletter()
1029 p->ps->pscol += (size_t)fonts[f].gly[c].wx; in ps_pletter()
1042 if ( ! (PS_INLINE & p->ps->flags)) in ps_pclose()
1047 else if (p->ps->psrow == p->ps->lastrow) in ps_pclose()
1051 p->ps->lastrow = p->ps->psrow; in ps_pclose()
1054 p->ps->flags &= ~PS_INLINE; in ps_pclose()
1063 if (p->ps->last == '\0') in ps_plast()
1068 if (p->ps->nextf != p->ps->lastf) { in ps_plast()
1070 ps_setfont(p, p->ps->nextf); in ps_plast()
1072 p->ps->nextf = TERMFONT_NONE; in ps_plast()
1079 if (p->ps->pscolnext) { in ps_plast()
1080 wx = fonts[p->ps->lastf].gly[(int)p->ps->last-32].wx; in ps_plast()
1081 if (p->ps->pscol + wx < p->ps->pscolnext) in ps_plast()
1082 p->ps->pscol = (p->ps->pscol + in ps_plast()
1083 p->ps->pscolnext - wx) / 2; in ps_plast()
1086 ps_pletter(p, p->ps->last); in ps_plast()
1087 p->ps->last = '\0'; in ps_plast()
1094 if (p->ps->pscol < p->ps->pscolnext) { in ps_plast()
1096 p->ps->pscol = p->ps->pscolnext; in ps_plast()
1115 assert(p->ps->last != '\0'); in ps_letter()
1116 assert( ! (p->ps->flags & PS_BACKSP)); in ps_letter()
1117 p->ps->flags |= PS_BACKSP; in ps_letter()
1125 if (p->ps->flags & PS_BACKSP) { in ps_letter()
1126 if (p->ps->last == '_') { in ps_letter()
1127 switch (p->ps->nextf) { in ps_letter()
1131 p->ps->nextf = TERMFONT_BI; in ps_letter()
1134 p->ps->nextf = TERMFONT_UNDER; in ps_letter()
1136 p->ps->last = c; in ps_letter()
1137 p->ps->flags &= ~PS_BACKSP; in ps_letter()
1140 if (p->ps->last == c) { in ps_letter()
1141 switch (p->ps->nextf) { in ps_letter()
1145 p->ps->nextf = TERMFONT_BI; in ps_letter()
1148 p->ps->nextf = TERMFONT_BOLD; in ps_letter()
1150 p->ps->flags &= ~PS_BACKSP; in ps_letter()
1159 savecol = p->ps->pscol; in ps_letter()
1177 p->ps->last = c; in ps_letter()
1187 if (p->ps->pscolnext < p->ps->pscol) in ps_letter()
1188 p->ps->pscolnext = p->ps->pscol; in ps_letter()
1190 p->ps->pscol = savecol; in ps_letter()
1191 p->ps->flags &= ~PS_BACKSP; in ps_letter()
1193 p->ps->pscolnext = 0; in ps_letter()
1209 p->ps->pscol += len; in ps_advance()
1227 if (PS_MARGINS & p->ps->flags) in ps_endline()
1232 p->ps->pscol = p->ps->left; in ps_endline()
1236 if (PS_NEWPAGE & p->ps->flags) in ps_endline()
1244 if (p->ps->psrow >= p->ps->lineheight + p->ps->bottom) { in ps_endline()
1245 p->ps->psrow -= p->ps->lineheight; in ps_endline()
1263 p->ps->lastf = f; in ps_setfont()
1270 if (PS_NEWPAGE & p->ps->flags) in ps_setfont()
1277 (int)f, p->ps->scale); in ps_setfont()
1337 r = su->scale * p->ps->lineheight; in ps_hspan()
1350 if (p->ps->psmargcur + sz <= p->ps->psmargsz) in ps_growbuf()
1356 p->ps->psmargsz += sz; in ps_growbuf()
1357 p->ps->psmarg = mandoc_realloc(p->ps->psmarg, p->ps->psmargsz); in ps_growbuf()