version 1.282, 2020/09/02 16:40:36 |
version 1.285, 2022/01/10 18:01:35 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
|
* Copyright (c) 2010-2022 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2010-2020 Ingo Schwarze <schwarze@openbsd.org> |
|
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
* purpose with or without fee is hereby granted, provided that the above |
* purpose with or without fee is hereby granted, provided that the above |
Line 58 term_setcol(struct termp *p, size_t maxtcol) |
|
Line 58 term_setcol(struct termp *p, size_t maxtcol) |
|
void |
void |
term_free(struct termp *p) |
term_free(struct termp *p) |
{ |
{ |
|
term_tab_free(); |
for (p->tcol = p->tcols; p->tcol < p->tcols + p->maxtcol; p->tcol++) |
for (p->tcol = p->tcols; p->tcol < p->tcols + p->maxtcol; p->tcol++) |
free(p->tcol->buf); |
free(p->tcol->buf); |
free(p->tcols); |
free(p->tcols); |
Line 589 term_word(struct termp *p, const char *word) |
|
Line 590 term_word(struct termp *p, const char *word) |
|
uc = *seq; |
uc = *seq; |
break; |
break; |
case ESCAPE_FONTBOLD: |
case ESCAPE_FONTBOLD: |
|
case ESCAPE_FONTCB: |
term_fontrepl(p, TERMFONT_BOLD); |
term_fontrepl(p, TERMFONT_BOLD); |
continue; |
continue; |
case ESCAPE_FONTITALIC: |
case ESCAPE_FONTITALIC: |
|
case ESCAPE_FONTCI: |
term_fontrepl(p, TERMFONT_UNDER); |
term_fontrepl(p, TERMFONT_UNDER); |
continue; |
continue; |
case ESCAPE_FONTBI: |
case ESCAPE_FONTBI: |
term_fontrepl(p, TERMFONT_BI); |
term_fontrepl(p, TERMFONT_BI); |
continue; |
continue; |
case ESCAPE_FONT: |
case ESCAPE_FONT: |
case ESCAPE_FONTCW: |
case ESCAPE_FONTCR: |
case ESCAPE_FONTROMAN: |
case ESCAPE_FONTROMAN: |
term_fontrepl(p, TERMFONT_NONE); |
term_fontrepl(p, TERMFONT_NONE); |
continue; |
continue; |
Line 633 term_word(struct termp *p, const char *word) |
|
Line 636 term_word(struct termp *p, const char *word) |
|
if (a2roffsu(seq, &su, SCALE_EM) == NULL) |
if (a2roffsu(seq, &su, SCALE_EM) == NULL) |
continue; |
continue; |
uc += term_hen(p, &su); |
uc += term_hen(p, &su); |
if (uc > 0) |
if (uc > 0) { |
while (uc-- > 0) |
while (uc > 0) { |
bufferc(p, ASCII_NBRSP); |
bufferc(p, ASCII_NBRSP); |
else if (p->col > (size_t)(-uc)) |
uc -= term_len(p, 1); |
|
} |
|
} else if (p->col > (size_t)(-uc)) { |
p->col += uc; |
p->col += uc; |
else { |
} else { |
uc += p->col; |
uc += p->col; |
p->col = 0; |
p->col = 0; |
if (p->tcol->offset > (size_t)(-uc)) { |
if (p->tcol->offset > (size_t)(-uc)) { |