aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mdoc_man.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-06-10 01:28:33 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-06-10 01:28:33 +0000
commitd1008ef735ba0cceb18ab8b96c6a029d71ac93da (patch)
tree6bc78b412bd5664f5e8d6b49d4110e8e8c635707 /mdoc_man.c
parent905be966d351a2409f65ae30c5c9aa5e10b69398 (diff)
downloadmandoc-d1008ef735ba0cceb18ab8b96c6a029d71ac93da.tar.gz
mandoc-d1008ef735ba0cceb18ab8b96c6a029d71ac93da.tar.zst
mandoc-d1008ef735ba0cceb18ab8b96c6a029d71ac93da.zip
do not break the line between Bsx/Bx/Fx/Nx/Ox/Dx and its arguments
Diffstat (limited to 'mdoc_man.c')
-rw-r--r--mdoc_man.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/mdoc_man.c b/mdoc_man.c
index 230b3685..cd4acb63 100644
--- a/mdoc_man.c
+++ b/mdoc_man.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_man.c,v 1.119 2017/06/08 12:54:58 schwarze Exp $ */
+/* $Id: mdoc_man.c,v 1.120 2017/06/10 01:28:33 schwarze Exp $ */
/*
* Copyright (c) 2011-2017 Ingo Schwarze <schwarze@openbsd.org>
*
@@ -196,8 +196,8 @@ static const struct manact __manacts[MDOC_MAX - MDOC_Dd] = {
{ NULL, pre_bf, post_bf, NULL, NULL }, /* Bf */
{ cond_body, pre_enc, post_enc, "[", "]" }, /* Bo */
{ cond_body, pre_enc, post_enc, "[", "]" }, /* Bq */
- { NULL, NULL, NULL, NULL, NULL }, /* Bsx */
- { NULL, NULL, NULL, NULL, NULL }, /* Bx */
+ { NULL, pre_bk, post_bk, NULL, NULL }, /* Bsx */
+ { NULL, pre_bk, post_bk, NULL, NULL }, /* Bx */
{ NULL, pre_skip, NULL, NULL, NULL }, /* Db */
{ NULL, NULL, NULL, NULL, NULL }, /* Dc */
{ cond_body, pre_enc, post_enc, "\\(Lq", "\\(Rq" }, /* Do */
@@ -206,12 +206,12 @@ static const struct manact __manacts[MDOC_MAX - MDOC_Dd] = {
{ NULL, NULL, NULL, NULL, NULL }, /* Ef */
{ NULL, pre_em, post_font, NULL, NULL }, /* Em */
{ cond_body, pre_eo, post_eo, NULL, NULL }, /* Eo */
- { NULL, NULL, NULL, NULL, NULL }, /* Fx */
+ { NULL, pre_bk, post_bk, NULL, NULL }, /* Fx */
{ NULL, pre_sy, post_font, NULL, NULL }, /* Ms */
{ NULL, pre_no, NULL, NULL, NULL }, /* No */
{ NULL, pre_ns, NULL, NULL, NULL }, /* Ns */
- { NULL, NULL, NULL, NULL, NULL }, /* Nx */
- { NULL, NULL, NULL, NULL, NULL }, /* Ox */
+ { NULL, pre_bk, post_bk, NULL, NULL }, /* Nx */
+ { NULL, pre_bk, post_bk, NULL, NULL }, /* Ox */
{ NULL, NULL, NULL, NULL, NULL }, /* Pc */
{ NULL, NULL, post_pf, NULL, NULL }, /* Pf */
{ cond_body, pre_enc, post_enc, "(", ")" }, /* Po */
@@ -252,7 +252,7 @@ static const struct manact __manacts[MDOC_MAX - MDOC_Dd] = {
{ NULL, NULL, post_percent, NULL, NULL }, /* %C */
{ NULL, pre_skip, NULL, NULL, NULL }, /* Es */
{ cond_body, pre_en, post_en, NULL, NULL }, /* En */
- { NULL, NULL, NULL, NULL, NULL }, /* Dx */
+ { NULL, pre_bk, post_bk, NULL, NULL }, /* Dx */
{ NULL, NULL, post_percent, NULL, NULL }, /* %Q */
{ NULL, NULL, post_percent, NULL, NULL }, /* %U */
{ NULL, NULL, NULL, NULL, NULL }, /* Ta */
@@ -990,11 +990,11 @@ post_bf(DECL_ARGS)
static int
pre_bk(DECL_ARGS)
{
-
switch (n->type) {
case ROFFT_BLOCK:
return 1;
case ROFFT_BODY:
+ case ROFFT_ELEM:
outflags |= MMAN_Bk;
return 1;
default:
@@ -1005,9 +1005,18 @@ pre_bk(DECL_ARGS)
static void
post_bk(DECL_ARGS)
{
-
- if (n->type == ROFFT_BODY)
+ switch (n->type) {
+ case ROFFT_ELEM:
+ while ((n = n->parent) != NULL)
+ if (n->tok == MDOC_Bk)
+ return;
+ /* FALLTHROUGH */
+ case ROFFT_BODY:
outflags &= ~MMAN_Bk;
+ break;
+ default:
+ break;
+ }
}
static int