aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/man_html.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2018-08-16 23:43:37 +0000
committerIngo Schwarze <schwarze@openbsd.org>2018-08-16 23:43:37 +0000
commit3f485a7ff74c3707363ed47362ccc8a7855b0f58 (patch)
tree761851956b5a0c8c76dfcf290b64ad139a16eef6 /man_html.c
parent99622f1b4d341ddc21f96b55ae3addf4013cfb97 (diff)
downloadmandoc-3f485a7ff74c3707363ed47362ccc8a7855b0f58.tar.gz
mandoc-3f485a7ff74c3707363ed47362ccc8a7855b0f58.tar.zst
mandoc-3f485a7ff74c3707363ed47362ccc8a7855b0f58.zip
implement the GNU man-ext .TQ macro in man(7),
used for example by groff_diff(7)
Diffstat (limited to 'man_html.c')
-rw-r--r--man_html.c27
1 files changed, 14 insertions, 13 deletions
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;