summaryrefslogtreecommitdiffstats
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
commitce3e2d5316637284d4e520cd554cd6ac728f4e49 (patch)
treea707ab0b13feb76229c9d84fcfa42b26bc3c293b /term_ascii.c
parent955d8c0b01f8bcb2337da16b09f839e0f9cfd8b6 (diff)
downloadmandoc-ce3e2d5316637284d4e520cd554cd6ac728f4e49.tar.gz
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.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/term_ascii.c b/term_ascii.c
index 60e8b5c8..155fdc3a 100644
--- a/term_ascii.c
+++ b/term_ascii.c
@@ -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');
}