do not break the line between Bsx/Bx/Fx/Nx/Ox/Dx and its arguments
authorschwarze <schwarze@openbsd.org>
Sat, 10 Jun 2017 01:27:44 +0000 (01:27 +0000)
committerschwarze <schwarze@openbsd.org>
Sat, 10 Jun 2017 01:27:44 +0000 (01:27 +0000)
usr.bin/mandoc/mdoc_man.c

index 25505ee..ab3be7a 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: mdoc_man.c,v 1.117 2017/06/08 12:54:40 schwarze Exp $ */
+/*     $OpenBSD: mdoc_man.c,v 1.118 2017/06/10 01:27:44 schwarze Exp $ */
 /*
  * Copyright (c) 2011-2017 Ingo Schwarze <schwarze@openbsd.org>
  *
@@ -194,8 +194,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 */
@@ -204,12 +204,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 */
@@ -250,7 +250,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 */
@@ -988,11 +988,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:
@@ -1003,9 +1003,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