version 1.30, 2018/12/12 21:54:35 |
version 1.39, 2022/01/12 04:43:26 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 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 |
* 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> |
|
|
|
#include "mandoc.h" |
|
#include "roff.h" |
#include "tbl.h" |
#include "tbl.h" |
#include "out.h" |
#include "out.h" |
#include "html.h" |
#include "html.h" |
Line 79 html_tbl_sulen(const struct roffsu *su, void *arg) |
|
Line 81 html_tbl_sulen(const struct roffsu *su, void *arg) |
|
static void |
static void |
html_tblopen(struct html *h, const struct tbl_span *sp) |
html_tblopen(struct html *h, const struct tbl_span *sp) |
{ |
{ |
|
html_close_paragraph(h); |
if (h->tbl.cols == NULL) { |
if (h->tbl.cols == NULL) { |
h->tbl.len = html_tbl_len; |
h->tbl.len = html_tbl_len; |
h->tbl.slen = html_tbl_strlen; |
h->tbl.slen = html_tbl_strlen; |
Line 112 print_tbl(struct html *h, const struct tbl_span *sp) |
|
Line 115 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; |
int i; |
int i; |
|
|
if (h->tblt == NULL) |
if (h->tblt == NULL) |
Line 237 print_tbl(struct html *h, const struct tbl_span *sp) |
|
Line 244 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; |
|
html_setfont(h, dp->layout->font); |
|
if (dp->layout->pos == TBL_CELL_LONG) |
|
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); |
|
} |
} |
} |
|
|
print_tagq(h, tt); |
print_tagq(h, tt); |