summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@cvs.openbsd.org>2011-12-05 00:28:13 +0000
committerIngo Schwarze <schwarze@cvs.openbsd.org>2011-12-05 00:28:13 +0000
commit42bc58bc5e3c5ed1caa935ca85099ad0c172cb06 (patch)
tree273e42e40c4db7c74dd5fb03db0d13ddbf91b641
parente2402f94a0c01646ae8ccbc00792ea6952788065 (diff)
As requested by kristaps@, add and improve comments related to -Omdoc;
while here, clean up some redundant initializations in print_man_head().
-rw-r--r--usr.bin/mandoc/man_term.c39
-rw-r--r--usr.bin/mandoc/term_ascii.c6
2 files changed, 30 insertions, 15 deletions
diff --git a/usr.bin/mandoc/man_term.c b/usr.bin/mandoc/man_term.c
index e9e6edcff81..7ff3c0d730d 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.80 2011/12/04 00:44:18 schwarze Exp $ */
+/* $Id: man_term.c,v 1.81 2011/12/05 00:28:12 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2011 Ingo Schwarze <schwarze@openbsd.org>
@@ -966,6 +966,13 @@ print_man_foot(struct termp *p, const void *arg)
term_fontrepl(p, TERMFONT_NONE);
term_vspace(p);
+
+ /*
+ * Temporary, undocumented option to imitate mdoc(7) output.
+ * In the bottom right corner, use the source instead of
+ * the title.
+ */
+
if ( ! p->mdocstyle) {
term_vspace(p);
term_vspace(p);
@@ -977,6 +984,8 @@ print_man_foot(struct termp *p, const void *arg)
}
datelen = term_strlen(p, meta->date);
+ /* Bottom left corner: manual source. */
+
p->flags |= TERMP_NOSPACE | TERMP_NOBREAK;
p->offset = 0;
p->rmargin = (p->maxrmargin - datelen + term_len(p, 1)) / 2;
@@ -985,6 +994,8 @@ print_man_foot(struct termp *p, const void *arg)
term_word(p, meta->source);
term_flushln(p);
+ /* At the bottom in the middle: manual date. */
+
p->flags |= TERMP_NOSPACE;
p->offset = p->rmargin;
p->rmargin = p->maxrmargin - term_strlen(p, title);
@@ -994,6 +1005,8 @@ print_man_foot(struct termp *p, const void *arg)
term_word(p, meta->date);
term_flushln(p);
+ /* Bottom right corner: manual title and section. */
+
p->flags &= ~TERMP_NOBREAK;
p->flags |= TERMP_NOSPACE;
p->offset = p->rmargin;
@@ -1015,21 +1028,14 @@ print_man_head(struct termp *p, const void *arg)
assert(m->title);
assert(m->msec);
- /*
- * Note that old groff would spit out some spaces before the
- * header. We discontinue this strange behaviour, but at one
- * point we did so here.
- */
-
- p->offset = 0;
- p->rmargin = p->maxrmargin;
-
- buf[0] = title[0] = '\0';
-
if (m->vol)
strlcpy(buf, m->vol, BUFSIZ);
+ else
+ buf[0] = '\0';
buflen = term_strlen(p, buf);
+ /* Top left corner: manual title and section. */
+
snprintf(title, BUFSIZ, "%s(%s)", m->title, m->msec);
titlen = term_strlen(p, title);
@@ -1043,6 +1049,8 @@ print_man_head(struct termp *p, const void *arg)
term_word(p, title);
term_flushln(p);
+ /* At the top in the middle: manual volume. */
+
p->flags |= TERMP_NOSPACE;
p->offset = p->rmargin;
p->rmargin = p->offset + buflen + titlen < p->maxrmargin ?
@@ -1051,6 +1059,8 @@ print_man_head(struct termp *p, const void *arg)
term_word(p, buf);
term_flushln(p);
+ /* Top right corner: title and section, again. */
+
p->flags &= ~TERMP_NOBREAK;
if (p->rmargin + titlen <= p->maxrmargin) {
p->flags |= TERMP_NOSPACE;
@@ -1065,8 +1075,9 @@ print_man_head(struct termp *p, const void *arg)
p->rmargin = p->maxrmargin;
/*
- * Groff likes to have some leading spaces before content. Well
- * that's fine by me.
+ * Groff prints three blank lines before the content.
+ * Do the same, except in the temporary, undocumented
+ * mode imitating mdoc(7) output.
*/
term_vspace(p);
diff --git a/usr.bin/mandoc/term_ascii.c b/usr.bin/mandoc/term_ascii.c
index 7966c60febd..a1107fe148a 100644
--- a/usr.bin/mandoc/term_ascii.c
+++ b/usr.bin/mandoc/term_ascii.c
@@ -1,4 +1,4 @@
-/* $Id: term_ascii.c,v 1.8 2011/11/13 13:30:42 schwarze Exp $ */
+/* $Id: term_ascii.c,v 1.9 2011/12/05 00:28:12 schwarze Exp $ */
/*
* Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -95,6 +95,10 @@ ascii_init(enum termenc enc, char *outopts)
p->defrmargin = (size_t)atoi(v);
break;
case (2):
+ /*
+ * Temporary, undocumented mode
+ * to imitate mdoc(7) output style.
+ */
p->mdocstyle = 1;
p->defindent = 5;
break;