-/* $Id: term.c,v 1.271 2017/06/14 17:51:15 schwarze Exp $ */
+/* $Id: term.c,v 1.274 2017/07/28 14:25:48 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
p->maxrmargin - p->viscol - vbl : 0;
vis = vend = 0;
- if ((p->flags && TERMP_MULTICOL) == 0)
+ if ((p->flags & TERMP_MULTICOL) == 0)
p->tcol->col = 0;
while (p->tcol->col < p->tcol->lastcol) {
p->flags |= (TERMP_NOSPACE | TERMP_NONEWLINE);
continue;
case ESCAPE_HORIZ:
+ if (*seq == '|') {
+ seq++;
+ uc = -p->col;
+ } else
+ uc = 0;
if (a2roffsu(seq, &su, SCALE_EM) == NULL)
continue;
- uc = term_hen(p, &su);
+ uc += term_hen(p, &su);
if (uc > 0)
while (uc-- > 0)
bufferc(p, ASCII_NBRSP);
}
continue;
case ESCAPE_HLINE:
- if ((seq = a2roffsu(seq, &su, SCALE_EM)) == NULL)
+ if ((cp = a2roffsu(seq, &su, SCALE_EM)) == NULL)
continue;
uc = term_hen(p, &su);
if (uc <= 0) {
lsz = p->tcol->rmargin - p->tcol->offset;
} else
lsz = uc;
- if (*seq == '\0')
+ if (*cp == seq[-1])
uc = -1;
- else if (*seq == '\\') {
- seq++;
+ else if (*cp == '\\') {
+ seq = cp + 1;
esc = mandoc_escape(&seq, &cp, &sz);
switch (esc) {
case ESCAPE_UNICODE:
break;
}
} else
- uc = *seq;
+ uc = *cp;
if (uc < 0x20 || (uc > 0x7E && uc < 0xA0))
uc = '_';
if (p->enc == TERMENC_ASCII) {