From aeb53baa584ae0fe0d04a3cd1e74f509d353e8c0 Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Tue, 6 Apr 2010 11:28:17 +0000 Subject: Let `Bl' accept arguments on the head line with a warning (these are ignored in the front-end device) (noted by Theo de Raadt). --- mdoc_html.c | 2 ++ mdoc_term.c | 12 +++++++++++- mdoc_validate.c | 5 +++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/mdoc_html.c b/mdoc_html.c index bfcb5674..90d22e1f 100644 --- a/mdoc_html.c +++ b/mdoc_html.c @@ -1116,6 +1116,8 @@ mdoc_bl_pre(MDOC_ARGS) { struct ord *ord; + if (MDOC_HEAD == n->type) + return(0); if (MDOC_BLOCK != n->type) return(1); if (MDOC_Enum != a2list(n)) diff --git a/mdoc_term.c b/mdoc_term.c index d1de3107..671a5ecc 100644 --- a/mdoc_term.c +++ b/mdoc_term.c @@ -99,6 +99,7 @@ static int termp_ap_pre(DECL_ARGS); static int termp_aq_pre(DECL_ARGS); static int termp_bd_pre(DECL_ARGS); static int termp_bf_pre(DECL_ARGS); +static int termp_bl_pre(DECL_ARGS); static int termp_bold_pre(DECL_ARGS); static int termp_bq_pre(DECL_ARGS); static int termp_brq_pre(DECL_ARGS); @@ -148,7 +149,7 @@ static const struct termact termacts[MDOC_MAX] = { { termp_d1_pre, termp_d1_post }, /* Dl */ { termp_bd_pre, termp_bd_post }, /* Bd */ { NULL, NULL }, /* Ed */ - { NULL, termp_bl_post }, /* Bl */ + { termp_bl_pre, termp_bl_post }, /* Bl */ { NULL, NULL }, /* El */ { termp_it_pre, termp_it_post }, /* It */ { NULL, NULL }, /* Ad */ @@ -1249,6 +1250,15 @@ termp_nd_pre(DECL_ARGS) } +/* ARGSUSED */ +static int +termp_bl_pre(DECL_ARGS) +{ + + return(MDOC_HEAD != n->type); +} + + /* ARGSUSED */ static void termp_bl_post(DECL_ARGS) diff --git a/mdoc_validate.c b/mdoc_validate.c index ef9fce61..46849243 100644 --- a/mdoc_validate.c +++ b/mdoc_validate.c @@ -1103,8 +1103,9 @@ post_bl_head(POST_ARGS) if (n->args->argv[i].arg == MDOC_Column) break; - if (i == (int)n->args->argc) - return(1); + if (i == (int)n->args->argc && n->nchild) + return(warn_count(mdoc, "==", 0, + "line arguments", n->nchild)); if (n->args->argv[i].sz && mdoc->last->child) return(mdoc_nerr(mdoc, n, ECOLMIS)); -- cgit