Lines Matching defs:man

1 /* $Id: man.c,v 1.189 2022/08/16 23:01:09 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)) {
137 roff_elem_alloc(man, line, offs, ROFF_sp);
138 man->next = ROFF_NEXT_SIBLING;
162 roff_word_alloc(man, line, offs, buf + offs);
172 man->last->flags |= NODE_EOS;
174 man_descope(man, line, offs, buf + offs);
179 man_pmacro(struct roff_man *man, int ln, char *buf, int offs)
195 tok = roffhash_find(man->manmac, buf + ppos, sz);
234 man_breakscope(man, tok);
235 bline = man->flags & MAN_BLINE;
250 (*man_macro(tok)->fp)(man, tok, ln, ppos, &offs, buf);
254 if (man->quick && tok == MAN_SH) {
255 n = man->last;
268 (man->flags & MAN_BLINE) == 0 ||
269 man->flags & MAN_ELINE ||
273 man_unscope(man, man->last->parent);
274 roff_body_alloc(man, ln, ppos, man->last->tok);
275 man->flags &= ~(MAN_BLINE | ROFF_NONOFILL);
284 man_breakscope(struct roff_man *man, int tok)
294 if (man->flags & MAN_ELINE && (tok < MAN_TH ||
296 n = man->last;
312 roff_node_delete(man, n);
313 man->flags &= ~MAN_ELINE;
321 if (man->flags & MAN_BLINE &&
323 (man->last->tok == MAN_SH || man->last->tok == MAN_SS)) {
324 n = man->last;
325 man_unscope(man, n);
326 roff_body_alloc(man, n->line, n->pos, n->tok);
327 man->flags &= ~(MAN_BLINE | ROFF_NONOFILL);
336 if (man->flags & MAN_BLINE && tok != ROFF_nf && tok != ROFF_fi &&
338 n = man->last;
353 roff_node_delete(man, n);
354 man->flags &= ~(MAN_BLINE | ROFF_NONOFILL);