-/* $Id: mdoc_term.c,v 1.31 2009/07/12 19:13:12 kristaps Exp $ */
+/* $Id: mdoc_term.c,v 1.36 2009/07/12 20:30:35 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
static int termp_ap_pre(DECL_ARGS);
static int termp_aq_pre(DECL_ARGS);
static int termp_ar_pre(DECL_ARGS);
-static int termp_at_pre(DECL_ARGS);
static int termp_bd_pre(DECL_ARGS);
static int termp_bf_pre(DECL_ARGS);
static int termp_bq_pre(DECL_ARGS);
static int termp_sm_pre(DECL_ARGS);
static int termp_sq_pre(DECL_ARGS);
static int termp_ss_pre(DECL_ARGS);
-static int termp_st_pre(DECL_ARGS);
static int termp_sx_pre(DECL_ARGS);
static int termp_sy_pre(DECL_ARGS);
static int termp_ud_pre(DECL_ARGS);
{ NULL, NULL }, /* Ot */
{ termp_pa_pre, NULL }, /* Pa */
{ termp_rv_pre, NULL }, /* Rv */
- { termp_st_pre, NULL }, /* St */
+ { NULL, NULL }, /* St */
{ termp_va_pre, NULL }, /* Va */
{ termp_vt_pre, termp_vt_post }, /* Vt */
{ termp_xr_pre, NULL }, /* Xr */
{ NULL, NULL }, /* Ac */
{ termp_aq_pre, termp_aq_post }, /* Ao */
{ termp_aq_pre, termp_aq_post }, /* Aq */
- { termp_at_pre, NULL }, /* At */
+ { NULL, NULL }, /* At */
{ NULL, NULL }, /* Bc */
{ termp_bf_pre, NULL }, /* Bf */
{ termp_bq_pre, termp_bq_post }, /* Bo */
}
-/* ARGSUSED */
-static int
-termp_st_pre(DECL_ARGS)
-{
- const char *cp;
-
- if (node->child && (cp = mdoc_a2st(node->child->string)))
- term_word(p, cp);
- return(0);
-}
-
-
/* ARGSUSED */
static int
termp_rs_pre(DECL_ARGS)
{
int i;
- /* FIXME: mandated by parser. */
-
- if (-1 == (i = arg_getattr(MDOC_Std, node)))
- errx(1, "expected -std argument");
- if (1 != node->args->argv[i].sz)
- errx(1, "expected -std argument");
+ i = arg_getattr(MDOC_Std, node);
+ assert(-1 != i);
+ assert(node->args->argv[i].sz);
term_newln(p);
term_word(p, "The");
{
int i;
- /* FIXME: mandated by parser? */
-
- if (-1 == (i = arg_getattr(MDOC_Std, node)))
- errx(1, "expected -std argument");
- if (1 != node->args->argv[i].sz)
- errx(1, "expected -std argument");
+ i = arg_getattr(MDOC_Std, node);
+ assert(-1 != i);
+ assert(node->args->argv[i].sz);
term_word(p, "The");
p->flags |= ttypes[TTYPE_PROG];
termp_vt_post(DECL_ARGS)
{
- if (node->sec == SEC_SYNOPSIS)
+ if (node->sec != SEC_SYNOPSIS)
+ return;
+ if (node->next && MDOC_Vt == node->next->tok)
+ term_newln(p);
+ else if (node->next)
term_vspace(p);
}
}
-/* ARGSUSED */
-static int
-termp_at_pre(DECL_ARGS)
-{
- const char *att;
-
- att = NULL;
-
- if (node->child)
- att = mdoc_a2att(node->child->string);
- if (NULL == att)
- att = "AT&T UNIX";
-
- term_word(p, att);
- return(0);
-}
-
-
/* ARGSUSED */
static int
termp_brq_pre(DECL_ARGS)
const struct mdoc_node *n;
if (MDOC_BODY == node->type) {
+ p->flags |= TERMP_NOSPACE;
term_word(p, "(");
p->flags |= TERMP_NOSPACE;
return(1);
} else if (MDOC_HEAD != node->type)
return(1);
- /* XXX - groff shows only first parameter */
-
p->flags |= ttypes[TTYPE_FUNC_NAME];
for (n = node->child; n; n = n->next) {
assert(MDOC_TEXT == n->type);