=================================================================== RCS file: /cvs/mandoc/term_ascii.c,v retrieving revision 1.54 retrieving revision 1.57 diff -u -p -r1.54 -r1.57 --- mandoc/term_ascii.c 2016/07/31 09:29:13 1.54 +++ mandoc/term_ascii.c 2017/06/07 17:38:26 1.57 @@ -1,7 +1,7 @@ -/* $Id: term_ascii.c,v 1.54 2016/07/31 09:29:13 schwarze Exp $ */ +/* $Id: term_ascii.c,v 1.57 2017/06/07 17:38:26 schwarze Exp $ */ /* * Copyright (c) 2010, 2011 Kristaps Dzonsons - * Copyright (c) 2014, 2015 Ingo Schwarze + * Copyright (c) 2014, 2015, 2017 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -65,13 +65,14 @@ ascii_init(enum termenc enc, const struct manoutput *o #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->tabwidth = 5; 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; @@ -149,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) @@ -158,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 @@ -216,6 +217,8 @@ ascii_endline(struct termp *p) { p->line++; + p->tcol->offset -= p->ti; + p->ti = 0; putchar('\n'); } @@ -370,6 +373,8 @@ locale_endline(struct termp *p) { p->line++; + p->tcol->offset -= p->ti; + p->ti = 0; putwchar(L'\n'); }