Lines Matching +full:- +full:p

3  * Copyright (c) 2010-15,2017-20,2022-23 Ingo Schwarze <schwarze@openbsd.org>
4 * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
19 * for ASCII, UTF-8, PostScript, and PDF output.
51 #define DECL_ARGS struct termp *p, \
100 static const struct man_term_act man_term_acts[MAN_MAX - MAN_TH] = {
108 { pre_PP, NULL, 0 }, /* P */
147 return man_term_acts + (tok - MAN_TH); in man_term_act()
154 struct termp *p; in terminal_man() local
157 p = (struct termp *)arg; in terminal_man()
158 p->tcol->rmargin = p->maxrmargin = p->defrmargin; in terminal_man()
159 term_tab_set(p, NULL); in terminal_man()
160 term_tab_set(p, "T"); in terminal_man()
161 term_tab_set(p, ".5i"); in terminal_man()
164 mt.lmargin[mt.lmargincur] = term_len(p, 7); in terminal_man()
165 mt.offset = term_len(p, p->defindent); in terminal_man()
168 n = man->first->child; in terminal_man()
169 if (p->synopsisonly) { in terminal_man()
170 for (nn = NULL; n != NULL; n = n->next) { in terminal_man()
171 if (n->tok != MAN_SH) in terminal_man()
173 nc = n->child->child; in terminal_man()
174 if (nc->type != ROFFT_TEXT) in terminal_man()
176 if (strcmp(nc->string, "SYNOPSIS") == 0) in terminal_man()
178 if (nn == NULL && strcmp(nc->string, "NAME") == 0) in terminal_man()
183 p->flags |= TERMP_NOSPACE; in terminal_man()
184 if (n != NULL && (n = n->child->next->child) != NULL) in terminal_man()
185 print_man_nodelist(p, &mt, n, man); in terminal_man()
186 term_newln(p); in terminal_man()
188 term_begin(p, print_man_head, print_man_foot, man); in terminal_man()
189 p->flags |= TERMP_NOSPACE; in terminal_man()
191 print_man_nodelist(p, &mt, n, man); in terminal_man()
192 term_end(p); in terminal_man()
205 print_bvspace(struct termp *p, struct roff_node *n, int pardist) in print_bvspace() argument
210 term_newln(p); in print_bvspace()
212 if (n->body != NULL && in print_bvspace()
213 (nch = roff_node_child(n->body)) != NULL && in print_bvspace()
214 nch->type == ROFFT_TBL) in print_bvspace()
217 if (n->parent->tok != MAN_RS && roff_node_prev(n) == NULL) in print_bvspace()
221 term_vspace(p); in print_bvspace()
233 term_fontrepl(p, TERMFONT_UNDER); in pre_I()
240 term_newln(p); in pre_literal()
247 if (n->parent->tok == MAN_HP && p->tcol->rmargin < p->maxrmargin) { in pre_literal()
248 p->tcol->offset = p->tcol->rmargin; in pre_literal()
249 p->tcol->rmargin = p->maxrmargin; in pre_literal()
250 p->trailspace = 0; in pre_literal()
251 p->flags &= ~(TERMP_NOBREAK | TERMP_BRIND); in pre_literal()
252 p->flags |= TERMP_NOSPACE; in pre_literal()
262 n = n->child; in pre_PD()
264 mt->pardist = 1; in pre_PD()
267 assert(n->type == ROFFT_TEXT); in pre_PD()
268 if (a2roffsu(n->string, &su, SCALE_VS) != NULL) in pre_PD()
269 mt->pardist = term_vspan(p, &su); in pre_PD()
280 switch (n->tok) { in pre_alternate()
308 for (i = 0, nn = n->child; nn != NULL; nn = nn->next, i = 1 - i) { in pre_alternate()
309 term_fontrepl(p, font[i]); in pre_alternate()
310 assert(nn->type == ROFFT_TEXT); in pre_alternate()
311 term_word(p, nn->string); in pre_alternate()
312 if (nn->flags & NODE_EOS) in pre_alternate()
313 p->flags |= TERMP_SENTENCE; in pre_alternate()
314 if (nn->next != NULL) in pre_alternate()
315 p->flags |= TERMP_NOSPACE; in pre_alternate()
323 term_fontrepl(p, TERMFONT_BOLD); in pre_B()
330 term_fontrepl(p, TERMFONT_NONE); in pre_MR()
331 n = n->child; in pre_MR()
333 term_word(p, n->string); /* name */ in pre_MR()
334 p->flags |= TERMP_NOSPACE; in pre_MR()
336 term_word(p, "("); in pre_MR()
337 p->flags |= TERMP_NOSPACE; in pre_MR()
338 if (n != NULL && (n = n->next) != NULL) { in pre_MR()
339 term_word(p, n->string); /* section */ in pre_MR()
340 p->flags |= TERMP_NOSPACE; in pre_MR()
342 term_word(p, ")"); in pre_MR()
343 if (n != NULL && (n = n->next) != NULL) { in pre_MR()
344 p->flags |= TERMP_NOSPACE; in pre_MR()
345 term_word(p, n->string); /* suffix */ in pre_MR()
353 term_word(p, "["); in pre_OP()
354 p->flags |= TERMP_KEEP | TERMP_NOSPACE; in pre_OP()
356 if ((n = n->child) != NULL) { in pre_OP()
357 term_fontrepl(p, TERMFONT_BOLD); in pre_OP()
358 term_word(p, n->string); in pre_OP()
360 if (n != NULL && n->next != NULL) { in pre_OP()
361 term_fontrepl(p, TERMFONT_UNDER); in pre_OP()
362 term_word(p, n->next->string); in pre_OP()
364 term_fontrepl(p, TERMFONT_NONE); in pre_OP()
365 p->flags &= ~TERMP_KEEP; in pre_OP()
366 p->flags |= TERMP_NOSPACE; in pre_OP()
367 term_word(p, "]"); in pre_OP()
379 term_newln(p); in pre_in()
381 if (n->child == NULL) { in pre_in()
382 p->tcol->offset = mt->offset; in pre_in()
386 cp = n->child->string; in pre_in()
389 if (*cp == '-') in pre_in()
390 less = -1; in pre_in()
394 cp--; in pre_in()
399 v = term_hen(p, &su); in pre_in()
402 p->tcol->offset -= p->tcol->offset > v ? v : p->tcol->offset; in pre_in()
404 p->tcol->offset += v; in pre_in()
406 p->tcol->offset = v; in pre_in()
407 if (p->tcol->offset > SHRT_MAX) in pre_in()
408 p->tcol->offset = term_len(p, p->defindent); in pre_in()
416 term_tab_set(p, NULL); in pre_DT()
417 term_tab_set(p, "T"); in pre_DT()
418 term_tab_set(p, ".5i"); in pre_DT()
429 switch (n->type) { in pre_HP()
431 print_bvspace(p, n, mt->pardist); in pre_HP()
441 if (n->child == NULL) in pre_HP()
444 if ((n->child->flags & NODE_NOFILL) == 0) { in pre_HP()
445 p->flags |= TERMP_NOBREAK | TERMP_BRIND; in pre_HP()
446 p->trailspace = 2; in pre_HP()
451 if ((nn = n->parent->head->child) != NULL && in pre_HP()
452 a2roffsu(nn->string, &su, SCALE_EN) != NULL) { in pre_HP()
453 len = term_hen(p, &su); in pre_HP()
454 if (len < 0 && (size_t)(-len) > mt->offset) in pre_HP()
455 len = -mt->offset; in pre_HP()
457 len = term_len(p, p->defindent); in pre_HP()
458 mt->lmargin[mt->lmargincur] = len; in pre_HP()
460 len = mt->lmargin[mt->lmargincur]; in pre_HP()
462 p->tcol->offset = mt->offset; in pre_HP()
463 p->tcol->rmargin = mt->offset + len; in pre_HP()
470 switch (n->type) { in post_HP()
475 term_newln(p); in post_HP()
480 * which causes a line break and cancels no-space in post_HP()
484 if (n->child == NULL) in post_HP()
485 term_vspace(p); in post_HP()
487 p->flags &= ~(TERMP_NOBREAK | TERMP_BRIND); in post_HP()
488 p->trailspace = 0; in post_HP()
489 p->tcol->offset = mt->offset; in post_HP()
490 p->tcol->rmargin = p->maxrmargin; in post_HP()
500 switch (n->type) { in pre_PP()
502 mt->lmargin[mt->lmargincur] = term_len(p, 7); in pre_PP()
503 print_bvspace(p, n, mt->pardist); in pre_PP()
508 p->tcol->offset = mt->offset; in pre_PP()
523 switch (n->type) { in pre_IP()
525 print_bvspace(p, n, mt->pardist); in pre_IP()
528 p->flags |= TERMP_NOBREAK; in pre_IP()
529 p->trailspace = 1; in pre_IP()
532 p->flags |= TERMP_NOSPACE | TERMP_NONEWLINE; in pre_IP()
539 if ((nn = n->parent->head->child) != NULL && in pre_IP()
540 (nn = nn->next) != NULL && in pre_IP()
541 a2roffsu(nn->string, &su, SCALE_EN) != NULL) { in pre_IP()
542 len = term_hen(p, &su); in pre_IP()
543 if (len < 0 && (size_t)(-len) > mt->offset) in pre_IP()
544 len = -mt->offset; in pre_IP()
546 len = term_len(p, p->defindent); in pre_IP()
547 mt->lmargin[mt->lmargincur] = len; in pre_IP()
549 len = mt->lmargin[mt->lmargincur]; in pre_IP()
551 switch (n->type) { in pre_IP()
553 p->tcol->offset = mt->offset; in pre_IP()
554 p->tcol->rmargin = mt->offset + len; in pre_IP()
555 if (n->child != NULL) in pre_IP()
556 print_man_node(p, mt, n->child, meta); in pre_IP()
559 p->tcol->offset = mt->offset + len; in pre_IP()
560 p->tcol->rmargin = p->maxrmargin; in pre_IP()
571 switch (n->type) { in post_IP()
575 term_flushln(p); in post_IP()
576 p->flags &= ~TERMP_NOBREAK; in post_IP()
577 p->trailspace = 0; in post_IP()
578 p->tcol->rmargin = p->maxrmargin; in post_IP()
581 term_newln(p); in post_IP()
582 p->tcol->offset = mt->offset; in post_IP()
596 switch (n->type) { in pre_TP()
598 if (n->tok == MAN_TP) in pre_TP()
599 print_bvspace(p, n, mt->pardist); in pre_TP()
602 p->flags |= TERMP_NOBREAK | TERMP_BRTRSP; in pre_TP()
603 p->trailspace = 1; in pre_TP()
606 p->flags |= TERMP_NOSPACE | TERMP_NONEWLINE; in pre_TP()
614 if ((nn = n->parent->head->child) != NULL && in pre_TP()
615 nn->string != NULL && ! (NODE_LINE & nn->flags) && in pre_TP()
616 a2roffsu(nn->string, &su, SCALE_EN) != NULL) { in pre_TP()
617 len = term_hen(p, &su); in pre_TP()
618 if (len < 0 && (size_t)(-len) > mt->offset) in pre_TP()
619 len = -mt->offset; in pre_TP()
621 len = term_len(p, p->defindent); in pre_TP()
622 mt->lmargin[mt->lmargincur] = len; in pre_TP()
624 len = mt->lmargin[mt->lmargincur]; in pre_TP()
626 switch (n->type) { in pre_TP()
628 p->tcol->offset = mt->offset; in pre_TP()
629 p->tcol->rmargin = mt->offset + len; in pre_TP()
631 /* Don't print same-line elements. */ in pre_TP()
632 nn = n->child; in pre_TP()
633 while (nn != NULL && (nn->flags & NODE_LINE) == 0) in pre_TP()
634 nn = nn->next; in pre_TP()
637 print_man_node(p, mt, nn, meta); in pre_TP()
638 nn = nn->next; in pre_TP()
642 p->tcol->offset = mt->offset + len; in pre_TP()
643 p->tcol->rmargin = p->maxrmargin; in pre_TP()
644 p->trailspace = 0; in pre_TP()
645 p->flags &= ~(TERMP_NOBREAK | TERMP_BRTRSP); in pre_TP()
656 switch (n->type) { in post_TP()
660 term_flushln(p); in post_TP()
663 term_newln(p); in post_TP()
664 p->tcol->offset = mt->offset; in post_TP()
676 switch (n->type) { in pre_SS()
678 mt->lmargin[mt->lmargincur] = term_len(p, 7); in pre_SS()
679 mt->offset = term_len(p, p->defindent); in pre_SS()
687 (n->tok == MAN_SS && roff_node_child(n->body) == NULL)) in pre_SS()
690 for (i = 0; i < mt->pardist; i++) in pre_SS()
691 term_vspace(p); in pre_SS()
694 term_fontrepl(p, TERMFONT_BOLD); in pre_SS()
695 p->tcol->offset = term_len(p, 3); in pre_SS()
696 p->tcol->rmargin = mt->offset; in pre_SS()
697 p->trailspace = mt->offset; in pre_SS()
698 p->flags |= TERMP_NOBREAK | TERMP_BRIND; in pre_SS()
701 p->tcol->offset = mt->offset; in pre_SS()
702 p->tcol->rmargin = p->maxrmargin; in pre_SS()
703 p->trailspace = 0; in pre_SS()
704 p->flags &= ~(TERMP_NOBREAK | TERMP_BRIND); in pre_SS()
717 switch (n->type) { in pre_SH()
719 mt->lmargin[mt->lmargincur] = term_len(p, 7); in pre_SH()
720 mt->offset = term_len(p, p->defindent); in pre_SH()
728 (n->tok == MAN_SH && roff_node_child(n->body) == NULL)) in pre_SH()
731 for (i = 0; i < mt->pardist; i++) in pre_SH()
732 term_vspace(p); in pre_SH()
735 term_fontrepl(p, TERMFONT_BOLD); in pre_SH()
736 p->tcol->offset = 0; in pre_SH()
737 p->tcol->rmargin = mt->offset; in pre_SH()
738 p->trailspace = mt->offset; in pre_SH()
739 p->flags |= TERMP_NOBREAK | TERMP_BRIND; in pre_SH()
742 p->tcol->offset = mt->offset; in pre_SH()
743 p->tcol->rmargin = p->maxrmargin; in pre_SH()
744 p->trailspace = 0; in pre_SH()
745 p->flags &= ~(TERMP_NOBREAK | TERMP_BRIND); in pre_SH()
756 switch (n->type) { in post_SH()
761 term_newln(p); in post_SH()
773 switch (n->type) { in pre_RS()
775 term_newln(p); in pre_RS()
785 n = n->parent->head; in pre_RS()
786 n->aux = SHRT_MAX + 1; in pre_RS()
787 if (n->child == NULL) in pre_RS()
788 n->aux = mt->lmargin[mt->lmargincur]; in pre_RS()
789 else if (a2roffsu(n->child->string, &su, SCALE_EN) != NULL) in pre_RS()
790 n->aux = term_hen(p, &su); in pre_RS()
791 if (n->aux < 0 && (size_t)(-n->aux) > mt->offset) in pre_RS()
792 n->aux = -mt->offset; in pre_RS()
793 else if (n->aux > SHRT_MAX) in pre_RS()
794 n->aux = term_len(p, p->defindent); in pre_RS()
796 mt->offset += n->aux; in pre_RS()
797 p->tcol->offset = mt->offset; in pre_RS()
798 p->tcol->rmargin = p->maxrmargin; in pre_RS()
800 if (++mt->lmarginsz < MAXMARGINS) in pre_RS()
801 mt->lmargincur = mt->lmarginsz; in pre_RS()
803 mt->lmargin[mt->lmargincur] = term_len(p, 7); in pre_RS()
810 switch (n->type) { in post_RS()
819 term_newln(p); in post_RS()
820 mt->offset -= n->parent->head->aux; in post_RS()
821 p->tcol->offset = mt->offset; in post_RS()
822 if (--mt->lmarginsz < MAXMARGINS) in post_RS()
823 mt->lmargincur = mt->lmarginsz; in post_RS()
832 switch (n->type) { in pre_SY()
834 if ((nn = roff_node_prev(n)) == NULL || nn->tok != MAN_SY) in pre_SY()
835 print_bvspace(p, n, mt->pardist); in pre_SY()
844 nn = n->parent->head->child; in pre_SY()
845 len = nn == NULL ? 1 : term_strlen(p, nn->string) + 1; in pre_SY()
847 switch (n->type) { in pre_SY()
849 p->tcol->offset = mt->offset; in pre_SY()
850 p->tcol->rmargin = mt->offset + len; in pre_SY()
851 if (n->next->child == NULL || in pre_SY()
852 (n->next->child->flags & NODE_NOFILL) == 0) in pre_SY()
853 p->flags |= TERMP_NOBREAK; in pre_SY()
854 term_fontrepl(p, TERMFONT_BOLD); in pre_SY()
857 mt->lmargin[mt->lmargincur] = len; in pre_SY()
858 p->tcol->offset = mt->offset + len; in pre_SY()
859 p->tcol->rmargin = p->maxrmargin; in pre_SY()
860 p->flags |= TERMP_NOSPACE; in pre_SY()
871 switch (n->type) { in post_SY()
875 term_flushln(p); in post_SY()
876 p->flags &= ~TERMP_NOBREAK; in post_SY()
879 term_newln(p); in post_SY()
880 p->tcol->offset = mt->offset; in post_SY()
890 return n->type != ROFFT_HEAD; in pre_UR()
896 if (n->type != ROFFT_BLOCK) in post_UR()
899 term_word(p, "<"); in post_UR()
900 p->flags |= TERMP_NOSPACE; in post_UR()
902 if (n->child->child != NULL) in post_UR()
903 print_man_node(p, mt, n->child->child, meta); in post_UR()
905 p->flags |= TERMP_NOSPACE; in post_UR()
906 term_word(p, ">"); in post_UR()
916 * In no-fill mode, break the output line at the beginning in print_man_node()
920 if (n->flags & NODE_NOFILL) { in print_man_node()
921 if (n->flags & NODE_LINE && in print_man_node()
922 (p->flags & TERMP_NONEWLINE) == 0) in print_man_node()
923 term_newln(p); in print_man_node()
924 p->flags |= TERMP_BRNEVER; in print_man_node()
926 if (n->flags & NODE_LINE) in print_man_node()
927 term_tab_ref(p); in print_man_node()
928 p->flags &= ~TERMP_BRNEVER; in print_man_node()
931 if (n->flags & NODE_ID) in print_man_node()
932 term_tag_write(n, p->line); in print_man_node()
934 switch (n->type) { in print_man_node()
941 if (*n->string == '\0') { in print_man_node()
942 if (p->flags & TERMP_NONEWLINE) in print_man_node()
943 term_newln(p); in print_man_node()
945 term_vspace(p); in print_man_node()
947 } else if (*n->string == ' ' && n->flags & NODE_LINE && in print_man_node()
948 (p->flags & TERMP_NONEWLINE) == 0) in print_man_node()
949 term_newln(p); in print_man_node()
950 else if (n->flags & NODE_DELIMC) in print_man_node()
951 p->flags |= TERMP_NOSPACE; in print_man_node()
953 term_word(p, n->string); in print_man_node()
958 if ( ! (n->flags & NODE_LINE)) in print_man_node()
959 p->flags |= TERMP_NOSPACE; in print_man_node()
960 term_eqn(p, n->eqn); in print_man_node()
961 if (n->next != NULL && ! (n->next->flags & NODE_LINE)) in print_man_node()
962 p->flags |= TERMP_NOSPACE; in print_man_node()
965 if (p->tbl.cols == NULL) in print_man_node()
966 term_newln(p); in print_man_node()
967 term_tbl(p, n->span); in print_man_node()
973 if (n->tok < ROFF_MAX) { in print_man_node()
974 roff_term_pre(p, n); in print_man_node()
978 act = man_term_act(n->tok); in print_man_node()
979 if ((act->flags & MAN_NOTEXT) == 0 && n->tok != MAN_SM) in print_man_node()
980 term_fontrepl(p, TERMFONT_NONE); in print_man_node()
983 if (act->pre != NULL) in print_man_node()
984 c = (*act->pre)(p, mt, n, meta); in print_man_node()
986 if (c && n->child != NULL) in print_man_node()
987 print_man_nodelist(p, mt, n->child, meta); in print_man_node()
989 if (act->post != NULL) in print_man_node()
990 (*act->post)(p, mt, n, meta); in print_man_node()
991 if ((act->flags & MAN_NOTEXT) == 0 && n->tok != MAN_SM) in print_man_node()
992 term_fontrepl(p, TERMFONT_NONE); in print_man_node()
995 if (n->parent->tok == MAN_HP && n->parent->type == ROFFT_BODY && in print_man_node()
996 n->prev == NULL && n->flags & NODE_NOFILL) { in print_man_node()
997 term_newln(p); in print_man_node()
998 p->tcol->offset = p->tcol->rmargin; in print_man_node()
999 p->tcol->rmargin = p->maxrmargin; in print_man_node()
1001 if (n->flags & NODE_EOS) in print_man_node()
1002 p->flags |= TERMP_SENTENCE; in print_man_node()
1009 print_man_node(p, mt, n, meta); in print_man_nodelist()
1010 n = n->next; in print_man_nodelist()
1015 print_man_foot(struct termp *p, const struct roff_meta *meta) in print_man_foot() argument
1020 assert(meta->title); in print_man_foot()
1021 assert(meta->msec); in print_man_foot()
1022 assert(meta->date); in print_man_foot()
1024 term_fontrepl(p, TERMFONT_NONE); in print_man_foot()
1026 if (meta->hasbody) in print_man_foot()
1027 term_vspace(p); in print_man_foot()
1035 if ( ! p->mdocstyle) { in print_man_foot()
1037 meta->title, meta->msec); in print_man_foot()
1038 } else if (meta->os != NULL) { in print_man_foot()
1039 title = mandoc_strdup(meta->os); in print_man_foot()
1043 datelen = term_strlen(p, meta->date); in print_man_foot()
1047 p->flags |= TERMP_NOSPACE | TERMP_NOBREAK; in print_man_foot()
1048 p->trailspace = 1; in print_man_foot()
1049 p->tcol->offset = 0; in print_man_foot()
1050 p->tcol->rmargin = p->maxrmargin > datelen ? in print_man_foot()
1051 (p->maxrmargin + term_len(p, 1) - datelen) / 2 : 0; in print_man_foot()
1053 if (meta->os) in print_man_foot()
1054 term_word(p, meta->os); in print_man_foot()
1055 term_flushln(p); in print_man_foot()
1059 p->tcol->offset = p->tcol->rmargin; in print_man_foot()
1060 titlen = term_strlen(p, title); in print_man_foot()
1061 p->tcol->rmargin = p->maxrmargin > titlen ? in print_man_foot()
1062 p->maxrmargin - titlen : 0; in print_man_foot()
1063 p->flags |= TERMP_NOSPACE; in print_man_foot()
1065 term_word(p, meta->date); in print_man_foot()
1066 term_flushln(p); in print_man_foot()
1070 p->flags &= ~TERMP_NOBREAK; in print_man_foot()
1071 p->flags |= TERMP_NOSPACE; in print_man_foot()
1072 p->trailspace = 0; in print_man_foot()
1073 p->tcol->offset = p->tcol->rmargin; in print_man_foot()
1074 p->tcol->rmargin = p->maxrmargin; in print_man_foot()
1076 term_word(p, title); in print_man_foot()
1077 term_flushln(p); in print_man_foot()
1087 p->tcol->offset = 0; in print_man_foot()
1088 p->flags = 0; in print_man_foot()
1094 print_man_head(struct termp *p, const struct roff_meta *meta) in print_man_head() argument
1100 assert(meta->title); in print_man_head()
1101 assert(meta->msec); in print_man_head()
1103 volume = NULL == meta->vol ? "" : meta->vol; in print_man_head()
1104 vollen = term_strlen(p, volume); in print_man_head()
1108 mandoc_asprintf(&title, "%s(%s)", meta->title, meta->msec); in print_man_head()
1109 titlen = term_strlen(p, title); in print_man_head()
1111 p->flags |= TERMP_NOBREAK | TERMP_NOSPACE; in print_man_head()
1112 p->trailspace = 1; in print_man_head()
1113 p->tcol->offset = 0; in print_man_head()
1114 p->tcol->rmargin = 2 * (titlen+1) + vollen < p->maxrmargin ? in print_man_head()
1115 (p->maxrmargin - vollen + term_len(p, 1)) / 2 : in print_man_head()
1116 vollen < p->maxrmargin ? p->maxrmargin - vollen : 0; in print_man_head()
1118 term_word(p, title); in print_man_head()
1119 term_flushln(p); in print_man_head()
1123 p->flags |= TERMP_NOSPACE; in print_man_head()
1124 p->tcol->offset = p->tcol->rmargin; in print_man_head()
1125 p->tcol->rmargin = p->tcol->offset + vollen + titlen < in print_man_head()
1126 p->maxrmargin ? p->maxrmargin - titlen : p->maxrmargin; in print_man_head()
1128 term_word(p, volume); in print_man_head()
1129 term_flushln(p); in print_man_head()
1133 p->flags &= ~TERMP_NOBREAK; in print_man_head()
1134 p->trailspace = 0; in print_man_head()
1135 if (p->tcol->rmargin + titlen <= p->maxrmargin) { in print_man_head()
1136 p->flags |= TERMP_NOSPACE; in print_man_head()
1137 p->tcol->offset = p->tcol->rmargin; in print_man_head()
1138 p->tcol->rmargin = p->maxrmargin; in print_man_head()
1139 term_word(p, title); in print_man_head()
1140 term_flushln(p); in print_man_head()
1143 p->flags &= ~TERMP_NOSPACE; in print_man_head()
1144 p->tcol->offset = 0; in print_man_head()
1145 p->tcol->rmargin = p->maxrmargin; in print_man_head()
1153 term_vspace(p); in print_man_head()