diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2017-06-07 17:38:26 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2017-06-07 17:38:26 +0000 |
commit | ce3e2d5316637284d4e520cd554cd6ac728f4e49 (patch) | |
tree | a707ab0b13feb76229c9d84fcfa42b26bc3c293b /term_ascii.c | |
parent | 955d8c0b01f8bcb2337da16b09f839e0f9cfd8b6 (diff) | |
download | mandoc-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.c | 16 |
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'); } |