version 1.59, 2014/04/20 16:46:05 |
version 1.64, 2014/08/13 20:34:29 |
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
*/ |
*/ |
#ifdef HAVE_CONFIG_H |
|
#include "config.h" |
#include "config.h" |
#endif |
|
|
|
#include <sys/types.h> |
#include <sys/types.h> |
|
|
Line 628 pdf_obj(struct termp *p, size_t obj) |
|
Line 626 pdf_obj(struct termp *p, size_t obj) |
|
|
|
if ((obj - 1) >= p->ps->pdfobjsz) { |
if ((obj - 1) >= p->ps->pdfobjsz) { |
p->ps->pdfobjsz = obj + 128; |
p->ps->pdfobjsz = obj + 128; |
p->ps->pdfobjs = realloc(p->ps->pdfobjs, |
p->ps->pdfobjs = mandoc_reallocarray(p->ps->pdfobjs, |
p->ps->pdfobjsz * sizeof(size_t)); |
p->ps->pdfobjsz, sizeof(size_t)); |
if (NULL == p->ps->pdfobjs) { |
|
perror(NULL); |
|
exit((int)MANDOCLEVEL_SYSERR); |
|
} |
|
} |
} |
|
|
p->ps->pdfobjs[(int)obj - 1] = p->ps->pdfbytes; |
p->ps->pdfobjs[(int)obj - 1] = p->ps->pdfbytes; |
Line 918 ps_pletter(struct termp *p, int c) |
|
Line 912 ps_pletter(struct termp *p, int c) |
|
|
|
f = (int)p->ps->lastf; |
f = (int)p->ps->lastf; |
|
|
if (c <= 32 || (c - 32 >= MAXCHAR)) { |
if (c <= 32 || c - 32 >= MAXCHAR) |
ps_putchar(p, ' '); |
c = 32; |
p->ps->pscol += (size_t)fonts[f].gly[0].wx; |
|
return; |
|
} |
|
|
|
ps_putchar(p, (char)c); |
ps_putchar(p, (char)c); |
c -= 32; |
c -= 32; |
Line 1108 ps_width(const struct termp *p, int c) |
|
Line 1099 ps_width(const struct termp *p, int c) |
|
{ |
{ |
|
|
if (c <= 32 || c - 32 >= MAXCHAR) |
if (c <= 32 || c - 32 >= MAXCHAR) |
return((size_t)fonts[(int)TERMFONT_NONE].gly[0].wx); |
c = 0; |
|
else |
|
c -= 32; |
|
|
c -= 32; |
|
return((size_t)fonts[(int)TERMFONT_NONE].gly[c].wx); |
return((size_t)fonts[(int)TERMFONT_NONE].gly[c].wx); |
} |
} |
|
|
Line 1123 ps_hspan(const struct termp *p, const struct roffsu *s |
|
Line 1115 ps_hspan(const struct termp *p, const struct roffsu *s |
|
* All of these measurements are derived by converting from the |
* All of these measurements are derived by converting from the |
* native measurement to AFM units. |
* native measurement to AFM units. |
*/ |
*/ |
|
|
switch (su->unit) { |
switch (su->unit) { |
|
case SCALE_BU: |
|
/* |
|
* Traditionally, the default unit is fixed to the |
|
* output media. So this would refer to the point. In |
|
* mandoc(1), however, we stick to the default terminal |
|
* scaling unit so that output is the same regardless |
|
* the media. |
|
*/ |
|
r = PNT2AFM(p, su->scale * 72.0 / 240.0); |
|
break; |
case SCALE_CM: |
case SCALE_CM: |
r = PNT2AFM(p, su->scale * 28.34); |
r = PNT2AFM(p, su->scale * 72.0 / 2.54); |
break; |
break; |
case SCALE_IN: |
|
r = PNT2AFM(p, su->scale * 72); |
|
break; |
|
case SCALE_PC: |
|
r = PNT2AFM(p, su->scale * 12); |
|
break; |
|
case SCALE_PT: |
|
r = PNT2AFM(p, su->scale * 100); |
|
break; |
|
case SCALE_EM: |
case SCALE_EM: |
r = su->scale * |
r = su->scale * |
fonts[(int)TERMFONT_NONE].gly[109 - 32].wx; |
fonts[(int)TERMFONT_NONE].gly[109 - 32].wx; |
break; |
break; |
case SCALE_MM: |
|
r = PNT2AFM(p, su->scale * 2.834); |
|
break; |
|
case SCALE_EN: |
case SCALE_EN: |
r = su->scale * |
r = su->scale * |
fonts[(int)TERMFONT_NONE].gly[110 - 32].wx; |
fonts[(int)TERMFONT_NONE].gly[110 - 32].wx; |
break; |
break; |
|
case SCALE_IN: |
|
r = PNT2AFM(p, su->scale * 72.0); |
|
break; |
|
case SCALE_MM: |
|
r = su->scale * |
|
fonts[(int)TERMFONT_NONE].gly[109 - 32].wx / 100.0; |
|
break; |
|
case SCALE_PC: |
|
r = PNT2AFM(p, su->scale * 12.0); |
|
break; |
|
case SCALE_PT: |
|
r = PNT2AFM(p, su->scale * 1.0); |
|
break; |
case SCALE_VS: |
case SCALE_VS: |
r = su->scale * p->ps->lineheight; |
r = su->scale * p->ps->lineheight; |
break; |
break; |
Line 1169 ps_growbuf(struct termp *p, size_t sz) |
|
Line 1171 ps_growbuf(struct termp *p, size_t sz) |
|
sz = PS_BUFSLOP; |
sz = PS_BUFSLOP; |
|
|
p->ps->psmargsz += sz; |
p->ps->psmargsz += sz; |
|
p->ps->psmarg = mandoc_realloc(p->ps->psmarg, p->ps->psmargsz); |
p->ps->psmarg = mandoc_realloc |
|
(p->ps->psmarg, p->ps->psmargsz); |
|
} |
} |