version 1.47, 2009/11/14 12:04:59 |
version 1.52, 2010/01/01 17:14:29 |
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
*/ |
*/ |
|
#ifdef HAVE_CONFIG_H |
|
#include "config.h" |
|
#endif |
|
|
#include <sys/types.h> |
#include <sys/types.h> |
#include <sys/param.h> |
|
|
|
#include <assert.h> |
#include <assert.h> |
#include <ctype.h> |
#include <ctype.h> |
|
|
const struct mdoc_node *n, \ |
const struct mdoc_node *n, \ |
struct html *h |
struct html *h |
|
|
|
#ifndef MIN |
|
#define MIN(a,b) ((/*CONSTCOND*/(a)<(b))?(a):(b)) |
|
#endif |
|
|
struct htmlmdoc { |
struct htmlmdoc { |
int (*pre)(MDOC_ARGS); |
int (*pre)(MDOC_ARGS); |
void (*post)(MDOC_ARGS); |
void (*post)(MDOC_ARGS); |
Line 126 static int mdoc_vt_pre(MDOC_ARGS); |
|
Line 133 static int mdoc_vt_pre(MDOC_ARGS); |
|
static int mdoc_xr_pre(MDOC_ARGS); |
static int mdoc_xr_pre(MDOC_ARGS); |
static int mdoc_xx_pre(MDOC_ARGS); |
static int mdoc_xx_pre(MDOC_ARGS); |
|
|
#ifdef __linux__ |
|
extern size_t strlcpy(char *, const char *, size_t); |
|
extern size_t strlcat(char *, const char *, size_t); |
|
#endif |
|
|
|
static const struct htmlmdoc mdocs[MDOC_MAX] = { |
static const struct htmlmdoc mdocs[MDOC_MAX] = { |
{mdoc_ap_pre, NULL}, /* Ap */ |
{mdoc_ap_pre, NULL}, /* Ap */ |
{NULL, NULL}, /* Dd */ |
{NULL, NULL}, /* Dd */ |
Line 424 print_mdoc_node(MDOC_ARGS) |
|
Line 426 print_mdoc_node(MDOC_ARGS) |
|
break; |
break; |
case (MDOC_TEXT): |
case (MDOC_TEXT): |
print_text(h, n->string); |
print_text(h, n->string); |
break; |
return; |
default: |
default: |
if (mdocs[n->tok].pre) |
if (mdocs[n->tok].pre) |
child = (*mdocs[n->tok].pre)(m, n, h); |
child = (*mdocs[n->tok].pre)(m, n, h); |
Line 441 print_mdoc_node(MDOC_ARGS) |
|
Line 443 print_mdoc_node(MDOC_ARGS) |
|
case (MDOC_ROOT): |
case (MDOC_ROOT): |
mdoc_root_post(m, n, h); |
mdoc_root_post(m, n, h); |
break; |
break; |
case (MDOC_TEXT): |
|
break; |
|
default: |
default: |
if (mdocs[n->tok].post) |
if (mdocs[n->tok].post) |
(*mdocs[n->tok].post)(m, n, h); |
(*mdocs[n->tok].post)(m, n, h); |
Line 663 mdoc_fl_pre(MDOC_ARGS) |
|
Line 663 mdoc_fl_pre(MDOC_ARGS) |
|
|
|
PAIR_CLASS_INIT(&tag, "flag"); |
PAIR_CLASS_INIT(&tag, "flag"); |
print_otag(h, TAG_SPAN, 1, &tag); |
print_otag(h, TAG_SPAN, 1, &tag); |
if (MDOC_Fl == n->tok) { |
|
print_text(h, "\\-"); |
/* `Cm' has no leading hyphen. */ |
|
|
|
if (MDOC_Cm == n->tok) |
|
return(1); |
|
|
|
print_text(h, "\\-"); |
|
|
|
/* A blank `Fl' should incur a subsequent space. */ |
|
|
|
if (n->child) |
h->flags |= HTML_NOSPACE; |
h->flags |= HTML_NOSPACE; |
} |
|
return(1); |
return(1); |
} |
} |
|
|
Line 1575 mdoc_vt_pre(MDOC_ARGS) |
|
Line 1584 mdoc_vt_pre(MDOC_ARGS) |
|
struct roffsu su; |
struct roffsu su; |
|
|
if (SEC_SYNOPSIS == n->sec) { |
if (SEC_SYNOPSIS == n->sec) { |
if (n->next && MDOC_Vt != n->next->tok) { |
if (n->prev && MDOC_Vt != n->prev->tok) { |
SCALE_VS_INIT(&su, 1); |
SCALE_VS_INIT(&su, 1); |
bufcat_su(h, "margin-bottom", &su); |
bufcat_su(h, "margin-top", &su); |
PAIR_STYLE_INIT(&tag, h); |
PAIR_STYLE_INIT(&tag, h); |
print_otag(h, TAG_DIV, 1, &tag); |
print_otag(h, TAG_DIV, 1, &tag); |
} else |
} else |