Lines Matching refs:mdoc
223 mdoc_endparse(struct roff_man *mdoc) in mdoc_endparse() argument
229 n = mdoc->last->flags & NODE_VALID ? in mdoc_endparse()
230 mdoc->last->parent : mdoc->last; in mdoc_endparse()
240 rew_last(mdoc, mdoc->meta.first); in mdoc_endparse()
248 lookup(struct roff_man *mdoc, int from, int line, int ppos, const char *p) in lookup() argument
252 if (mdoc->flags & MDOC_PHRASEQF) { in lookup()
253 mdoc->flags &= ~MDOC_PHRASEQF; in lookup()
257 res = roffhash_find(mdoc->mdocmac, p, 0); in lookup()
271 rew_last(struct roff_man *mdoc, const struct roff_node *to) in rew_last() argument
277 while (mdoc->last != to) { in rew_last()
278 mdoc_state(mdoc, mdoc->last); in rew_last()
279 mdoc->last->flags |= NODE_VALID | NODE_ENDED; in rew_last()
280 mdoc->last = mdoc->last->parent; in rew_last()
282 mdoc_state(mdoc, mdoc->last); in rew_last()
283 mdoc->last->flags |= NODE_VALID | NODE_ENDED; in rew_last()
284 mdoc->next = ROFF_NEXT_SIBLING; in rew_last()
291 rew_pending(struct roff_man *mdoc, const struct roff_node *n) in rew_pending() argument
295 rew_last(mdoc, n); in rew_pending()
297 if (mdoc->last == n) { in rew_pending()
300 roff_body_alloc(mdoc, n->line, n->pos, in rew_pending()
303 mdoc->flags &= ~ROFF_NONOFILL; in rew_pending()
313 n = mdoc->last; in rew_pending()
376 rew_elem(struct roff_man *mdoc, enum roff_tok tok) in rew_elem() argument
380 n = mdoc->last; in rew_elem()
385 rew_last(mdoc, n); in rew_elem()
408 find_pending(struct roff_man *mdoc, enum roff_tok tok, int line, int ppos, in find_pending() argument
418 for (n = mdoc->last; n != NULL && n != target; n = n->parent) { in find_pending()
424 break_intermediate(mdoc->last, target); in find_pending()
431 mdoc_endbody_alloc(mdoc, line, ppos, in find_pending()
444 dword(struct roff_man *mdoc, int line, int col, const char *p, in dword() argument
452 ! (mdoc->flags & (MDOC_SYNOPSIS | MDOC_KEEP | MDOC_SMOFF)) && in dword()
453 d == DELIM_NONE && mdoc->last->type == ROFFT_TEXT && in dword()
454 mdoc_isdelim(mdoc->last->string) == DELIM_NONE) { in dword()
455 roff_word_append(mdoc, p); in dword()
459 roff_word_alloc(mdoc, line, col, p); in dword()
469 mdoc->last->flags |= NODE_DELIMO; in dword()
471 ! (mdoc->flags & MDOC_NODELIMC) && in dword()
472 mdoc->last->parent->tok != MDOC_Fd) in dword()
473 mdoc->last->flags |= NODE_DELIMC; in dword()
474 mdoc->flags &= ~MDOC_NODELIMC; in dword()
478 append_delims(struct roff_man *mdoc, int line, int *pos, char *buf) in append_delims() argument
489 ac = mdoc_args(mdoc, line, pos, buf, TOKEN_NONE, &p); in append_delims()
492 dword(mdoc, line, la, p, DELIM_MAX, 1); in append_delims()
507 mdoc->last->flags |= NODE_EOS; in append_delims()
524 mdoc->flags & MDOC_PHRASELIT ? TOKEN_NONE : in macro_or_word()
525 lookup(mdoc, tok, line, ppos, p); in macro_or_word()
528 dword(mdoc, line, ppos, p, DELIM_MAX, tok == TOKEN_NONE || in macro_or_word()
534 rew_elem(mdoc, tok); in macro_or_word()
535 (*mdoc_macro(ntok)->fp)(mdoc, ntok, line, ppos, pos, buf); in macro_or_word()
537 append_delims(mdoc, line, pos, buf); in macro_or_word()
560 nl = MDOC_NEWLINE & mdoc->flags; in blk_exp_close()
567 mdoc->flags &= ~MDOC_KEEP; in blk_exp_close()
578 for (n = mdoc->last; n; n = n->parent) { in blk_exp_close()
592 for (n = mdoc->last; n; n = n->parent) { in blk_exp_close()
644 endbody = mdoc_endbody_alloc(mdoc, line, ppos, in blk_exp_close()
657 mdoc->next = ROFF_NEXT_CHILD; in blk_exp_close()
670 rew_last(mdoc, n); in blk_exp_close()
676 break_intermediate(mdoc->last, body); in blk_exp_close()
690 roff_elem_alloc(mdoc, line, ppos, ROFF_br); in blk_exp_close()
691 rew_elem(mdoc, ROFF_br); in blk_exp_close()
694 rew_last(mdoc, body); in blk_exp_close()
696 mdoc_tail_alloc(mdoc, line, ppos, atok); in blk_exp_close()
704 rew_pending(mdoc, n); in blk_exp_close()
714 mdoc->flags |= ROFF_NOFILL; in blk_exp_close()
716 mdoc->flags &= ~ROFF_NOFILL; in blk_exp_close()
729 rew_last(mdoc, n); in blk_exp_close()
731 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in blk_exp_close()
735 ntok = lookup(mdoc, tok, line, lastarg, p); in blk_exp_close()
738 dword(mdoc, line, lastarg, p, DELIM_MAX, in blk_exp_close()
748 rew_last(mdoc, n); in blk_exp_close()
749 mdoc->flags &= ~MDOC_NEWLINE; in blk_exp_close()
750 (*mdoc_macro(ntok)->fp)(mdoc, ntok, line, lastarg, pos, buf); in blk_exp_close()
761 pending = find_pending(mdoc, ntok, line, ppos, target); in blk_exp_close()
764 rew_pending(mdoc, n); in blk_exp_close()
767 append_delims(mdoc, line, pos, buf); in blk_exp_close()
780 nl = MDOC_NEWLINE & mdoc->flags; in in_line()
801 mdoc_argv(mdoc, line, tok, &arg, pos, buf); in in_line()
808 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in in_line()
817 mdoc->last->flags &= ~NODE_DELIMO; in in_line()
831 mdoc->flags |= MDOC_NODELIMC; in in_line()
836 TOKEN_NONE : lookup(mdoc, tok, line, la, p); in in_line()
847 rew_elem(mdoc, tok); in in_line()
849 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line()
850 rew_last(mdoc, mdoc->last); in in_line()
856 (*mdoc_macro(ntok)->fp)(mdoc, ntok, in in_line()
859 append_delims(mdoc, line, pos, buf); in in_line()
880 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line()
891 rew_elem(mdoc, tok); in in_line()
897 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line()
902 dword(mdoc, line, la, p, d, in in_line()
914 mdoc->last->flags &= ~NODE_DELIMC; in in_line()
923 rew_elem(mdoc, tok); in in_line()
929 rew_elem(mdoc, tok); in in_line()
941 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line()
942 rew_last(mdoc, mdoc->last); in in_line()
950 append_delims(mdoc, line, pos, buf); in in_line()
952 rew_elem(mdoc, tok); in in_line()
968 nl = MDOC_NEWLINE & mdoc->flags; in blk_full()
981 for (n = mdoc->last; n != NULL; n = n->parent) { in blk_full()
995 rew_pending(mdoc, blk); in blk_full()
1008 rew_pending(mdoc, n); in blk_full()
1009 n = mdoc->last; in blk_full()
1033 rew_pending(mdoc, blk); in blk_full()
1039 rew_pending(mdoc, n); in blk_full()
1047 roff_elem_alloc(mdoc, line, ppos, ROFF_br); in blk_full()
1048 rew_elem(mdoc, ROFF_br); in blk_full()
1064 mdoc->flags &= ~ROFF_NOFILL; in blk_full()
1067 mdoc->flags |= ROFF_NONOFILL; in blk_full()
1072 mdoc_argv(mdoc, line, tok, &arg, pos, buf); in blk_full()
1073 blk = mdoc_block_alloc(mdoc, line, ppos, tok, arg); in blk_full()
1082 mdoc->last->parent->tok != MDOC_Bl || in blk_full()
1083 mdoc->last->parent->norm->Bl.type != LIST_diag; in blk_full()
1091 head = roff_head_alloc(mdoc, line, ppos, tok); in blk_full()
1092 rew_last(mdoc, head); in blk_full()
1093 body = roff_body_alloc(mdoc, line, ppos, tok); in blk_full()
1097 mdoc->flags |= MDOC_KEEP; in blk_full()
1107 if (mdoc->flags & MDOC_PHRASEQN) { in blk_full()
1108 mdoc->flags &= ~MDOC_PHRASEQN; in blk_full()
1109 mdoc->flags |= MDOC_PHRASEQF; in blk_full()
1114 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in blk_full()
1117 ! (mdoc->flags & MDOC_PHRASEQF)) in blk_full()
1126 rew_last(mdoc, body); in blk_full()
1127 body = roff_body_alloc(mdoc, line, ppos, tok); in blk_full()
1128 roff_word_alloc(mdoc, line, ppos, "\\&"); in blk_full()
1157 dword(mdoc, line, la, p, DELIM_OPEN, 0); in blk_full()
1166 head = roff_head_alloc(mdoc, line, ppos, tok); in blk_full()
1175 rew_last(mdoc, body == NULL ? head : body); in blk_full()
1176 body = roff_body_alloc(mdoc, line, ppos, tok); in blk_full()
1180 mdoc->flags |= MDOC_PHRASE; in blk_full()
1181 parse_rest(mdoc, TOKEN_NONE, line, &la, buf); in blk_full()
1182 mdoc->flags &= ~MDOC_PHRASE; in blk_full()
1191 done = macro_or_word(mdoc, tok, line, la, pos, buf, p, parsed); in blk_full()
1201 head = roff_head_alloc(mdoc, line, ppos, tok); in blk_full()
1203 append_delims(mdoc, line, pos, buf); in blk_full()
1206 if (find_pending(mdoc, tok, line, ppos, head)) in blk_full()
1211 rew_last(mdoc, head); in blk_full()
1212 body = roff_body_alloc(mdoc, line, ppos, tok); in blk_full()
1214 mdoc->flags &= ~ROFF_NONOFILL; in blk_full()
1227 mdoc->flags |= ROFF_NOFILL; in blk_full()
1232 mdoc->flags &= ~ROFF_NOFILL; in blk_full()
1241 if (mdoc->flags & MDOC_FREECOL) { in blk_full()
1242 rew_last(mdoc, body); in blk_full()
1243 rew_last(mdoc, blk); in blk_full()
1244 mdoc->flags &= ~MDOC_FREECOL; in blk_full()
1258 nl = MDOC_NEWLINE & mdoc->flags; in blk_part_imp()
1269 blk = mdoc_block_alloc(mdoc, line, ppos, tok, NULL); in blk_part_imp()
1270 rew_last(mdoc, roff_head_alloc(mdoc, line, ppos, tok)); in blk_part_imp()
1280 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in blk_part_imp()
1285 dword(mdoc, line, la, p, DELIM_OPEN, 0); in blk_part_imp()
1292 body = roff_body_alloc(mdoc, line, ppos, tok); in blk_part_imp()
1294 done = macro_or_word(mdoc, tok, line, la, pos, buf, p, 1); in blk_part_imp()
1301 body = roff_body_alloc(mdoc, line, ppos, tok); in blk_part_imp()
1303 if (find_pending(mdoc, tok, line, ppos, body)) in blk_part_imp()
1306 rew_last(mdoc, body); in blk_part_imp()
1308 append_delims(mdoc, line, pos, buf); in blk_part_imp()
1309 rew_pending(mdoc, blk); in blk_part_imp()
1316 roff_node_relink(mdoc, n); in blk_part_imp()
1327 nl = MDOC_NEWLINE & mdoc->flags; in blk_part_exp()
1335 roff_block_alloc(mdoc, line, ppos, tok); in blk_part_exp()
1339 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in blk_part_exp()
1346 dword(mdoc, line, la, p, DELIM_OPEN, 0); in blk_part_exp()
1353 head = roff_head_alloc(mdoc, line, ppos, tok); in blk_part_exp()
1355 dword(mdoc, line, la, p, DELIM_MAX, 0); in blk_part_exp()
1356 rew_last(mdoc, head); in blk_part_exp()
1357 roff_body_alloc(mdoc, line, ppos, tok); in blk_part_exp()
1365 done = macro_or_word(mdoc, tok, line, la, pos, buf, p, 1); in blk_part_exp()
1375 rew_last(mdoc, roff_head_alloc(mdoc, line, ppos, tok)); in blk_part_exp()
1376 roff_body_alloc(mdoc, line, ppos, tok); in blk_part_exp()
1379 append_delims(mdoc, line, pos, buf); in blk_part_exp()
1392 nl = mdoc->flags & MDOC_NEWLINE; in in_line_argn()
1418 mdoc_argv(mdoc, line, tok, &arg, pos, buf); in in_line_argn()
1424 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in in_line_argn()
1429 dword(mdoc, line, la, p, DELIM_OPEN, 0); in in_line_argn()
1437 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line_argn()
1450 rew_elem(mdoc, tok); in in_line_argn()
1455 TOKEN_NONE : lookup(mdoc, tok, line, la, p); in in_line_argn()
1459 rew_elem(mdoc, tok); in in_line_argn()
1462 (*mdoc_macro(ntok)->fp)(mdoc, ntok, in in_line_argn()
1472 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line_argn()
1477 rew_elem(mdoc, tok); in in_line_argn()
1481 dword(mdoc, line, la, p, DELIM_MAX, in in_line_argn()
1485 p = mdoc->last->string; in in_line_argn()
1495 append_delims(mdoc, line, pos, buf); in in_line_argn()
1497 rew_elem(mdoc, tok); in in_line_argn()
1499 append_delims(mdoc, line, pos, buf); in in_line_argn()
1509 ! (mdoc->flags & MDOC_SYNOPSIS)) { in in_line_eoln()
1510 n = mdoc->last; in in_line_eoln()
1511 if (mdoc->next == ROFF_NEXT_SIBLING) in in_line_eoln()
1514 rew_last(mdoc, n->parent); in in_line_eoln()
1529 mdoc_argv(mdoc, line, tok, &arg, pos, buf); in in_line_eoln()
1530 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line_eoln()
1531 if (parse_rest(mdoc, tok, line, pos, buf)) in in_line_eoln()
1533 rew_elem(mdoc, tok); in in_line_eoln()
1542 parse_rest(struct roff_man *mdoc, enum roff_tok tok, in parse_rest() argument
1551 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in parse_rest()
1554 done = macro_or_word(mdoc, tok, line, la, pos, buf, p, 1); in parse_rest()
1566 if (~mdoc->flags & (MDOC_SYNOPSIS | MDOC_NEWLINE)) in ctx_synopsis()
1567 in_line(mdoc, tok, line, ppos, pos, buf); in ctx_synopsis()
1569 blk_full(mdoc, tok, line, ppos, pos, buf); in ctx_synopsis()
1572 blk_part_imp(mdoc, tok, line, ppos, pos, buf); in ctx_synopsis()
1589 for (n = mdoc->last; n != NULL; n = n->parent) { in phrase_ta()
1605 rew_last(mdoc, body); in phrase_ta()
1606 roff_body_alloc(mdoc, line, ppos, MDOC_It); in phrase_ta()
1607 parse_rest(mdoc, TOKEN_NONE, line, pos, buf); in phrase_ta()