version 1.35, 2021/05/16 23:18:35 |
version 1.41, 2022/04/23 14:02:17 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
|
* Copyright (c) 2014, 2015, 2017, 2018, 2021, 2022 |
|
* Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2014,2015,2017,2018,2021 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 |
|
|
#include <stdlib.h> |
#include <stdlib.h> |
#include <string.h> |
#include <string.h> |
|
|
|
#if DEBUG_MEMORY |
|
#include "mandoc_dbg.h" |
|
#endif |
#include "mandoc.h" |
#include "mandoc.h" |
#include "roff.h" |
#include "roff.h" |
#include "tbl.h" |
#include "tbl.h" |
Line 115 print_tbl(struct html *h, const struct tbl_span *sp) |
|
Line 119 print_tbl(struct html *h, const struct tbl_span *sp) |
|
const struct tbl_dat *dp; |
const struct tbl_dat *dp; |
const struct tbl_cell *cp; |
const struct tbl_cell *cp; |
const struct tbl_span *psp; |
const struct tbl_span *psp; |
|
const struct roffcol *col; |
struct tag *tt; |
struct tag *tt; |
const char *hspans, *vspans, *halign, *valign; |
const char *hspans, *vspans, *halign, *valign; |
const char *bborder, *lborder, *rborder; |
const char *bborder, *lborder, *rborder; |
|
const char *ccp; |
char hbuf[4], vbuf[4]; |
char hbuf[4], vbuf[4]; |
|
size_t sz; |
enum mandoc_esc save_font; |
enum mandoc_esc save_font; |
int i; |
int i; |
|
|
Line 131 print_tbl(struct html *h, const struct tbl_span *sp) |
|
Line 138 print_tbl(struct html *h, const struct tbl_span *sp) |
|
*/ |
*/ |
|
|
if (sp->pos != TBL_SPAN_DATA) |
if (sp->pos != TBL_SPAN_DATA) |
return; |
goto out; |
|
|
/* Inhibit printing of spaces: we do padding ourselves. */ |
/* Inhibit printing of spaces: we do padding ourselves. */ |
|
|
Line 241 print_tbl(struct html *h, const struct tbl_span *sp) |
|
Line 248 print_tbl(struct html *h, const struct tbl_span *sp) |
|
"vertical-align", valign, |
"vertical-align", valign, |
"text-align", halign, |
"text-align", halign, |
"border-right-style", rborder); |
"border-right-style", rborder); |
if (dp->string != NULL) { |
if (dp->layout->pos == TBL_CELL_HORIZ || |
|
dp->layout->pos == TBL_CELL_DHORIZ || |
|
dp->pos == TBL_DATA_HORIZ || |
|
dp->pos == TBL_DATA_NHORIZ || |
|
dp->pos == TBL_DATA_DHORIZ || |
|
dp->pos == TBL_DATA_NDHORIZ) |
|
print_otag(h, TAG_HR, ""); |
|
else if (dp->string != NULL) { |
save_font = h->metac; |
save_font = h->metac; |
if (dp->layout->flags & TBL_CELL_BOLD) |
html_setfont(h, dp->layout->font); |
html_setfont(h, ESCAPE_FONTBOLD); |
|
else if (dp->layout->flags & TBL_CELL_ITALIC) |
|
html_setfont(h, ESCAPE_FONTITALIC); |
|
if (dp->layout->pos == TBL_CELL_LONG) |
if (dp->layout->pos == TBL_CELL_LONG) |
print_text(h, "\\[u2003]"); /* em space */ |
print_text(h, "\\[u2003]"); /* em space */ |
print_text(h, dp->string); |
print_text(h, dp->string); |
|
if (dp->layout->pos == TBL_CELL_NUMBER) { |
|
col = h->tbl.cols + dp->layout->col; |
|
if (col->decimal < col->nwidth) { |
|
if ((ccp = strrchr(dp->string, |
|
sp->opts->decimal)) == NULL) { |
|
/* Punctuation space. */ |
|
print_text(h, "\\[u2008]"); |
|
ccp = strchr(dp->string, '\0'); |
|
} else |
|
ccp++; |
|
sz = col->nwidth - col->decimal; |
|
while (--sz > 0) { |
|
if (*ccp == '\0') |
|
/* Figure space. */ |
|
print_text(h, |
|
"\\[u2007]"); |
|
else |
|
ccp++; |
|
} |
|
} |
|
} |
html_setfont(h, save_font); |
html_setfont(h, save_font); |
} |
} |
} |
} |
Line 258 print_tbl(struct html *h, const struct tbl_span *sp) |
|
Line 290 print_tbl(struct html *h, const struct tbl_span *sp) |
|
|
|
h->flags &= ~HTML_NONOSPACE; |
h->flags &= ~HTML_NONOSPACE; |
|
|
|
out: |
if (sp->next == NULL) { |
if (sp->next == NULL) { |
assert(h->tbl.cols); |
assert(h->tbl.cols); |
free(h->tbl.cols); |
free(h->tbl.cols); |