diff options
-rw-r--r-- | html.c | 20 | ||||
-rw-r--r-- | man_validate.c | 4 | ||||
-rw-r--r-- | mandoc.c | 8 | ||||
-rw-r--r-- | mandoc.h | 4 | ||||
-rw-r--r-- | mandoc_headers.3 | 8 | ||||
-rw-r--r-- | mdoc_markdown.c | 4 | ||||
-rw-r--r-- | out.c | 2 | ||||
-rw-r--r-- | regress/roff/esc/f.out_html | 2 | ||||
-rw-r--r-- | regress/roff/ft/badargs.out_html | 7 | ||||
-rw-r--r-- | regress/tbl/mod/Makefile | 11 | ||||
-rw-r--r-- | regress/tbl/mod/badfont.in | 12 | ||||
-rw-r--r-- | regress/tbl/mod/badfont.out_ascii | 13 | ||||
-rw-r--r-- | regress/tbl/mod/badfont.out_lint | 5 | ||||
-rw-r--r-- | regress/tbl/mod/font-eol.in | 13 | ||||
-rw-r--r-- | regress/tbl/mod/font-eol.out_ascii | 13 | ||||
-rw-r--r-- | regress/tbl/mod/font-eol.out_lint | 1 | ||||
-rw-r--r-- | regress/tbl/mod/font.out_lint | 1 | ||||
-rw-r--r-- | roff.c | 4 | ||||
-rw-r--r-- | roff_term.c | 4 | ||||
-rw-r--r-- | tbl.7 | 5 | ||||
-rw-r--r-- | tbl.h | 5 | ||||
-rw-r--r-- | tbl_data.c | 1 | ||||
-rw-r--r-- | tbl_html.c | 5 | ||||
-rw-r--r-- | tbl_layout.c | 54 | ||||
-rw-r--r-- | tbl_term.c | 24 | ||||
-rw-r--r-- | term.c | 4 | ||||
-rw-r--r-- | tree.c | 24 |
27 files changed, 174 insertions, 84 deletions
@@ -1,7 +1,7 @@ /* $Id$ */ /* - * Copyright (c) 2011-2015, 2017-2020 Ingo Schwarze <schwarze@openbsd.org> * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> + * Copyright (c) 2011-2015, 2017-2021 Ingo Schwarze <schwarze@openbsd.org> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -240,8 +240,10 @@ html_setfont(struct html *h, enum mandoc_esc font) case ESCAPE_FONTITALIC: case ESCAPE_FONTBOLD: case ESCAPE_FONTBI: - case ESCAPE_FONTCW: case ESCAPE_FONTROMAN: + case ESCAPE_FONTCR: + case ESCAPE_FONTCB: + case ESCAPE_FONTCI: break; case ESCAPE_FONT: font = ESCAPE_FONTROMAN; @@ -272,9 +274,17 @@ print_metaf(struct html *h) h->metaf = print_otag(h, TAG_B, ""); print_otag(h, TAG_I, ""); break; - case ESCAPE_FONTCW: + case ESCAPE_FONTCR: h->metaf = print_otag(h, TAG_SPAN, "c", "Li"); break; + case ESCAPE_FONTCB: + h->metaf = print_otag(h, TAG_SPAN, "c", "Li"); + print_otag(h, TAG_B, ""); + break; + case ESCAPE_FONTCI: + h->metaf = print_otag(h, TAG_SPAN, "c", "Li"); + print_otag(h, TAG_I, ""); + break; default: break; } @@ -503,8 +513,10 @@ print_encode(struct html *h, const char *p, const char *pend, int norecurse) case ESCAPE_FONTBOLD: case ESCAPE_FONTITALIC: case ESCAPE_FONTBI: - case ESCAPE_FONTCW: case ESCAPE_FONTROMAN: + case ESCAPE_FONTCR: + case ESCAPE_FONTCB: + case ESCAPE_FONTCI: if (0 == norecurse) { h->flags |= HTML_NOSPACE; if (html_setfont(h, esc)) diff --git a/man_validate.c b/man_validate.c index 87f053b8..bc250a90 100644 --- a/man_validate.c +++ b/man_validate.c @@ -239,7 +239,9 @@ check_tag(struct roff_node *n, struct roff_node *nt) case ESCAPE_FONTITALIC: case ESCAPE_FONTBI: case ESCAPE_FONTROMAN: - case ESCAPE_FONTCW: + case ESCAPE_FONTCR: + case ESCAPE_FONTCB: + case ESCAPE_FONTCI: case ESCAPE_FONTPREV: case ESCAPE_IGNORE: break; @@ -1,7 +1,7 @@ /* $Id$ */ /* * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> - * Copyright (c) 2011-2015, 2017-2020 Ingo Schwarze <schwarze@openbsd.org> + * Copyright (c) 2011-2015, 2017-2021 Ingo Schwarze <schwarze@openbsd.org> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -74,12 +74,12 @@ mandoc_font(const char *cp, int sz) case 'C': switch (cp[1]) { case 'B': - return ESCAPE_FONTBOLD; + return ESCAPE_FONTCB; case 'I': - return ESCAPE_FONTITALIC; + return ESCAPE_FONTCI; case 'R': case 'W': - return ESCAPE_FONTCW; + return ESCAPE_FONTCR; default: return ESCAPE_ERROR; } @@ -291,7 +291,9 @@ enum mandoc_esc { ESCAPE_FONTITALIC, /* italic font mode */ ESCAPE_FONTBI, /* bold italic font mode */ ESCAPE_FONTROMAN, /* roman font mode */ - ESCAPE_FONTCW, /* constant width font mode */ + ESCAPE_FONTCR, /* constant width font mode */ + ESCAPE_FONTCB, /* constant width bold font mode */ + ESCAPE_FONTCI, /* constant width italic font mode */ ESCAPE_FONTPREV, /* previous font mode */ ESCAPE_NUMBERED, /* a numbered glyph */ ESCAPE_UNICODE, /* a unicode codepoint */ diff --git a/mandoc_headers.3 b/mandoc_headers.3 index f55d491d..d9e9b94f 100644 --- a/mandoc_headers.3 +++ b/mandoc_headers.3 @@ -1,6 +1,6 @@ .\" $Id$ .\" -.\" Copyright (c) 2014-2020 Ingo Schwarze <schwarze@openbsd.org> +.\" Copyright (c) 2014-2021 Ingo Schwarze <schwarze@openbsd.org> .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -167,7 +167,11 @@ parse tree; can be used everywhere. Requires .In sys/types.h for -.Vt size_t . +.Vt size_t +and +.Qq Pa mandoc.h +for +.Vt enum mandoc_esc . .Pp Provides .Vt enum tbl_cellt , diff --git a/mdoc_markdown.c b/mdoc_markdown.c index 5e1d01cf..958b052f 100644 --- a/mdoc_markdown.c +++ b/mdoc_markdown.c @@ -603,16 +603,18 @@ md_word(const char *s) md_rawword("markdown"); continue; case ESCAPE_FONTBOLD: + case ESCAPE_FONTCB: nextfont = "**"; break; case ESCAPE_FONTITALIC: + case ESCAPE_FONTCI: nextfont = "*"; break; case ESCAPE_FONTBI: nextfont = "***"; break; case ESCAPE_FONT: - case ESCAPE_FONTCW: + case ESCAPE_FONTCR: case ESCAPE_FONTROMAN: nextfont = ""; break; @@ -22,11 +22,13 @@ #include <assert.h> #include <ctype.h> #include <stdint.h> +#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include "mandoc_aux.h" +#include "mandoc.h" #include "tbl.h" #include "out.h" diff --git a/regress/roff/esc/f.out_html b/regress/roff/esc/f.out_html index 887175f6..30f5c7e1 100644 --- a/regress/roff/esc/f.out_html +++ b/regress/roff/esc/f.out_html @@ -1,4 +1,4 @@ numbers: <b><i>bolditalic</i></b><b>bold</b><i>italic</i>roman letters: <b>bold</b><i>italic</i><b>back</b><b><i>bolditalic</i></b>roman multiletter: <b>bold</b>empty<i>italic</i>back<b><i>bolditalic</i></b>roman -typewriter: <span class="Li">roman</span><b>bold</b><span class="Li">roman</span><i>italic</i>roman +typewriter: <span class="Li">roman</span><span class="Li"><b>bold</b></span><span class="Li">roman</span><span class="Li"><i>italic</i></span>roman diff --git a/regress/roff/ft/badargs.out_html b/regress/roff/ft/badargs.out_html index a332e3a2..686ca476 100644 --- a/regress/roff/ft/badargs.out_html +++ b/regress/roff/ft/badargs.out_html @@ -1,6 +1,7 @@ <br/> default font <i>italic</i> <b><i>bold italic</i></b> - <span class="Li">typeqriter</span> <span class="Li">roman</span> <b>bold</b> - <i>italic</i> <b>bold</b> <b>still bold</b> <i>italic</i> <i>back to - bold</i> <i>back to italic</i> + <span class="Li">typeqriter</span> <span class="Li">roman</span> + <span class="Li"><b>bold</b></span> <span class="Li"><i>italic</i></span> + <b>bold</b> <b>still bold</b> <i>italic</i> <i>back to bold</i> <i>back to + italic</i> <br/> diff --git a/regress/tbl/mod/Makefile b/regress/tbl/mod/Makefile index 96547d64..7bbf30e5 100644 --- a/regress/tbl/mod/Makefile +++ b/regress/tbl/mod/Makefile @@ -1,15 +1,16 @@ -# $OpenBSD: Makefile,v 1.2 2015/02/10 11:02:19 schwarze Exp $ +# $OpenBSD: Makefile,v 1.6 2021/08/10 12:36:42 schwarze Exp $ -REGRESS_TARGETS = badfont expand expand-toowide font misalign spacing width -LINT_TARGETS = badfont font +REGRESS_TARGETS = badfont expand expand-toowide font font-eol +REGRESS_TARGETS += misalign spacing width +LINT_TARGETS = badfont font font-eol -# groff-1.22.3 defects: +# groff-1.22.4 defects: # - The "f" font modifier swallows a following newline character. # - When space is insufficient (on either side) for properly aligning # a number, GNU tbl(1) moves the number too much to the right, # overflowing the column, even if space would be sufficient without # left padding. -SKIP_GROFF = badfont misalign +SKIP_GROFF = font-eol misalign .include <bsd.regress.mk> diff --git a/regress/tbl/mod/badfont.in b/regress/tbl/mod/badfont.in index 2a4f0d0a..12303149 100644 --- a/regress/tbl/mod/badfont.in +++ b/regress/tbl/mod/badfont.in @@ -1,15 +1,17 @@ -.\" $OpenBSD: badfont.in,v 1.2 2017/07/04 14:53:27 schwarze Exp $ -.TH TBL-MOD-BADFONT 1 "February 10, 2015" +.\" $OpenBSD: badfont.in,v 1.3 2021/08/10 12:36:42 schwarze Exp $ +.TH TBL-MOD-BADFONT 1 "August 9, 2021" .SH NAME tbl-mod-badfont \- invalid font modifiers in table layouts .SH DESCRIPTION normal text .TS box tab(:); -lfB lf +lfI lfX +lfB lfIB lfI lf. lfB lfI. -bold:none -italic:none +italic:one char +bold:two chars +italic:dot bold:italic .TE diff --git a/regress/tbl/mod/badfont.out_ascii b/regress/tbl/mod/badfont.out_ascii index 43683330..4cd3bd3f 100644 --- a/regress/tbl/mod/badfont.out_ascii +++ b/regress/tbl/mod/badfont.out_ascii @@ -6,9 +6,10 @@ NNAAMMEE DDEESSCCRRIIPPTTIIOONN normal text - +----------------+ - |bboolldd none | - |_i_t_a_l_i_c none | - |bboolldd _i_t_a_l_i_c | - +----------------+ -OpenBSD February 10, 2015 TBL-MOD-BADFONT(1) + +-------------------+ + |_i_t_a_l_i_c one char | + |bboolldd two chars | + |_i_t_a_l_i_c dot | + |bboolldd _i_t_a_l_i_c | + +-------------------+ +OpenBSD August 9, 2021 TBL-MOD-BADFONT(1) diff --git a/regress/tbl/mod/badfont.out_lint b/regress/tbl/mod/badfont.out_lint index c19bae82..7884ec88 100644 --- a/regress/tbl/mod/badfont.out_lint +++ b/regress/tbl/mod/badfont.out_lint @@ -1,2 +1,3 @@ -mandoc: badfont.in:9:7: WARNING: unknown font, skipping request: TS f -mandoc: badfont.in:10:7: WARNING: unknown font, skipping request: TS f. +mandoc: badfont.in:9:7: WARNING: unknown font, skipping request: TS fX +mandoc: badfont.in:10:7: WARNING: unknown font, skipping request: TS fIB +mandoc: badfont.in:11:7: WARNING: unknown font, skipping request: TS f. diff --git a/regress/tbl/mod/font-eol.in b/regress/tbl/mod/font-eol.in new file mode 100644 index 00000000..fadf66ec --- /dev/null +++ b/regress/tbl/mod/font-eol.in @@ -0,0 +1,13 @@ +.\" $OpenBSD: font-eol.in,v 1.1 2021/08/10 12:36:42 schwarze Exp $ +.TH TBL-MOD-FONT-EOL 1 "August 9, 2021" +.SH NAME +tbl-mod-font-eol \- font modifier at eol in table layout +.SH DESCRIPTION +normal text +.TS +box tab(:); +lfB lf +lfB lfI. +bold:none +bold:italic +.TE diff --git a/regress/tbl/mod/font-eol.out_ascii b/regress/tbl/mod/font-eol.out_ascii new file mode 100644 index 00000000..c87d5aba --- /dev/null +++ b/regress/tbl/mod/font-eol.out_ascii @@ -0,0 +1,13 @@ +TBL-MOD-FONT-EOL(1) General Commands Manual TBL-MOD-FONT-EOL(1) + +NNAAMMEE + tbl-mod-font-eol - font modifier at eol in table layout + +DDEESSCCRRIIPPTTIIOONN + normal text + + +--------------+ + |bboolldd none | + |bboolldd _i_t_a_l_i_c | + +--------------+ +OpenBSD August 9, 2021 TBL-MOD-FONT-EOL(1) diff --git a/regress/tbl/mod/font-eol.out_lint b/regress/tbl/mod/font-eol.out_lint new file mode 100644 index 00000000..c7f83f34 --- /dev/null +++ b/regress/tbl/mod/font-eol.out_lint @@ -0,0 +1 @@ +mandoc: font-eol.in:9:7: WARNING: unknown font, skipping request: TS f diff --git a/regress/tbl/mod/font.out_lint b/regress/tbl/mod/font.out_lint index 06046a43..7ddd6280 100644 --- a/regress/tbl/mod/font.out_lint +++ b/regress/tbl/mod/font.out_lint @@ -1,4 +1,3 @@ -mandoc: font.in:9:6: WARNING: unknown font, skipping request: TS fCW|ci mandoc: font.in:19:2: WARNING: tab in filled text mandoc: font.in:19:4: WARNING: tab in filled text mandoc: font.in:19:6: WARNING: tab in filled text @@ -3667,7 +3667,9 @@ roff_char(ROFF_ARGS) case ESCAPE_FONTITALIC: case ESCAPE_FONTBOLD: case ESCAPE_FONTBI: - case ESCAPE_FONTCW: + case ESCAPE_FONTCR: + case ESCAPE_FONTCB: + case ESCAPE_FONTCI: case ESCAPE_FONTPREV: font++; break; diff --git a/roff_term.c b/roff_term.c index 7f5058a4..771472d6 100644 --- a/roff_term.c +++ b/roff_term.c @@ -112,9 +112,11 @@ roff_term_pre_ft(ROFF_TERM_ARGS) cp = n->child->string; switch (mandoc_font(cp, (int)strlen(cp))) { case ESCAPE_FONTBOLD: + case ESCAPE_FONTCB: term_fontrepl(p, TERMFONT_BOLD); break; case ESCAPE_FONTITALIC: + case ESCAPE_FONTCI: term_fontrepl(p, TERMFONT_UNDER); break; case ESCAPE_FONTBI: @@ -124,7 +126,7 @@ roff_term_pre_ft(ROFF_TERM_ARGS) term_fontlast(p); break; case ESCAPE_FONTROMAN: - case ESCAPE_FONTCW: + case ESCAPE_FONTCR: term_fontrepl(p, TERMFONT_NONE); break; default: @@ -178,10 +178,11 @@ of any other column also having the .Cm e modifier. .It Cm f -The next character selects the font to use for this cell. +The next one or two characters select the font to use for this cell. +One-character font names must be followed by a blank or period. See the .Xr roff 7 -manual for supported one-character font names. +manual for supported font names. .It Cm i Use an italic font for the contents of this cell. .It Cm m @@ -1,7 +1,7 @@ /* $Id$ */ /* * Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> - * Copyright (c) 2014, 2015, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org> + * Copyright (c) 2014,2015,2017,2018,2021 Ingo Schwarze <schwarze@openbsd.org> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -57,14 +57,13 @@ struct tbl_cell { int vert; /* Width of subsequent vertical line. */ int col; /* Column number, starting from 0. */ int flags; -#define TBL_CELL_BOLD (1 << 0) /* b, B, fB */ -#define TBL_CELL_ITALIC (1 << 1) /* i, I, fI */ #define TBL_CELL_TALIGN (1 << 2) /* t, T */ #define TBL_CELL_UP (1 << 3) /* u, U */ #define TBL_CELL_BALIGN (1 << 4) /* d, D */ #define TBL_CELL_WIGN (1 << 5) /* z, Z */ #define TBL_CELL_EQUAL (1 << 6) /* e, E */ #define TBL_CELL_WMAX (1 << 7) /* x, X */ + enum mandoc_esc font; enum tbl_cellt pos; }; @@ -78,6 +78,7 @@ getdata(struct tbl_node *tbl, struct tbl_span *dp, if (dp->layout->last->col + 1 < dp->opts->cols) { cp = mandoc_calloc(1, sizeof(*cp)); cp->pos = TBL_CELL_LEFT; + cp->font = ESCAPE_FONTROMAN; cp->spacing = SIZE_MAX; dp->layout->last->next = cp; cp->col = dp->layout->last->col + 1; @@ -243,10 +243,7 @@ print_tbl(struct html *h, const struct tbl_span *sp) "border-right-style", rborder); if (dp->string != NULL) { save_font = h->metac; - if (dp->layout->flags & TBL_CELL_BOLD) - html_setfont(h, ESCAPE_FONTBOLD); - else if (dp->layout->flags & TBL_CELL_ITALIC) - html_setfont(h, ESCAPE_FONTITALIC); + html_setfont(h, dp->layout->font); if (dp->layout->pos == TBL_CELL_LONG) print_text(h, "\\[u2003]"); /* em space */ print_text(h, dp->string); diff --git a/tbl_layout.c b/tbl_layout.c index 34952e06..7c8764e2 100644 --- a/tbl_layout.c +++ b/tbl_layout.c @@ -1,7 +1,8 @@ /* $Id$ */ /* * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> - * Copyright (c) 2012, 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org> + * Copyright (c) 2012, 2014, 2015, 2017, 2020, 2021 + * Ingo Schwarze <schwarze@openbsd.org> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -67,6 +68,8 @@ mods(struct tbl_node *tbl, struct tbl_cell *cp, char *endptr; unsigned long spacing; size_t sz; + int isz; + enum mandoc_esc fontesc; mod: while (p[*pos] == ' ' || p[*pos] == '\t') @@ -105,7 +108,7 @@ mod: switch (tolower((unsigned char)p[(*pos)++])) { case 'b': - cp->flags |= TBL_CELL_BOLD; + cp->font = ESCAPE_FONTBOLD; goto mod; case 'd': cp->flags |= TBL_CELL_BALIGN; @@ -116,7 +119,7 @@ mod: case 'f': break; case 'i': - cp->flags |= TBL_CELL_ITALIC; + cp->font = ESCAPE_FONTITALIC; goto mod; case 'm': mandoc_msg(MANDOCERR_TBLLAYOUT_MOD, ln, *pos, "m"); @@ -170,40 +173,34 @@ mod: goto mod; } + while (p[*pos] == ' ' || p[*pos] == '\t') + (*pos)++; + /* Ignore parenthised font names for now. */ if (p[*pos] == '(') goto mod; - /* Support only one-character font-names for now. */ - - if (p[*pos] == '\0' || (p[*pos + 1] != ' ' && p[*pos + 1] != '.')) { + isz = 0; + if (p[*pos] != '\0') + isz++; + if (strchr(" \t.", p[*pos + isz]) == NULL) + isz++; + + fontesc = mandoc_font(p + *pos, isz); + + switch (fontesc) { + case ESCAPE_FONTPREV: + case ESCAPE_ERROR: mandoc_msg(MANDOCERR_FT_BAD, ln, *pos, "TS %s", p + *pos - 1); - if (p[*pos] != '\0') - (*pos)++; - if (p[*pos] != '\0') - (*pos)++; - goto mod; - } - - switch (p[(*pos)++]) { - case '3': - case 'B': - cp->flags |= TBL_CELL_BOLD; - goto mod; - case '2': - case 'I': - cp->flags |= TBL_CELL_ITALIC; - goto mod; - case '1': - case 'R': - goto mod; + break; default: - mandoc_msg(MANDOCERR_FT_BAD, - ln, *pos - 1, "TS f%c", p[*pos - 1]); - goto mod; + cp->font = fontesc; + break; } + *pos += isz; + goto mod; } static void @@ -362,6 +359,7 @@ cell_alloc(struct tbl_node *tbl, struct tbl_row *rp, enum tbl_cellt pos) p = mandoc_calloc(1, sizeof(*p)); p->spacing = SIZE_MAX; + p->font = ESCAPE_FONTROMAN; p->pos = pos; if ((pp = rp->last) != NULL) { @@ -1,7 +1,7 @@ /* $Id$ */ /* * Copyright (c) 2009, 2011 Kristaps Dzonsons <kristaps@bsd.lv> - * Copyright (c) 2011-2020 Ingo Schwarze <schwarze@openbsd.org> + * Copyright (c) 2011-2021 Ingo Schwarze <schwarze@openbsd.org> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -923,10 +923,24 @@ tbl_word(struct termp *tp, const struct tbl_dat *dp) int prev_font; prev_font = tp->fonti; - if (dp->layout->flags & TBL_CELL_BOLD) - term_fontpush(tp, TERMFONT_BOLD); - else if (dp->layout->flags & TBL_CELL_ITALIC) - term_fontpush(tp, TERMFONT_UNDER); + switch (dp->layout->font) { + case ESCAPE_FONTBI: + term_fontpush(tp, TERMFONT_BI); + break; + case ESCAPE_FONTBOLD: + case ESCAPE_FONTCB: + term_fontpush(tp, TERMFONT_BOLD); + break; + case ESCAPE_FONTITALIC: + case ESCAPE_FONTCI: + term_fontpush(tp, TERMFONT_UNDER); + break; + case ESCAPE_FONTROMAN: + case ESCAPE_FONTCR: + break; + default: + abort(); + } term_word(tp, dp->string); @@ -589,16 +589,18 @@ term_word(struct termp *p, const char *word) uc = *seq; break; case ESCAPE_FONTBOLD: + case ESCAPE_FONTCB: term_fontrepl(p, TERMFONT_BOLD); continue; case ESCAPE_FONTITALIC: + case ESCAPE_FONTCI: term_fontrepl(p, TERMFONT_UNDER); continue; case ESCAPE_FONTBI: term_fontrepl(p, TERMFONT_BI); continue; case ESCAPE_FONT: - case ESCAPE_FONTCW: + case ESCAPE_FONTCR: case ESCAPE_FONTROMAN: term_fontrepl(p, TERMFONT_NONE); continue; @@ -1,7 +1,7 @@ /* $Id$ */ /* - * Copyright (c) 2013-2015, 2017-2020 Ingo Schwarze <schwarze@openbsd.org> * Copyright (c) 2008, 2009, 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> + * Copyright (c) 2013-2015, 2017-2021 Ingo Schwarze <schwarze@openbsd.org> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -471,10 +471,28 @@ print_span(const struct tbl_span *sp, int indent) else { printf("%d", cp->col); print_cellt(dp->layout->pos); - if (cp->flags & TBL_CELL_BOLD) + switch (cp->font) { + case ESCAPE_FONTBOLD: putchar('b'); - if (cp->flags & TBL_CELL_ITALIC) + break; + case ESCAPE_FONTITALIC: putchar('i'); + break; + case ESCAPE_FONTBI: + fputs("bi", stdout); + break; + case ESCAPE_FONTCR: + putchar('c'); + break; + case ESCAPE_FONTCB: + fputs("cb", stdout); + break; + case ESCAPE_FONTCI: + fputs("ci", stdout); + break; + default: + abort(); + } if (cp->flags & TBL_CELL_TALIGN) putchar('t'); if (cp->flags & TBL_CELL_UP) |