summaryrefslogtreecommitdiffstats
path: root/term_ps.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2014-03-30 21:28:01 +0000
committerIngo Schwarze <schwarze@openbsd.org>2014-03-30 21:28:01 +0000
commit0e54067b69058241ae1471784ca76be3ce54c96e (patch)
tree4b6fb50f0cba7ca839deda52f839efd76e5ebc35 /term_ps.c
parentb0b643c847c8a9530fc19fc081c52b9b6f5159dd (diff)
downloadmandoc-0e54067b69058241ae1471784ca76be3ce54c96e.tar.gz
Support relative arguments to .ll (increase or decrease line length).
Diffstat (limited to 'term_ps.c')
-rw-r--r--term_ps.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/term_ps.c b/term_ps.c
index 845028a9..6e46502a 100644
--- a/term_ps.c
+++ b/term_ps.c
@@ -106,7 +106,7 @@ __attribute__((__format__ (__printf__, 2, 3)))
static void ps_printf(struct termp *, const char *, ...);
static void ps_putchar(struct termp *, char);
static void ps_setfont(struct termp *, enum termfont);
-static void ps_setwidth(struct termp *, size_t);
+static void ps_setwidth(struct termp *, int, size_t);
static struct termp *pspdf_alloc(char *);
static void pdf_obj(struct termp *, size_t);
@@ -536,12 +536,17 @@ pspdf_alloc(char *outopts)
static void
-ps_setwidth(struct termp *p, size_t width)
+ps_setwidth(struct termp *p, int iop, size_t width)
{
size_t lastwidth;
lastwidth = p->ps->width;
- p->ps->width = width ? width : p->ps->lastwidth;
+ if (0 < iop)
+ p->ps->width += width;
+ else if (0 > iop)
+ p->ps->width -= width;
+ else
+ p->ps->width = width ? width : p->ps->lastwidth;
p->ps->lastwidth = lastwidth;
}