-/* $Id: term.c,v 1.42 2009/03/05 13:12:12 kristaps Exp $ */
+/* $Id: term.c,v 1.43 2009/03/06 14:13:47 kristaps Exp $ */
/*
* Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
*
DECL_POST(termp___);
DECL_POST(termp_bl);
DECL_POST(termp_bx);
+DECL_POST(termp_lb);
const struct termact __termacts[MDOC_MAX] = {
{ NULL, NULL }, /* \" */
{ NULL, NULL }, /* Hf */
{ NULL, NULL }, /* Fr */
{ termp_ud_pre, NULL }, /* Ud */
+ { NULL, termp_lb_post }, /* lb */
};
const struct termact *termacts = __termacts;
static int
termp_st_pre(DECL_ARGS)
{
- const char *tp;
+ const char *cp;
- assert(1 == node->data.elem.argc);
-
- tp = mdoc_st2a(node->data.elem.argv[0].arg);
- word(p, tp);
-
- return(1);
+ /* XXX - if child isn't text? */
+ if (node->child)
+ if ((cp = mdoc_a2st(node->child->data.text.string)))
+ word(p, cp);
+ return(0);
}
}
+/* ARGSUSED */
+static void
+termp_lb_post(DECL_ARGS)
+{
+
+ newln(p);
+}
+
+
/* ARGSUSED */
static int
termp_ud_pre(DECL_ARGS)
static int
termp_at_pre(DECL_ARGS)
{
- enum mdoc_att c;
+ const char *att;
+
+ att = NULL;
- c = ATT_DEFAULT;
if (node->child) {
assert(MDOC_TEXT == node->child->type);
- c = mdoc_atoatt(node->child->data.text.string);
+ att = mdoc_a2att(node->child->data.text.string);
}
- word(p, mdoc_att2a(c));
+ if (NULL == att)
+ att = "AT&T UNIX";
+
+ word(p, att);
return(0);
}