Implement .Fo/.Fa/.Fc indentation and break handling for -Tman.
authorschwarze <schwarze@openbsd.org>
Wed, 25 Dec 2013 22:00:34 +0000 (22:00 +0000)
committerschwarze <schwarze@openbsd.org>
Wed, 25 Dec 2013 22:00:34 +0000 (22:00 +0000)
regress/usr.bin/mandoc/mdoc/Bk/break.in
regress/usr.bin/mandoc/mdoc/Bk/break.out_ascii
regress/usr.bin/mandoc/mdoc/Bk/synopsis.in
regress/usr.bin/mandoc/mdoc/Bk/synopsis.out_ascii
regress/usr.bin/mandoc/mdoc/Fo/break.in
regress/usr.bin/mandoc/mdoc/Fo/break.out_ascii
usr.bin/mandoc/mdoc_man.c

index ce3d5a9..f690c77 100644 (file)
@@ -1,4 +1,4 @@
-.Dd $Mdocdate: May 29 2013 $
+.Dd $Mdocdate: December 25 2013 $
 .Dt BK-BREAK 1
 .Os OpenBSD
 .Sh NAME
@@ -46,4 +46,8 @@ with the text following it:
 .Pp
 .Bk -words
 .Fn xxxxxxxxxxxxxxxxxxxx "xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx" xxxxxxxxxxxxxxxxxxxx
+.Pp
+.Fo xxxxxxxxxxxxxxxxxxxx
+.Fa "xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx" xxxxxxxxxxxxxxxxxxxx
+.Fc
 .Ek
index a0b5145..0c10c30 100644 (file)
@@ -25,4 +25,6 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
      x\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bx(_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx
      _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx, _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx)
 
+     x\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bx(_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx, _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx)
+
 OpenBSD                          May 29, 2013                          OpenBSD
index 62c3e03..1f7f720 100644 (file)
@@ -1,4 +1,4 @@
-.Dd $Mdocdate: December 24 2013 $
+.Dd $Mdocdate: December 25 2013 $
 .Dt BK-SYNOPSIS 1
 .Os OpenBSD
 .Sh NAME
@@ -9,6 +9,11 @@ In the synopsis, almost all macros do not show
 .No the word keep effect they would get in a \&Bk block.
 .Pp
 .Fn xxxxxxxxxxxxxxxxxxxx "xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx" xxxxxxxxxxxxxxxxxxxx
+.Fo xxxxxxxxxxxxxxxxxxxx
+.Fa "xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx" xxxxxxxxxxxxxxxxxxxx
+.Fc
+.Pp
+Only \&Nm, used as a block macro, does:
 .Pp
 .Nm ksh
 .Op Fl +abCefhiklmnpruvXx
index 01e839f..5372a02 100644 (file)
@@ -10,6 +10,11 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
      x\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bx(_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx,
          _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx);
 
+     x\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bxx\bx(_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx,
+         _\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx_\bx);
+
+     Only Nm, used as a block macro, does:
+
      k\bks\bsh\bh [-\b-+\b+a\bab\bbC\bCe\bef\bfh\bhi\bik\bkl\blm\bmn\bnp\bpr\bru\buv\bvX\bXx\bx] [-\b-+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn]
          [-\b-c\bc _\bs_\bt_\br_\bi_\bn_\bg | -\b-s\bs | _\bf_\bi_\bl_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt _\b._\b._\b.]]
      k\bks\bsh\bh [-\b-+\b+a\bab\bbC\bCe\bef\bfh\bhi\bik\bkl\blm\bmn\bnp\bpr\bru\buv\bvX\bXx\bx] [-\b-+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn]
index 2a5d1dc..3571cbd 100644 (file)
@@ -1,11 +1,38 @@
-.Dd December 25, 2013
+.Dd $Mdocdate: December 25 2013 $
 .Dt FO-BREAK 1
 .Os OpenBSD
 .Sh NAME
 .Nm Fo-break
 .Nd line breaks in function blocks
 .Sh SYNOPSIS
+.Fd using \&Fn:
 .Ft my_long_return_type *
 .Fn my_long_function "my_long_type first_argument" "my_long_type second_argument"
+.Fd using \&Fo and single-argument \&Fa:
+.Ft my_long_return_type *
+.Fo my_long_function
+.Fa "my_long_type first_argument"
+.Fa "my_long_type second_argument"
+.Fc
+.Fd using \&Fo and multi-argument \&Fa:
+.Ft my_long_return_type *
+.Fo my_long_function
+.Fa "my_long_type first_argument" "my_long_type second_argument"
+.Fc
 .Sh DESCRIPTION
+using Fn:
+.br
 .Fn my_long_function "my_long_type first_argument" "my_long_type second_argument"
+.Pp
+using Fo and single-argument Fa:
+.br
+.Fo my_long_function
+.Fa "my_long_type first_argument"
+.Fa "my_long_type second_argument"
+.Fc
+.Pp
+using Fo and multi-argument Fa:
+.br
+.Fo my_long_function
+.Fa "my_long_type first_argument" "my_long_type second_argument"
+.Fc
index a3379b7..0da3737 100644 (file)
@@ -4,12 +4,35 @@ N\bNA\bAM\bME\bE
      F\bFo\bo-\b-b\bbr\bre\bea\bak\bk - line breaks in function blocks
 
 S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+     u\bus\bsi\bin\bng\bg F\bFn\bn:\b:
+
+     _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\br_\be_\bt_\bu_\br_\bn_\b__\bt_\by_\bp_\be _\b*
+     m\bmy\by_\b_l\blo\bon\bng\bg_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt,
+         _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt);
+
+     u\bus\bsi\bin\bng\bg F\bFo\bo a\ban\bnd\bd s\bsi\bin\bng\bgl\ble\be-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt F\bFa\ba:\b:
+
+     _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\br_\be_\bt_\bu_\br_\bn_\b__\bt_\by_\bp_\be _\b*
+     m\bmy\by_\b_l\blo\bon\bng\bg_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt,
+         _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt);
+
+     u\bus\bsi\bin\bng\bg F\bFo\bo a\ban\bnd\bd m\bmu\bul\blt\bti\bi-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt F\bFa\ba:\b:
+
      _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\br_\be_\bt_\bu_\br_\bn_\b__\bt_\by_\bp_\be _\b*
      m\bmy\by_\b_l\blo\bon\bng\bg_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt,
          _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt);
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+     using Fn:
      m\bmy\by_\b_l\blo\bon\bng\bg_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt, _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be
      _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt)
 
+     using Fo and single-argument Fa:
+     m\bmy\by_\b_l\blo\bon\bng\bg_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt,
+     _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt)
+
+     using Fo and multi-argument Fa:
+     m\bmy\by_\b_l\blo\bon\bng\bg_\b_f\bfu\bun\bnc\bct\bti\bio\bon\bn(_\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bf_\bi_\br_\bs_\bt_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt,
+     _\bm_\by_\b__\bl_\bo_\bn_\bg_\b__\bt_\by_\bp_\be _\bs_\be_\bc_\bo_\bn_\bd_\b__\ba_\br_\bg_\bu_\bm_\be_\bn_\bt)
+
 OpenBSD                        December 25, 2013                       OpenBSD
index 5b713b3..5fe5052 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_man.c,v 1.55 2013/12/25 00:39:13 schwarze Exp $ */
+/*     $Id: mdoc_man.c,v 1.56 2013/12/25 22:00:34 schwarze Exp $ */
 /*
  * Copyright (c) 2011, 2012, 2013 Ingo Schwarze <schwarze@openbsd.org>
  *
@@ -1026,13 +1026,16 @@ post_eo(DECL_ARGS)
 static int
 pre_fa(DECL_ARGS)
 {
+       int      am_Fa;
 
-       if (MDOC_Fa == n->tok)
+       am_Fa = MDOC_Fa == n->tok;
+
+       if (am_Fa)
                n = n->child;
 
        while (NULL != n) {
                font_push('I');
-               if (MDOC_SYNPRETTY & n->flags)
+               if (am_Fa || MDOC_SYNPRETTY & n->flags)
                        outflags |= MMAN_nbrword;
                print_node(meta, n);
                font_pop();
@@ -1133,6 +1136,8 @@ pre_fo(DECL_ARGS)
                pre_syn(n);
                break;
        case (MDOC_HEAD):
+               if (MDOC_SYNPRETTY & n->flags)
+                       print_block(".HP 4n", MMAN_nl);
                font_push('B');
                break;
        case (MDOC_BODY):
@@ -1145,7 +1150,7 @@ pre_fo(DECL_ARGS)
        }
        return(1);
 }
-               
+
 static void
 post_fo(DECL_ARGS)
 {