aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/term_ascii.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-06-07 17:38:26 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-06-07 17:38:26 +0000
commit675d4eca89a5a01b962c8f830b654f446061284d (patch)
treedac4fea2063e12734d758c2156a9bdcf83a35c4d /term_ascii.c
parent13dededd58fd94c0507d28f08661caa187f9d989 (diff)
downloadmandoc-675d4eca89a5a01b962c8f830b654f446061284d.tar.gz
mandoc-675d4eca89a5a01b962c8f830b654f446061284d.tar.zst
mandoc-675d4eca89a5a01b962c8f830b654f446061284d.zip
Prepare the terminal driver for filling multiple columns in parallel,
first step: split column data out of the terminal state struct into a new column state struct and use an array of such column state structs. No functional change.
Diffstat (limited to 'term_ascii.c')
-rw-r--r--term_ascii.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/term_ascii.c b/term_ascii.c
index 97041619..1efd76d8 100644
--- a/term_ascii.c
+++ b/term_ascii.c
@@ -1,4 +1,4 @@
-/* $Id: term_ascii.c,v 1.56 2017/05/08 15:34:54 schwarze Exp $ */
+/* $Id: term_ascii.c,v 1.57 2017/06/07 17:38:26 schwarze Exp $ */
/*
* Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -65,12 +65,14 @@ ascii_init(enum termenc enc, const struct manoutput *outopts)
#endif
struct termp *p;
- p = mandoc_calloc(1, sizeof(struct termp));
+ p = mandoc_calloc(1, sizeof(*p));
+ p->tcol = p->tcols = mandoc_calloc(1, sizeof(*p->tcol));
+ p->maxtcol = 1;
p->line = 1;
p->defrmargin = p->lastrmargin = 78;
p->fontq = mandoc_reallocarray(NULL,
- (p->fontsz = 8), sizeof(enum termfont));
+ (p->fontsz = 8), sizeof(*p->fontq));
p->fontq[0] = p->fontl = TERMFONT_NONE;
p->begin = ascii_begin;
@@ -148,7 +150,7 @@ ascii_setwidth(struct termp *p, int iop, int width)
{
width /= 24;
- p->rmargin = p->defrmargin;
+ p->tcol->rmargin = p->defrmargin;
if (iop > 0)
p->defrmargin += width;
else if (iop == 0)
@@ -157,8 +159,8 @@ ascii_setwidth(struct termp *p, int iop, int width)
p->defrmargin -= width;
else
p->defrmargin = 0;
- p->lastrmargin = p->rmargin;
- p->rmargin = p->maxrmargin = p->defrmargin;
+ p->lastrmargin = p->tcol->rmargin;
+ p->tcol->rmargin = p->maxrmargin = p->defrmargin;
}
void
@@ -215,7 +217,7 @@ ascii_endline(struct termp *p)
{
p->line++;
- p->offset -= p->ti;
+ p->tcol->offset -= p->ti;
p->ti = 0;
putchar('\n');
}
@@ -371,7 +373,7 @@ locale_endline(struct termp *p)
{
p->line++;
- p->offset -= p->ti;
+ p->tcol->offset -= p->ti;
p->ti = 0;
putwchar(L'\n');
}