aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--TODO5
-rw-r--r--man.710
-rw-r--r--man_html.c27
-rw-r--r--man_macro.c5
-rw-r--r--man_term.c6
-rw-r--r--man_validate.c1
-rw-r--r--roff.c3
-rw-r--r--roff.h3
8 files changed, 35 insertions, 25 deletions
diff --git a/TODO b/TODO
index c7b2ffd6..50d98a63 100644
--- a/TODO
+++ b/TODO
@@ -1,6 +1,6 @@
************************************************************************
* Official mandoc TODO.
-* $Id: TODO,v 1.264 2018/08/16 13:54:06 schwarze Exp $
+* $Id: TODO,v 1.265 2018/08/16 23:43:37 schwarze Exp $
************************************************************************
Many issues are annotated for difficulty as follows:
@@ -165,9 +165,6 @@ are mere guesses, and some may be wrong.
- .SY and .YS,
used by many groff manual pages
-- .TQ tagged paragraph continuation,
- see groff_diff(7) for examples
-
- groff_www(7) .MTO and .URL
These macros were used by the GNU grep(1) man page.
The groff_www(7) manual page itself uses them, too.
diff --git a/man.7 b/man.7
index d418b9ee..5e302513 100644
--- a/man.7
+++ b/man.7
@@ -1,4 +1,4 @@
-.\" $Id: man.7,v 1.137 2018/04/05 22:12:33 schwarze Exp $
+.\" $Id: man.7,v 1.138 2018/08/16 23:43:37 schwarze Exp $
.\"
.\" Copyright (c) 2009, 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
.\" Copyright (c) 2011-2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -16,7 +16,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: April 5 2018 $
+.Dd $Mdocdate: August 16 2018 $
.Dt MAN 7
.Os
.Sh NAME
@@ -693,6 +693,12 @@ See also
.Sx \&P ,
and
.Sx \&PP .
+.Ss \&TQ
+Like
+.Sx \&TP ,
+except that no vertical spacing is inserted before the paragraph.
+This is a non-standard GNU extension and rarely used even by GNU
+manual pages.
.Ss \&UC
Sets the volume for the footer for compatibility with man pages from
.Bx
diff --git a/man_html.c b/man_html.c
index ae5dac1a..fd5d5c33 100644
--- a/man_html.c
+++ b/man_html.c
@@ -1,4 +1,4 @@
-/* $Id: man_html.c,v 1.153 2018/07/27 17:49:31 schwarze Exp $ */
+/* $Id: man_html.c,v 1.154 2018/08/16 23:43:37 schwarze Exp $ */
/*
* Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2013,2014,2015,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -75,6 +75,7 @@ static const struct htmlman __mans[MAN_MAX - MAN_TH] = {
{ man_SH_pre, NULL }, /* SH */
{ man_SS_pre, NULL }, /* SS */
{ man_IP_pre, NULL }, /* TP */
+ { man_IP_pre, NULL }, /* TQ */
{ man_PP_pre, NULL }, /* LP */
{ man_PP_pre, NULL }, /* PP */
{ man_PP_pre, NULL }, /* P */
@@ -518,25 +519,25 @@ man_IP_pre(MAN_ARGS)
return 1;
}
- /* FIXME: width specification. */
-
print_otag(h, TAG_DT, "");
- /* For IP, only print the first header element. */
-
- if (MAN_IP == n->tok && n->child)
- print_man_node(man, n->child, h);
-
- /* For TP, only print next-line header elements. */
-
- if (MAN_TP == n->tok) {
+ switch(n->tok) {
+ case MAN_IP: /* Only print the first header element. */
+ if (n->child != NULL)
+ print_man_node(man, n->child, h);
+ break;
+ case MAN_TP: /* Only print next-line header elements. */
+ case MAN_TQ:
nn = n->child;
- while (NULL != nn && 0 == (NODE_LINE & nn->flags))
+ while (nn != NULL && (NODE_LINE & nn->flags) == 0)
nn = nn->next;
- while (NULL != nn) {
+ while (nn != NULL) {
print_man_node(man, nn, h);
nn = nn->next;
}
+ break;
+ default:
+ abort();
}
return 0;
diff --git a/man_macro.c b/man_macro.c
index 4bb02356..6b9d10fa 100644
--- a/man_macro.c
+++ b/man_macro.c
@@ -1,4 +1,4 @@
-/* $Id: man_macro.c,v 1.125 2018/08/15 15:37:25 schwarze Exp $ */
+/* $Id: man_macro.c,v 1.126 2018/08/16 23:43:37 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2012-2015, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -45,6 +45,7 @@ const struct man_macro __man_macros[MAN_MAX - MAN_TH] = {
{ blk_imp, MAN_BSCOPE | MAN_SCOPED }, /* SH */
{ blk_imp, MAN_BSCOPE | MAN_SCOPED }, /* SS */
{ blk_imp, MAN_BSCOPE | MAN_SCOPED }, /* TP */
+ { blk_imp, MAN_BSCOPE | MAN_SCOPED }, /* TQ */
{ blk_imp, MAN_BSCOPE }, /* LP */
{ blk_imp, MAN_BSCOPE }, /* PP */
{ blk_imp, MAN_BSCOPE }, /* P */
@@ -327,7 +328,7 @@ blk_imp(MACRO_PROT_ARGS)
*/
if (man_macros[tok].flags & MAN_SCOPED &&
- (tok == MAN_TP || n == man->last)) {
+ (tok == MAN_TP || tok == MAN_TQ || n == man->last)) {
man->flags |= MAN_BLINE;
return;
}
diff --git a/man_term.c b/man_term.c
index 5838fa19..3b3ab684 100644
--- a/man_term.c
+++ b/man_term.c
@@ -1,4 +1,4 @@
-/* $Id: man_term.c,v 1.212 2018/08/14 01:27:48 schwarze Exp $ */
+/* $Id: man_term.c,v 1.213 2018/08/16 23:43:37 schwarze Exp $ */
/*
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2015, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -98,6 +98,7 @@ static const struct termact __termacts[MAN_MAX - MAN_TH] = {
{ pre_SH, post_SH, 0 }, /* SH */
{ pre_SS, post_SS, 0 }, /* SS */
{ pre_TP, post_TP, 0 }, /* TP */
+ { pre_TP, post_TP, 0 }, /* TQ */
{ pre_PP, NULL, 0 }, /* LP */
{ pre_PP, NULL, 0 }, /* PP */
{ pre_PP, NULL, 0 }, /* P */
@@ -584,7 +585,8 @@ pre_TP(DECL_ARGS)
p->flags |= TERMP_NOSPACE;
break;
case ROFFT_BLOCK:
- print_bvspace(p, n, mt->pardist);
+ if (n->tok == MAN_TP)
+ print_bvspace(p, n, mt->pardist);
/* FALLTHROUGH */
default:
return 1;
diff --git a/man_validate.c b/man_validate.c
index 8e2f6bee..8a1c33e9 100644
--- a/man_validate.c
+++ b/man_validate.c
@@ -59,6 +59,7 @@ static const v_check man_valids[MAN_MAX - MAN_TH] = {
NULL, /* SH */
NULL, /* SS */
NULL, /* TP */
+ NULL, /* TQ */
check_par, /* LP */
check_par, /* PP */
check_par, /* P */
diff --git a/roff.c b/roff.c
index 8eda99e8..766242a1 100644
--- a/roff.c
+++ b/roff.c
@@ -1,4 +1,4 @@
-/* $Id: roff.c,v 1.331 2018/08/16 13:54:06 schwarze Exp $ */
+/* $Id: roff.c,v 1.332 2018/08/16 23:43:37 schwarze Exp $ */
/*
* Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2015, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -327,6 +327,7 @@ const char *__roff_name[MAN_MAX + 1] = {
"Dx", "%Q", "%U", "Ta",
NULL,
"TH", "SH", "SS", "TP",
+ "TQ",
"LP", "PP", "P", "IP",
"HP", "SM", "SB", "BI",
"IB", "BR", "RB", "R",
diff --git a/roff.h b/roff.h
index f0da74bd..161c9a60 100644
--- a/roff.h
+++ b/roff.h
@@ -1,4 +1,4 @@
-/* $Id: roff.h,v 1.59 2018/04/11 17:11:13 schwarze Exp $ */
+/* $Id: roff.h,v 1.60 2018/08/16 23:43:37 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2013, 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -438,6 +438,7 @@ enum roff_tok {
MAN_SH,
MAN_SS,
MAN_TP,
+ MAN_TQ,
MAN_LP,
MAN_PP,
MAN_P,