diff options
author | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2011-12-05 00:28:13 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2011-12-05 00:28:13 +0000 |
commit | 42bc58bc5e3c5ed1caa935ca85099ad0c172cb06 (patch) | |
tree | 273e42e40c4db7c74dd5fb03db0d13ddbf91b641 /usr.bin/mandoc/man_term.c | |
parent | e2402f94a0c01646ae8ccbc00792ea6952788065 (diff) |
As requested by kristaps@, add and improve comments related to -Omdoc;
while here, clean up some redundant initializations in print_man_head().
Diffstat (limited to 'usr.bin/mandoc/man_term.c')
-rw-r--r-- | usr.bin/mandoc/man_term.c | 39 |
1 files changed, 25 insertions, 14 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); |