Lines Matching defs:man
1 /* $Id: man.c,v 1.190 2025/08/22 13:17:06 schwarze Exp $ */
33 #include "man.h"
44 man_parseln(struct roff_man *man, int ln, char *buf, int offs)
47 if (man->last->type != ROFFT_EQN || ln > man->last->line)
48 man->flags |= MAN_NEWLINE;
50 return roff_getcontrol(man->roff, buf, &offs) ?
51 man_pmacro(man, ln, buf, offs) :
52 man_ptext(man, ln, buf, offs);
77 man_descope(struct roff_man *man, int line, int offs, char *start)
81 if (man->flags & MAN_ELINE) {
82 while (man->last->parent->type != ROFFT_ROOT &&
83 man_macro(man->last->parent->tok)->flags & MAN_ESCOPED)
84 man_unscope(man, man->last->parent);
85 man->flags &= ~MAN_ELINE;
95 if ( ! (man->flags & MAN_BLINE))
97 man_unscope(man, man->last->parent);
98 roff_body_alloc(man, line, offs, man->last->tok);
99 man->flags &= ~(MAN_BLINE | ROFF_NONOFILL);
103 man_ptext(struct roff_man *man, int line, char *buf, int offs)
110 if (man->flags & ROFF_NOFILL) {
111 roff_word_alloc(man, line, offs, buf + offs);
112 man_descope(man, line, offs, buf + offs);
126 if (man->flags & (MAN_ELINE | MAN_BLINE)) {
130 if (man->last->tok == MAN_SH || man->last->tok == MAN_SS)
132 if (man->last->type == ROFFT_TEXT &&
133 ((ep = man_hasc(man->last->string)) != NULL)) {
138 roff_elem_alloc(man, line, offs, ROFF_sp);
139 man->next = ROFF_NEXT_SIBLING;
163 roff_word_alloc(man, line, offs, buf + offs);
173 man->last->flags |= NODE_EOS;
175 man_descope(man, line, offs, buf + offs);
180 man_pmacro(struct roff_man *man, int ln, char *buf, int offs)
196 tok = roffhash_find(man->manmac, buf + ppos, sz);
235 man_breakscope(man, tok);
236 bline = man->flags & MAN_BLINE;
251 (*man_macro(tok)->fp)(man, tok, ln, ppos, &offs, buf);
255 if (man->quick && tok == MAN_SH) {
256 n = man->last;
269 (man->flags & MAN_BLINE) == 0 ||
270 man->flags & MAN_ELINE ||
274 man_unscope(man, man->last->parent);
275 roff_body_alloc(man, ln, ppos, man->last->tok);
276 man->flags &= ~(MAN_BLINE | ROFF_NONOFILL);
285 man_breakscope(struct roff_man *man, int tok)
295 if (man->flags & MAN_ELINE && (tok < MAN_TH ||
297 n = man->last;
313 roff_node_delete(man, n);
314 man->flags &= ~MAN_ELINE;
322 if (man->flags & MAN_BLINE &&
324 (man->last->tok == MAN_SH || man->last->tok == MAN_SS)) {
325 n = man->last;
326 man_unscope(man, n);
327 roff_body_alloc(man, n->line, n->pos, n->tok);
328 man->flags &= ~(MAN_BLINE | ROFF_NONOFILL);
337 if (man->flags & MAN_BLINE && tok != ROFF_nf && tok != ROFF_fi &&
339 n = man->last;
354 roff_node_delete(man, n);
355 man->flags &= ~(MAN_BLINE | ROFF_NONOFILL);