aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mdoc_man.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2011-10-20 20:27:21 +0000
committerIngo Schwarze <schwarze@openbsd.org>2011-10-20 20:27:21 +0000
commit3e8d323f254c6e5d369fed97c845b79131d36e76 (patch)
tree739aed1741d1ba5923c9994be851a5e62489d13e /mdoc_man.c
parent88036e63c210e906c7fcf9f4806f2fa77e7af146 (diff)
downloadmandoc-3e8d323f254c6e5d369fed97c845b79131d36e76.tar.gz
mandoc-3e8d323f254c6e5d369fed97c845b79131d36e76.tar.zst
mandoc-3e8d323f254c6e5d369fed97c845b79131d36e76.zip
Implement the missing text production macros (Bsx Bx Dx Fx Nx Ox Ux Bt Ud).
Some macros work without explicit implementation (At Db Os St). ok kristaps@
Diffstat (limited to 'mdoc_man.c')
-rw-r--r--mdoc_man.c73
1 files changed, 54 insertions, 19 deletions
diff --git a/mdoc_man.c b/mdoc_man.c
index f0501a5d..b7bad518 100644
--- a/mdoc_man.c
+++ b/mdoc_man.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_man.c,v 1.7 2011/10/08 12:47:40 kristaps Exp $ */
+/* $Id: mdoc_man.c,v 1.8 2011/10/20 20:27:21 schwarze Exp $ */
/*
* Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>
*
@@ -56,6 +56,7 @@ static void post_sp(DECL_ARGS);
static int pre_ap(DECL_ARGS);
static int pre_bd(DECL_ARGS);
static int pre_br(DECL_ARGS);
+static int pre_bx(DECL_ARGS);
static int pre_dl(DECL_ARGS);
static int pre_enc(DECL_ARGS);
static int pre_it(DECL_ARGS);
@@ -64,6 +65,7 @@ static int pre_ns(DECL_ARGS);
static int pre_pp(DECL_ARGS);
static int pre_sp(DECL_ARGS);
static int pre_sect(DECL_ARGS);
+static int pre_ux(DECL_ARGS);
static int pre_xr(DECL_ARGS);
static void print_word(struct mman *, const char *);
static void print_node(DECL_ARGS);
@@ -72,7 +74,7 @@ static const struct manact manacts[MDOC_MAX + 1] = {
{ NULL, pre_ap, NULL, NULL, NULL }, /* Ap */
{ NULL, NULL, NULL, NULL, NULL }, /* Dd */
{ NULL, NULL, NULL, NULL, NULL }, /* Dt */
- { NULL, NULL, NULL, NULL, NULL }, /* _Os */
+ { NULL, NULL, NULL, NULL, NULL }, /* Os */
{ NULL, pre_sect, post_sect, ".SH", NULL }, /* Sh */
{ NULL, pre_sect, post_sect, ".SS", NULL }, /* Ss */
{ NULL, pre_pp, NULL, NULL, NULL }, /* Pp */
@@ -105,17 +107,17 @@ static const struct manact manacts[MDOC_MAX + 1] = {
{ cond_head, pre_enc, NULL, "\\- ", NULL }, /* Nd */
{ NULL, pre_nm, post_nm, NULL, NULL }, /* Nm */
{ cond_body, pre_enc, post_enc, "[", "]" }, /* Op */
- { NULL, NULL, NULL, NULL, NULL }, /* _Ot */
- { NULL, pre_enc, post_enc, "\\fI", "\\fP" }, /* _Pa */
+ { NULL, NULL, NULL, NULL, NULL }, /* Ot */
+ { NULL, pre_enc, post_enc, "\\fI", "\\fP" }, /* Pa */
{ NULL, pre_enc, post_enc, "The \\fB",
"\\fP\nfunction returns the value 0 if successful;\n"
"otherwise the value -1 is returned and the global\n"
"variable \\fIerrno\\fP is set to indicate the error."
}, /* Rv */
- { NULL, NULL, NULL, NULL, NULL }, /* _St */
+ { NULL, NULL, NULL, NULL, NULL }, /* St */
{ NULL, NULL, NULL, NULL, NULL }, /* _Va */
{ NULL, NULL, NULL, NULL, NULL }, /* _Vt */
- { NULL, pre_xr, NULL, NULL, NULL }, /* _Xr */
+ { NULL, pre_xr, NULL, NULL, NULL }, /* Xr */
{ NULL, NULL, post_percent, NULL, NULL }, /* _%A */
{ NULL, NULL, NULL, NULL, NULL }, /* _%B */
{ NULL, NULL, post_percent, NULL, NULL }, /* _%D */
@@ -130,14 +132,14 @@ static const struct manact manacts[MDOC_MAX + 1] = {
{ NULL, NULL, NULL, NULL, NULL }, /* _Ac */
{ NULL, NULL, NULL, NULL, NULL }, /* _Ao */
{ cond_body, pre_enc, post_enc, "<", ">" }, /* Aq */
- { NULL, NULL, NULL, NULL, NULL }, /* _At */
+ { NULL, NULL, NULL, NULL, NULL }, /* At */
{ NULL, NULL, NULL, NULL, NULL }, /* Bc */
{ NULL, NULL, NULL, 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, NULL, NULL, NULL, NULL }, /* _Db */
+ { NULL, pre_ux, NULL, "BSD/OS", NULL }, /* Bsx */
+ { NULL, pre_bx, NULL, NULL, NULL }, /* Bx */
+ { NULL, NULL, NULL, NULL, NULL }, /* Db */
{ NULL, NULL, NULL, NULL, NULL }, /* _Dc */
{ NULL, NULL, NULL, NULL, NULL }, /* _Do */
{ cond_body, pre_enc, post_enc, "``", "''" }, /* Dq */
@@ -145,12 +147,12 @@ static const struct manact manacts[MDOC_MAX + 1] = {
{ NULL, NULL, NULL, NULL, NULL }, /* _Ef */
{ NULL, pre_enc, post_enc, "\\fI", "\\fP" }, /* Em */
{ NULL, NULL, NULL, NULL, NULL }, /* _Eo */
- { NULL, NULL, NULL, NULL, NULL }, /* _Fx */
+ { NULL, pre_ux, NULL, "FreeBSD", NULL }, /* Fx */
{ NULL, NULL, NULL, NULL, NULL }, /* _Ms */
{ NULL, NULL, 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_ux, NULL, "NetBSD", NULL }, /* Nx */
+ { NULL, pre_ux, NULL, "OpenBSD", NULL }, /* Ox */
{ NULL, NULL, NULL, NULL, NULL }, /* Pc */
{ NULL, NULL, post_pf, NULL, NULL }, /* Pf */
{ cond_body, pre_enc, post_enc, "(", ")" }, /* Po */
@@ -168,7 +170,7 @@ static const struct manact manacts[MDOC_MAX + 1] = {
{ NULL, pre_enc, post_enc, "\\fI", "\\fP" }, /* Sx */
{ NULL, pre_enc, post_enc, "\\fB", "\\fP" }, /* Sy */
{ NULL, NULL, NULL, NULL, NULL }, /* _Tn */
- { NULL, NULL, NULL, NULL, NULL }, /* _Ux */
+ { NULL, pre_ux, NULL, "UNIX", NULL }, /* Ux */
{ NULL, NULL, NULL, NULL, NULL }, /* _Xc */
{ NULL, NULL, NULL, NULL, NULL }, /* _Xo */
{ NULL, NULL, NULL, NULL, NULL }, /* _Fo */
@@ -177,10 +179,10 @@ static const struct manact manacts[MDOC_MAX + 1] = {
{ NULL, NULL, NULL, NULL, NULL }, /* _Oc */
{ NULL, NULL, NULL, NULL, NULL }, /* _Bk */
{ NULL, NULL, NULL, NULL, NULL }, /* _Ek */
- { NULL, NULL, NULL, NULL, NULL }, /* _Bt */
- { NULL, NULL, NULL, NULL, NULL }, /* _Hf */
- { NULL, NULL, NULL, NULL, NULL }, /* _Fr */
- { NULL, NULL, NULL, NULL, NULL }, /* _Ud */
+ { NULL, pre_ux, NULL, "is currently in beta test.", NULL }, /* Bt */
+ { NULL, NULL, NULL, NULL, NULL }, /* Hf */
+ { NULL, NULL, NULL, NULL, NULL }, /* Fr */
+ { NULL, pre_ux, NULL, "currently under development.", NULL }, /* Ud */
{ NULL, NULL, NULL, NULL, NULL }, /* _Lb */
{ NULL, pre_pp, NULL, NULL, NULL }, /* Lp */
{ NULL, NULL, NULL, NULL, NULL }, /* _Lk */
@@ -191,7 +193,7 @@ static const struct manact manacts[MDOC_MAX + 1] = {
{ NULL, NULL, NULL, NULL, NULL }, /* _%C */
{ NULL, NULL, NULL, NULL, NULL }, /* _Es */
{ NULL, NULL, NULL, NULL, NULL }, /* _En */
- { NULL, NULL, NULL, NULL, NULL }, /* _Dx */
+ { NULL, pre_ux, NULL, "DragonFly", NULL }, /* Dx */
{ NULL, NULL, NULL, NULL, NULL }, /* _%Q */
{ NULL, pre_br, NULL, NULL, NULL }, /* br */
{ NULL, pre_sp, post_sp, NULL, NULL }, /* sp */
@@ -473,6 +475,26 @@ pre_br(DECL_ARGS)
}
static int
+pre_bx(DECL_ARGS)
+{
+
+ n = n->child;
+ if (n) {
+ print_word(mm, n->string);
+ mm->need_space = 0;
+ n = n->next;
+ }
+ print_word(mm, "BSD");
+ if (NULL == n)
+ return(0);
+ mm->need_space = 0;
+ print_word(mm, "-");
+ mm->need_space = 0;
+ print_word(mm, n->string);
+ return(0);
+}
+
+static int
pre_dl(DECL_ARGS)
{
@@ -600,3 +622,16 @@ pre_xr(DECL_ARGS)
print_word(mm, ")");
return(0);
}
+
+static int
+pre_ux(DECL_ARGS)
+{
+
+ print_word(mm, manacts[n->tok].prefix);
+ if (NULL == n->child)
+ return(0);
+ mm->need_space = 0;
+ print_word(mm, "\\~");
+ mm->need_space = 0;
+ return(1);
+}