From 53b5d29222e1768659eb3f30de4c87a1be30c59c Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Sat, 2 Jun 2012 20:16:23 +0000 Subject: Minimal implementation of .EX and .EE for GNU compatibility. Do not use this, it is not portable and only defined in esr's man-ext. For example, sox(1) wants these macros. --- man.7 | 16 ++++++++++++++-- man.c | 4 ++-- man.h | 4 +++- man_html.c | 6 ++++-- man_macro.c | 4 +++- man_term.c | 6 ++++-- man_validate.c | 4 +++- 7 files changed, 33 insertions(+), 11 deletions(-) diff --git a/man.7 b/man.7 index e4b8befa..321136c5 100644 --- a/man.7 +++ b/man.7 @@ -1,4 +1,4 @@ -.\" $Id: man.7,v 1.115 2012/05/27 17:39:28 schwarze Exp $ +.\" $Id: man.7,v 1.116 2012/06/02 20:16:23 schwarze Exp $ .\" .\" Copyright (c) 2009, 2010, 2011, 2012 Kristaps Dzonsons .\" Copyright (c) 2011 Ingo Schwarze @@ -15,7 +15,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: May 27 2012 $ +.Dd $Mdocdate: June 2 2012 $ .Dt MAN 7 .Os .Sh NAME @@ -339,6 +339,18 @@ and .Ss \&DT Has no effect. Included for compatibility. +.Ss \&EE +This is a non-standard GNU extension, included only for compatibility. +In +.Xr mandoc 1 , +it does the same as +.Sx \&fi . +.Ss \&EX +This is a non-standard GNU extension, included only for compatibility. +In +.Xr mandoc 1 , +it does the same as +.Sx \&nf . .Ss \&HP Begin a paragraph whose initial output line is left-justified, but subsequent output lines are indented, with the following syntax: diff --git a/man.c b/man.c index 1bea5610..ece4868f 100644 --- a/man.c +++ b/man.c @@ -1,4 +1,4 @@ -/* $Id: man.c,v 1.115 2012/01/03 15:16:24 kristaps Exp $ */ +/* $Id: man.c,v 1.116 2012/06/02 20:16:23 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * @@ -40,7 +40,7 @@ const char *const __man_macronames[MAN_MAX] = { "RI", "na", "sp", "nf", "fi", "RE", "RS", "DT", "UC", "PD", "AT", "in", - "ft", "OP" + "ft", "OP", "EX", "EE" }; const char * const *man_macronames = __man_macronames; diff --git a/man.h b/man.h index 4fc3934e..e85da9ae 100644 --- a/man.h +++ b/man.h @@ -1,4 +1,4 @@ -/* $Id: man.h,v 1.60 2012/01/03 15:16:24 kristaps Exp $ */ +/* $Id: man.h,v 1.61 2012/06/02 20:16:23 schwarze Exp $ */ /* * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons * @@ -52,6 +52,8 @@ enum mant { MAN_in, MAN_ft, MAN_OP, + MAN_EX, + MAN_EE, MAN_MAX }; diff --git a/man_html.c b/man_html.c index a4f64c5e..73709b82 100644 --- a/man_html.c +++ b/man_html.c @@ -1,4 +1,4 @@ -/* $Id: man_html.c,v 1.87 2012/05/27 17:39:28 schwarze Exp $ */ +/* $Id: man_html.c,v 1.88 2012/06/02 20:16:23 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * @@ -113,6 +113,8 @@ static const struct htmlman mans[MAN_MAX] = { { man_in_pre, NULL }, /* in */ { man_ign_pre, NULL }, /* ft */ { man_OP_pre, NULL }, /* OP */ + { man_literal_pre, NULL }, /* EX */ + { man_literal_pre, NULL }, /* EE */ }; /* @@ -638,7 +640,7 @@ static int man_literal_pre(MAN_ARGS) { - if (MAN_nf != n->tok) { + if (MAN_fi == n->tok || MAN_EE == n->tok) { print_otag(h, TAG_BR, 0, NULL); mh->fl &= ~MANH_LITERAL; } else diff --git a/man_macro.c b/man_macro.c index 4bbbc4fa..c644a2e1 100644 --- a/man_macro.c +++ b/man_macro.c @@ -1,4 +1,4 @@ -/* $Id: man_macro.c,v 1.71 2012/01/03 15:16:24 kristaps Exp $ */ +/* $Id: man_macro.c,v 1.72 2012/06/02 20:16:23 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * @@ -85,6 +85,8 @@ const struct man_macro __man_macros[MAN_MAX] = { { in_line_eoln, 0 }, /* in */ { in_line_eoln, 0 }, /* ft */ { in_line_eoln, 0 }, /* OP */ + { in_line_eoln, MAN_BSCOPE }, /* EX */ + { in_line_eoln, MAN_BSCOPE }, /* EE */ }; const struct man_macro * const man_macros = __man_macros; diff --git a/man_term.c b/man_term.c index 2e65d09f..5281143d 100644 --- a/man_term.c +++ b/man_term.c @@ -1,4 +1,4 @@ -/* $Id: man_term.c,v 1.128 2012/05/27 17:39:28 schwarze Exp $ */ +/* $Id: man_term.c,v 1.129 2012/06/02 20:16:23 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010, 2011 Ingo Schwarze @@ -127,6 +127,8 @@ static const struct termact termacts[MAN_MAX] = { { pre_in, NULL, MAN_NOTEXT }, /* in */ { pre_ft, NULL, MAN_NOTEXT }, /* ft */ { pre_OP, NULL, 0 }, /* OP */ + { pre_literal, NULL, 0 }, /* EX */ + { pre_literal, NULL, 0 }, /* EE */ }; @@ -243,7 +245,7 @@ pre_literal(DECL_ARGS) term_newln(p); - if (MAN_nf == n->tok) + if (MAN_nf == n->tok || MAN_EX == n->tok) mt->fl |= MANT_LITERAL; else mt->fl &= ~MANT_LITERAL; diff --git a/man_validate.c b/man_validate.c index e40b089f..988603bf 100644 --- a/man_validate.c +++ b/man_validate.c @@ -1,4 +1,4 @@ -/* $Id: man_validate.c,v 1.80 2012/01/03 15:16:24 kristaps Exp $ */ +/* $Id: man_validate.c,v 1.81 2012/06/02 20:16:23 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010 Ingo Schwarze @@ -114,6 +114,8 @@ static const struct man_valid man_valids[MAN_MAX] = { { NULL, NULL }, /* in */ { NULL, posts_ft }, /* ft */ { NULL, posts_eq2 }, /* OP */ + { NULL, posts_nf }, /* EX */ + { NULL, posts_fi }, /* EE */ }; -- cgit v1.2.3