From 9ed53694adb96141694df4d6d6a71fb540712f85 Mon Sep 17 00:00:00 2001 From: schwarze Date: Sun, 28 Dec 2014 14:39:08 +0000 Subject: [PATCH] mdoc(7) already uses the mandoc(1) -Ios argument in the footer line when .Os has no argument, so do the same for man(7) when .TH has less than four arguments; there is no reason to treat both differently. Issue found following a question from Thomas Klausner . --- usr.bin/mandoc/libman.h | 3 ++- usr.bin/mandoc/libmandoc.h | 5 +++-- usr.bin/mandoc/man.1 | 7 +++++-- usr.bin/mandoc/man.c | 6 ++++-- usr.bin/mandoc/man_validate.c | 4 +++- usr.bin/mandoc/mandoc.1 | 7 +++++-- usr.bin/mandoc/read.c | 11 +++++++---- 7 files changed, 29 insertions(+), 14 deletions(-) diff --git a/usr.bin/mandoc/libman.h b/usr.bin/mandoc/libman.h index b5cae9f07c7..0bf8135f936 100644 --- a/usr.bin/mandoc/libman.h +++ b/usr.bin/mandoc/libman.h @@ -1,4 +1,4 @@ -/* $OpenBSD: libman.h,v 1.41 2014/11/28 05:51:29 schwarze Exp $ */ +/* $OpenBSD: libman.h,v 1.42 2014/12/28 14:39:08 schwarze Exp $ */ /* * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2014 Ingo Schwarze @@ -23,6 +23,7 @@ enum man_next { struct man { struct mparse *parse; /* parse pointer */ + const char *defos; /* default OS argument for .TH */ int quick; /* abort parse early */ int flags; /* parse flags */ #define MAN_ELINE (1 << 1) /* Next-line element scope. */ diff --git a/usr.bin/mandoc/libmandoc.h b/usr.bin/mandoc/libmandoc.h index ea6c9cbc19d..0d259a9e6ff 100644 --- a/usr.bin/mandoc/libmandoc.h +++ b/usr.bin/mandoc/libmandoc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: libmandoc.h,v 1.38 2014/12/21 00:17:24 daniel Exp $ */ +/* $OpenBSD: libmandoc.h,v 1.39 2014/12/28 14:39:08 schwarze Exp $ */ /* * Copyright (c) 2009, 2010, 2011, 2012 Kristaps Dzonsons * Copyright (c) 2013, 2014 Ingo Schwarze @@ -63,7 +63,8 @@ void mdoc_addspan(struct mdoc *, const struct tbl_span *); void mdoc_addeqn(struct mdoc *, const struct eqn *); void man_free(struct man *); -struct man *man_alloc(struct roff *, struct mparse *, int); +struct man *man_alloc(struct roff *, struct mparse *, + const char *, int); void man_reset(struct man *); int man_parseln(struct man *, int, char *, int); int man_endparse(struct man *); diff --git a/usr.bin/mandoc/man.1 b/usr.bin/mandoc/man.1 index 40b796bbad7..b27ebbdd4de 100644 --- a/usr.bin/mandoc/man.1 +++ b/usr.bin/mandoc/man.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: man.1,v 1.7 2014/12/18 20:45:50 jmc Exp $ +.\" $OpenBSD: man.1,v 1.8 2014/12/28 14:39:08 schwarze Exp $ .\" .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -31,7 +31,7 @@ .\" .\" @(#)man.1 8.2 (Berkeley) 1/2/94 .\" -.Dd $Mdocdate: December 18 2014 $ +.Dd $Mdocdate: December 28 2014 $ .Dt MAN 1 .Os .Sh NAME @@ -106,6 +106,9 @@ Override the default operating system for the .Xr mdoc 7 .Ic \&Os +and for the +.Xr man 7 +.Ic \&TH macro. .It Fl h Display only the SYNOPSIS lines of the requested manual pages. diff --git a/usr.bin/mandoc/man.c b/usr.bin/mandoc/man.c index f76b8cad799..c3a5dc8103b 100644 --- a/usr.bin/mandoc/man.c +++ b/usr.bin/mandoc/man.c @@ -1,4 +1,4 @@ -/* $OpenBSD: man.c,v 1.93 2014/11/28 06:26:46 schwarze Exp $ */ +/* $OpenBSD: man.c,v 1.94 2014/12/28 14:39:08 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2013, 2014 Ingo Schwarze @@ -90,7 +90,8 @@ man_free(struct man *man) } struct man * -man_alloc(struct roff *roff, struct mparse *parse, int quick) +man_alloc(struct roff *roff, struct mparse *parse, + const char *defos, int quick) { struct man *p; @@ -98,6 +99,7 @@ man_alloc(struct roff *roff, struct mparse *parse, int quick) man_hash_init(); p->parse = parse; + p->defos = defos; p->quick = quick; p->roff = roff; diff --git a/usr.bin/mandoc/man_validate.c b/usr.bin/mandoc/man_validate.c index d90d635e3f8..07f04930ec8 100644 --- a/usr.bin/mandoc/man_validate.c +++ b/usr.bin/mandoc/man_validate.c @@ -1,4 +1,4 @@ -/* $OpenBSD: man_validate.c,v 1.78 2014/11/28 05:51:29 schwarze Exp $ */ +/* $OpenBSD: man_validate.c,v 1.79 2014/12/28 14:39:08 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze @@ -377,6 +377,8 @@ post_TH(CHKARGS) if (n && (n = n->next)) man->meta.source = mandoc_strdup(n->string); + else if (man->defos != NULL) + man->meta.source = mandoc_strdup(man->defos); /* TITLE MSEC DATE SOURCE ->VOL<- */ /* If missing, use the default VOL name for MSEC. */ diff --git a/usr.bin/mandoc/mandoc.1 b/usr.bin/mandoc/mandoc.1 index 74ac5851e53..da3753a740c 100644 --- a/usr.bin/mandoc/mandoc.1 +++ b/usr.bin/mandoc/mandoc.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: mandoc.1,v 1.69 2014/12/15 17:36:47 schwarze Exp $ +.\" $OpenBSD: mandoc.1,v 1.70 2014/12/28 14:39:08 schwarze Exp $ .\" .\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons .\" Copyright (c) 2012, 2014 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: December 15 2014 $ +.Dd $Mdocdate: December 28 2014 $ .Dt MANDOC 1 .Os .Sh NAME @@ -85,6 +85,9 @@ Override the default operating system for the .Xr mdoc 7 .Sq \&Os +and for the +.Xr man 7 +.Sq \&TH macro. .It Fl h Display only the SYNOPSIS lines. diff --git a/usr.bin/mandoc/read.c b/usr.bin/mandoc/read.c index a386ade8f88..ba26fe8784c 100644 --- a/usr.bin/mandoc/read.c +++ b/usr.bin/mandoc/read.c @@ -1,4 +1,4 @@ -/* $OpenBSD: read.c,v 1.80 2014/12/16 23:44:16 schwarze Exp $ */ +/* $OpenBSD: read.c,v 1.81 2014/12/28 14:39:08 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010-2014 Ingo Schwarze @@ -293,7 +293,8 @@ choose_parser(struct mparse *curp) /* Fall back to man(7) as a last resort. */ if (NULL == curp->pman) - curp->pman = man_alloc(curp->roff, curp, + curp->pman = man_alloc( + curp->roff, curp, curp->defos, MPARSE_QUICK & curp->options ? 1 : 0); assert(curp->pman); curp->man = curp->pman; @@ -689,7 +690,8 @@ mparse_end(struct mparse *curp) curp->mdoc = curp->pmdoc; else { if (curp->pman == NULL) - curp->pman = man_alloc(curp->roff, curp, + curp->pman = man_alloc( + curp->roff, curp, curp->defos, curp->options & MPARSE_QUICK ? 1 : 0); curp->man = curp->pman; } @@ -918,7 +920,8 @@ mparse_alloc(int options, enum mandoclevel wlevel, mandocmsg mmsg, curp->roff, curp, curp->defos, curp->options & MPARSE_QUICK ? 1 : 0); if (curp->options & MPARSE_MAN) - curp->pman = man_alloc(curp->roff, curp, + curp->pman = man_alloc( + curp->roff, curp, curp->defos, curp->options & MPARSE_QUICK ? 1 : 0); return(curp); -- 2.20.1