version 1.67, 2014/10/27 20:41:58 |
version 1.71, 2014/12/19 17:12:04 |
|
|
#include <string.h> |
#include <string.h> |
#include <unistd.h> |
#include <unistd.h> |
|
|
#include "mandoc.h" |
|
#include "mandoc_aux.h" |
#include "mandoc_aux.h" |
#include "out.h" |
#include "out.h" |
#include "main.h" |
|
#include "term.h" |
#include "term.h" |
|
#include "main.h" |
|
|
/* These work the buffer used by the header and footer. */ |
/* These work the buffer used by the header and footer. */ |
#define PS_BUFSLOP 128 |
#define PS_BUFSLOP 128 |
Line 106 static void ps_printf(struct termp *, const char *, |
|
Line 105 static void ps_printf(struct termp *, const char *, |
|
static void ps_putchar(struct termp *, char); |
static void ps_putchar(struct termp *, char); |
static void ps_setfont(struct termp *, enum termfont); |
static void ps_setfont(struct termp *, enum termfont); |
static void ps_setwidth(struct termp *, int, size_t); |
static void ps_setwidth(struct termp *, int, size_t); |
static struct termp *pspdf_alloc(char *); |
static struct termp *pspdf_alloc(const struct mchars *, char *); |
static void pdf_obj(struct termp *, size_t); |
static void pdf_obj(struct termp *, size_t); |
|
|
/* |
/* |
Line 507 static const struct font fonts[TERMFONT__MAX] = { |
|
Line 506 static const struct font fonts[TERMFONT__MAX] = { |
|
}; |
}; |
|
|
void * |
void * |
pdf_alloc(char *outopts) |
pdf_alloc(const struct mchars *mchars, char *outopts) |
{ |
{ |
struct termp *p; |
struct termp *p; |
|
|
if (NULL != (p = pspdf_alloc(outopts))) |
if (NULL != (p = pspdf_alloc(mchars, outopts))) |
p->type = TERMTYPE_PDF; |
p->type = TERMTYPE_PDF; |
|
|
return(p); |
return(p); |
} |
} |
|
|
void * |
void * |
ps_alloc(char *outopts) |
ps_alloc(const struct mchars *mchars, char *outopts) |
{ |
{ |
struct termp *p; |
struct termp *p; |
|
|
if (NULL != (p = pspdf_alloc(outopts))) |
if (NULL != (p = pspdf_alloc(mchars, outopts))) |
p->type = TERMTYPE_PS; |
p->type = TERMTYPE_PS; |
|
|
return(p); |
return(p); |
} |
} |
|
|
static struct termp * |
static struct termp * |
pspdf_alloc(char *outopts) |
pspdf_alloc(const struct mchars *mchars, char *outopts) |
{ |
{ |
struct termp *p; |
struct termp *p; |
unsigned int pagex, pagey; |
unsigned int pagex, pagey; |
Line 539 pspdf_alloc(char *outopts) |
|
Line 538 pspdf_alloc(char *outopts) |
|
char *v; |
char *v; |
|
|
p = mandoc_calloc(1, sizeof(struct termp)); |
p = mandoc_calloc(1, sizeof(struct termp)); |
|
p->symtab = mchars; |
p->enc = TERMENC_ASCII; |
p->enc = TERMENC_ASCII; |
|
p->fontq = mandoc_reallocarray(NULL, |
|
(p->fontsz = 8), sizeof(enum termfont)); |
|
p->fontq[0] = p->fontl = TERMFONT_NONE; |
p->ps = mandoc_calloc(1, sizeof(struct termp_ps)); |
p->ps = mandoc_calloc(1, sizeof(struct termp_ps)); |
|
|
p->advance = ps_advance; |
p->advance = ps_advance; |
Line 634 ps_setwidth(struct termp *p, int iop, size_t width) |
|
Line 637 ps_setwidth(struct termp *p, int iop, size_t width) |
|
size_t lastwidth; |
size_t lastwidth; |
|
|
lastwidth = p->ps->width; |
lastwidth = p->ps->width; |
if (0 < iop) |
if (iop > 0) |
p->ps->width += width; |
p->ps->width += width; |
else if (0 > iop) |
else if (iop == 0) |
|
p->ps->width = width ? width : p->ps->lastwidth; |
|
else if (p->ps->width > width) |
p->ps->width -= width; |
p->ps->width -= width; |
else |
else |
p->ps->width = width ? width : p->ps->lastwidth; |
p->ps->width = 0; |
p->ps->lastwidth = lastwidth; |
p->ps->lastwidth = lastwidth; |
} |
} |
|
|