summaryrefslogtreecommitdiffstats
path: root/term.c
diff options
context:
space:
mode:
Diffstat (limited to 'term.c')
-rw-r--r--term.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/term.c b/term.c
index 195db212..e4781c35 100644
--- a/term.c
+++ b/term.c
@@ -120,6 +120,7 @@ DECL_PREPOST(termp_fo);
DECL_PREPOST(termp_ft);
DECL_PREPOST(termp_in);
DECL_PREPOST(termp_it);
+DECL_PREPOST(termp_lb);
DECL_PREPOST(termp_op);
DECL_PREPOST(termp_pf);
DECL_PREPOST(termp_pq);
@@ -164,7 +165,6 @@ DECL_PRE(termp_xr);
DECL_POST(termp___);
DECL_POST(termp_bl);
DECL_POST(termp_bx);
-DECL_POST(termp_lb);
const struct termact __termacts[MDOC_MAX] = {
{ NULL, NULL }, /* \" */
@@ -273,7 +273,7 @@ const struct termact __termacts[MDOC_MAX] = {
{ NULL, NULL }, /* Hf */
{ NULL, NULL }, /* Fr */
{ termp_ud_pre, NULL }, /* Ud */
- { NULL, termp_lb_post }, /* lb */
+ { termp_lb_pre, termp_lb_post }, /* Lb */
};
const struct termact *termacts = __termacts;
@@ -970,6 +970,27 @@ termp_bt_pre(DECL_ARGS)
/* ARGSUSED */
+static int
+termp_lb_pre(DECL_ARGS)
+{
+ const char *lb;
+
+ if (NULL == node->child)
+ errx(1, "expected text line argument");
+ if (MDOC_TEXT != node->child->type)
+ errx(1, "expected text line argument");
+
+ if ((lb = mdoc_a2lib(node->child->string))) {
+ word(p, lb);
+ return(0);
+ }
+
+ word(p, "library");
+ return(1);
+}
+
+
+/* ARGSUSED */
static void
termp_lb_post(DECL_ARGS)
{