summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@cvs.openbsd.org>2010-03-02 01:00:40 +0000
committerIngo Schwarze <schwarze@cvs.openbsd.org>2010-03-02 01:00:40 +0000
commitc2106c30fc02017f424d0af2aaea8733129851a9 (patch)
treead908eda7569c61185a55eb7818873ceb0c17513
parent038ab018e83805ffd7295eb1d96d2eba5f39b351 (diff)
Accept the non-standard macros .Sp (similar to .sp)
and .Vb/.Ve (similar to .nf/.fi) in man(7) mode. These are not intended to be used manually, but they allow us to properly render man(7) code autogenerated by pod2man(1), making Perl and OpenSSL happy in our tree.
-rw-r--r--usr.bin/mandoc/man.c5
-rw-r--r--usr.bin/mandoc/man.h7
-rw-r--r--usr.bin/mandoc/man_action.c5
-rw-r--r--usr.bin/mandoc/man_html.c7
-rw-r--r--usr.bin/mandoc/man_macro.c9
-rw-r--r--usr.bin/mandoc/man_term.c5
-rw-r--r--usr.bin/mandoc/man_validate.c9
7 files changed, 35 insertions, 12 deletions
diff --git a/usr.bin/mandoc/man.c b/usr.bin/mandoc/man.c
index daea772af0c..960db5052cd 100644
--- a/usr.bin/mandoc/man.c
+++ b/usr.bin/mandoc/man.c
@@ -1,4 +1,4 @@
-/* $Id: man.c,v 1.19 2010/02/26 12:42:29 schwarze Exp $ */
+/* $Id: man.c,v 1.20 2010/03/02 01:00:39 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -55,7 +55,8 @@ const char *const __man_macronames[MAN_MAX] = {
"R", "B", "I", "IR",
"RI", "na", "i", "sp",
"nf", "fi", "r", "RE",
- "RS", "DT", "UC", "PD"
+ "RS", "DT", "UC", "PD",
+ "Sp", "Vb", "Ve",
};
const char * const *man_macronames = __man_macronames;
diff --git a/usr.bin/mandoc/man.h b/usr.bin/mandoc/man.h
index 4abe9a3d695..b99ffda6026 100644
--- a/usr.bin/mandoc/man.h
+++ b/usr.bin/mandoc/man.h
@@ -1,4 +1,4 @@
-/* $Id: man.h,v 1.12 2009/12/22 23:58:00 schwarze Exp $ */
+/* $Id: man.h,v 1.13 2010/03/02 01:00:39 schwarze Exp $ */
/*
* Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -51,7 +51,10 @@
#define MAN_DT 29
#define MAN_UC 30
#define MAN_PD 31
-#define MAN_MAX 32
+#define MAN_Sp 32
+#define MAN_Vb 33
+#define MAN_Ve 34
+#define MAN_MAX 35
enum man_type {
MAN_TEXT,
diff --git a/usr.bin/mandoc/man_action.c b/usr.bin/mandoc/man_action.c
index 4732d148d81..ba0079c5ad0 100644
--- a/usr.bin/mandoc/man_action.c
+++ b/usr.bin/mandoc/man_action.c
@@ -1,4 +1,4 @@
-/* $Id: man_action.c,v 1.11 2009/12/23 22:30:17 schwarze Exp $ */
+/* $Id: man_action.c,v 1.12 2010/03/02 01:00:39 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -64,6 +64,9 @@ const struct actions man_actions[MAN_MAX] = {
{ NULL }, /* DT */
{ NULL }, /* UC */
{ NULL }, /* PD */
+ { NULL }, /* Sp */
+ { post_nf }, /* Vb */
+ { post_fi }, /* Ve */
};
diff --git a/usr.bin/mandoc/man_html.c b/usr.bin/mandoc/man_html.c
index 0a4050f79a4..ec076849380 100644
--- a/usr.bin/mandoc/man_html.c
+++ b/usr.bin/mandoc/man_html.c
@@ -1,4 +1,4 @@
-/* $Id: man_html.c,v 1.5 2010/02/18 02:11:26 schwarze Exp $ */
+/* $Id: man_html.c,v 1.6 2010/03/02 01:00:39 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -99,6 +99,9 @@ static const struct htmlman mans[MAN_MAX] = {
{ man_ign_pre, NULL }, /* DT */
{ man_ign_pre, NULL }, /* UC */
{ man_ign_pre, NULL }, /* PD */
+ { man_br_pre, NULL }, /* Sp */
+ { NULL, NULL }, /* Vb */
+ { NULL, NULL }, /* Vi */
};
@@ -331,7 +334,7 @@ man_br_pre(MAN_ARGS)
SCALE_VS_INIT(&su, 1);
- if (MAN_sp == n->tok && n->child)
+ if ((MAN_sp == n->tok || MAN_Sp == n->tok) && n->child)
a2roffsu(n->child->string, &su, SCALE_VS);
else if (MAN_br == n->tok)
su.scale = 0;
diff --git a/usr.bin/mandoc/man_macro.c b/usr.bin/mandoc/man_macro.c
index d0e96db233f..33832ecde15 100644
--- a/usr.bin/mandoc/man_macro.c
+++ b/usr.bin/mandoc/man_macro.c
@@ -1,4 +1,4 @@
-/* $Id: man_macro.c,v 1.9 2009/10/27 21:40:07 schwarze Exp $ */
+/* $Id: man_macro.c,v 1.10 2010/03/02 01:00:39 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -68,6 +68,9 @@ const struct man_macro __man_macros[MAN_MAX] = {
{ in_line_eoln, 0 }, /* DT */
{ in_line_eoln, 0 }, /* UC */
{ in_line_eoln, 0 }, /* PD */
+ { in_line_eoln, 0 }, /* Sp */
+ { in_line_eoln, 0 }, /* Vb */
+ { in_line_eoln, 0 }, /* Ve */
};
const struct man_macro * const man_macros = __man_macros;
@@ -312,6 +315,10 @@ in_line_eoln(MACRO_PROT_ARGS)
if (0 == w)
break;
+ /* XXX ignore Vb arguments for now */
+ if (MAN_Vb == tok)
+ continue;
+
if ( ! man_word_alloc(m, line, la, p))
return(0);
}
diff --git a/usr.bin/mandoc/man_term.c b/usr.bin/mandoc/man_term.c
index 87c1c7bb723..d30823cc11d 100644
--- a/usr.bin/mandoc/man_term.c
+++ b/usr.bin/mandoc/man_term.c
@@ -1,4 +1,4 @@
-/* $Id: man_term.c,v 1.22 2010/02/26 12:42:29 schwarze Exp $ */
+/* $Id: man_term.c,v 1.23 2010/03/02 01:00:39 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -133,6 +133,9 @@ static const struct termact termacts[MAN_MAX] = {
{ pre_ign, NULL }, /* DT */
{ pre_ign, NULL }, /* UC */
{ pre_ign, NULL }, /* PD */
+ { pre_sp, NULL }, /* Sp */
+ { pre_nf, NULL }, /* Vb */
+ { pre_fi, NULL }, /* Ve */
};
diff --git a/usr.bin/mandoc/man_validate.c b/usr.bin/mandoc/man_validate.c
index 64e49bf1f07..68d87fa3ef0 100644
--- a/usr.bin/mandoc/man_validate.c
+++ b/usr.bin/mandoc/man_validate.c
@@ -1,4 +1,4 @@
-/* $Id: man_validate.c,v 1.12 2010/02/26 12:42:29 schwarze Exp $ */
+/* $Id: man_validate.c,v 1.13 2010/03/02 01:00:39 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -51,7 +51,7 @@ static v_check posts_ge2_le5[] = { check_ge2, check_le5, NULL };
static v_check posts_par[] = { check_par, NULL };
static v_check posts_part[] = { check_part, NULL };
static v_check posts_sec[] = { check_sec, NULL };
-static v_check posts_sp[] = { check_le1, NULL };
+static v_check posts_le1[] = { check_le1, NULL };
static v_check pres_bline[] = { check_bline, NULL };
static const struct man_valid man_valids[MAN_MAX] = {
@@ -78,7 +78,7 @@ static const struct man_valid man_valids[MAN_MAX] = {
{ NULL, NULL }, /* RI */
{ NULL, posts_eq0 }, /* na */
{ NULL, NULL }, /* i */
- { NULL, posts_sp }, /* sp */
+ { NULL, posts_le1 }, /* sp */
{ pres_bline, posts_eq0 }, /* nf */
{ pres_bline, posts_eq0 }, /* fi */
{ NULL, NULL }, /* r */
@@ -87,6 +87,9 @@ static const struct man_valid man_valids[MAN_MAX] = {
{ NULL, NULL }, /* DT */
{ NULL, NULL }, /* UC */
{ NULL, NULL }, /* PD */
+ { NULL, posts_le1 }, /* Sp */
+ { pres_bline, posts_le1 }, /* Vb */
+ { pres_bline, posts_eq0 }, /* Ve */
};