version 1.125, 2011/12/04 00:44:12 |
version 1.126, 2011/12/04 23:10:52 |
Line 970 print_man_foot(struct termp *p, const void *arg) |
|
Line 970 print_man_foot(struct termp *p, const void *arg) |
|
term_fontrepl(p, TERMFONT_NONE); |
term_fontrepl(p, TERMFONT_NONE); |
|
|
term_vspace(p); |
term_vspace(p); |
term_vspace(p); |
|
term_vspace(p); |
/* |
snprintf(title, BUFSIZ, "%s(%s)", meta->title, meta->msec); |
* 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); |
|
snprintf(title, BUFSIZ, "%s(%s)", meta->title, meta->msec); |
|
} else if (meta->source) { |
|
strlcpy(title, meta->source, BUFSIZ); |
|
} else { |
|
title[0] = '\0'; |
|
} |
datelen = term_strlen(p, meta->date); |
datelen = term_strlen(p, meta->date); |
|
|
|
/* Bottom left corner: manual source. */ |
|
|
p->flags |= TERMP_NOSPACE | TERMP_NOBREAK; |
p->flags |= TERMP_NOSPACE | TERMP_NOBREAK; |
p->offset = 0; |
p->offset = 0; |
p->rmargin = (p->maxrmargin - datelen + term_len(p, 1)) / 2; |
p->rmargin = (p->maxrmargin - datelen + term_len(p, 1)) / 2; |
Line 983 print_man_foot(struct termp *p, const void *arg) |
|
Line 998 print_man_foot(struct termp *p, const void *arg) |
|
term_word(p, meta->source); |
term_word(p, meta->source); |
term_flushln(p); |
term_flushln(p); |
|
|
|
/* At the bottom in the middle: manual date. */ |
|
|
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
p->offset = p->rmargin; |
p->offset = p->rmargin; |
p->rmargin = p->maxrmargin - term_strlen(p, title); |
p->rmargin = p->maxrmargin - term_strlen(p, title); |
Line 992 print_man_foot(struct termp *p, const void *arg) |
|
Line 1009 print_man_foot(struct termp *p, const void *arg) |
|
term_word(p, meta->date); |
term_word(p, meta->date); |
term_flushln(p); |
term_flushln(p); |
|
|
|
/* Bottom right corner: manual title and section. */ |
|
|
p->flags &= ~TERMP_NOBREAK; |
p->flags &= ~TERMP_NOBREAK; |
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
p->offset = p->rmargin; |
p->offset = p->rmargin; |
Line 1013 print_man_head(struct termp *p, const void *arg) |
|
Line 1032 print_man_head(struct termp *p, const void *arg) |
|
assert(m->title); |
assert(m->title); |
assert(m->msec); |
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) |
if (m->vol) |
strlcpy(buf, m->vol, BUFSIZ); |
strlcpy(buf, m->vol, BUFSIZ); |
|
else |
|
buf[0] = '\0'; |
buflen = term_strlen(p, buf); |
buflen = term_strlen(p, buf); |
|
|
|
/* Top left corner: manual title and section. */ |
|
|
snprintf(title, BUFSIZ, "%s(%s)", m->title, m->msec); |
snprintf(title, BUFSIZ, "%s(%s)", m->title, m->msec); |
titlen = term_strlen(p, title); |
titlen = term_strlen(p, title); |
|
|
Line 1041 print_man_head(struct termp *p, const void *arg) |
|
Line 1053 print_man_head(struct termp *p, const void *arg) |
|
term_word(p, title); |
term_word(p, title); |
term_flushln(p); |
term_flushln(p); |
|
|
|
/* At the top in the middle: manual volume. */ |
|
|
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
p->offset = p->rmargin; |
p->offset = p->rmargin; |
p->rmargin = p->offset + buflen + titlen < p->maxrmargin ? |
p->rmargin = p->offset + buflen + titlen < p->maxrmargin ? |
Line 1049 print_man_head(struct termp *p, const void *arg) |
|
Line 1063 print_man_head(struct termp *p, const void *arg) |
|
term_word(p, buf); |
term_word(p, buf); |
term_flushln(p); |
term_flushln(p); |
|
|
|
/* Top right corner: title and section, again. */ |
|
|
p->flags &= ~TERMP_NOBREAK; |
p->flags &= ~TERMP_NOBREAK; |
if (p->rmargin + titlen <= p->maxrmargin) { |
if (p->rmargin + titlen <= p->maxrmargin) { |
p->flags |= TERMP_NOSPACE; |
p->flags |= TERMP_NOSPACE; |
Line 1063 print_man_head(struct termp *p, const void *arg) |
|
Line 1079 print_man_head(struct termp *p, const void *arg) |
|
p->rmargin = p->maxrmargin; |
p->rmargin = p->maxrmargin; |
|
|
/* |
/* |
* Groff likes to have some leading spaces before content. Well |
* Groff prints three blank lines before the content. |
* that's fine by me. |
* Do the same, except in the temporary, undocumented |
|
* mode imitating mdoc(7) output. |
*/ |
*/ |
|
|
term_vspace(p); |
term_vspace(p); |
term_vspace(p); |
if ( ! p->mdocstyle) { |
term_vspace(p); |
term_vspace(p); |
|
term_vspace(p); |
|
} |
} |
} |