Lines Matching refs:mdoc

220 mdoc_endparse(struct roff_man *mdoc)  in mdoc_endparse()  argument
226 n = mdoc->last->flags & NODE_VALID ? in mdoc_endparse()
227 mdoc->last->parent : mdoc->last; in mdoc_endparse()
237 rew_last(mdoc, mdoc->meta.first); in mdoc_endparse()
245 lookup(struct roff_man *mdoc, int from, int line, int ppos, const char *p) in lookup() argument
249 if (mdoc->flags & MDOC_PHRASEQF) { in lookup()
250 mdoc->flags &= ~MDOC_PHRASEQF; in lookup()
254 res = roffhash_find(mdoc->mdocmac, p, 0); in lookup()
268 rew_last(struct roff_man *mdoc, const struct roff_node *to) in rew_last() argument
274 while (mdoc->last != to) { in rew_last()
275 mdoc_state(mdoc, mdoc->last); in rew_last()
276 mdoc->last->flags |= NODE_VALID | NODE_ENDED; in rew_last()
277 mdoc->last = mdoc->last->parent; in rew_last()
279 mdoc_state(mdoc, mdoc->last); in rew_last()
280 mdoc->last->flags |= NODE_VALID | NODE_ENDED; in rew_last()
281 mdoc->next = ROFF_NEXT_SIBLING; in rew_last()
288 rew_pending(struct roff_man *mdoc, const struct roff_node *n) in rew_pending() argument
292 rew_last(mdoc, n); in rew_pending()
294 if (mdoc->last == n) { in rew_pending()
297 roff_body_alloc(mdoc, n->line, n->pos, in rew_pending()
300 mdoc->flags &= ~ROFF_NONOFILL; in rew_pending()
310 n = mdoc->last; in rew_pending()
373 rew_elem(struct roff_man *mdoc, enum roff_tok tok) in rew_elem() argument
377 n = mdoc->last; in rew_elem()
382 rew_last(mdoc, n); in rew_elem()
405 find_pending(struct roff_man *mdoc, enum roff_tok tok, int line, int ppos, in find_pending() argument
415 for (n = mdoc->last; n != NULL && n != target; n = n->parent) { in find_pending()
421 break_intermediate(mdoc->last, target); in find_pending()
428 mdoc_endbody_alloc(mdoc, line, ppos, in find_pending()
441 dword(struct roff_man *mdoc, int line, int col, const char *p, in dword() argument
449 ! (mdoc->flags & (MDOC_SYNOPSIS | MDOC_KEEP | MDOC_SMOFF)) && in dword()
450 d == DELIM_NONE && mdoc->last->type == ROFFT_TEXT && in dword()
451 mdoc_isdelim(mdoc->last->string) == DELIM_NONE) { in dword()
452 roff_word_append(mdoc, p); in dword()
456 roff_word_alloc(mdoc, line, col, p); in dword()
466 mdoc->last->flags |= NODE_DELIMO; in dword()
468 ! (mdoc->flags & MDOC_NODELIMC) && in dword()
469 mdoc->last->parent->tok != MDOC_Fd) in dword()
470 mdoc->last->flags |= NODE_DELIMC; in dword()
471 mdoc->flags &= ~MDOC_NODELIMC; in dword()
475 append_delims(struct roff_man *mdoc, int line, int *pos, char *buf) in append_delims() argument
486 ac = mdoc_args(mdoc, line, pos, buf, TOKEN_NONE, &p); in append_delims()
489 dword(mdoc, line, la, p, DELIM_MAX, 1); in append_delims()
504 mdoc->last->flags |= NODE_EOS; in append_delims()
521 mdoc->flags & MDOC_PHRASELIT ? TOKEN_NONE : in macro_or_word()
522 lookup(mdoc, tok, line, ppos, p); in macro_or_word()
525 dword(mdoc, line, ppos, p, DELIM_MAX, tok == TOKEN_NONE || in macro_or_word()
531 rew_elem(mdoc, tok); in macro_or_word()
532 (*mdoc_macro(ntok)->fp)(mdoc, ntok, line, ppos, pos, buf); in macro_or_word()
534 append_delims(mdoc, line, pos, buf); in macro_or_word()
557 nl = MDOC_NEWLINE & mdoc->flags; in blk_exp_close()
564 mdoc->flags &= ~MDOC_KEEP; in blk_exp_close()
575 for (n = mdoc->last; n; n = n->parent) { in blk_exp_close()
589 for (n = mdoc->last; n; n = n->parent) { in blk_exp_close()
641 endbody = mdoc_endbody_alloc(mdoc, line, ppos, in blk_exp_close()
654 mdoc->next = ROFF_NEXT_CHILD; in blk_exp_close()
667 rew_last(mdoc, n); in blk_exp_close()
673 break_intermediate(mdoc->last, body); in blk_exp_close()
687 roff_elem_alloc(mdoc, line, ppos, ROFF_br); in blk_exp_close()
688 rew_elem(mdoc, ROFF_br); in blk_exp_close()
691 rew_last(mdoc, body); in blk_exp_close()
693 mdoc_tail_alloc(mdoc, line, ppos, atok); in blk_exp_close()
701 rew_pending(mdoc, n); in blk_exp_close()
711 mdoc->flags |= ROFF_NOFILL; in blk_exp_close()
713 mdoc->flags &= ~ROFF_NOFILL; in blk_exp_close()
726 rew_last(mdoc, n); in blk_exp_close()
728 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in blk_exp_close()
732 ntok = lookup(mdoc, tok, line, lastarg, p); in blk_exp_close()
735 dword(mdoc, line, lastarg, p, DELIM_MAX, in blk_exp_close()
745 rew_last(mdoc, n); in blk_exp_close()
746 mdoc->flags &= ~MDOC_NEWLINE; in blk_exp_close()
747 (*mdoc_macro(ntok)->fp)(mdoc, ntok, line, lastarg, pos, buf); in blk_exp_close()
758 pending = find_pending(mdoc, ntok, line, ppos, target); in blk_exp_close()
761 rew_pending(mdoc, n); in blk_exp_close()
764 append_delims(mdoc, line, pos, buf); in blk_exp_close()
777 nl = MDOC_NEWLINE & mdoc->flags; in in_line()
798 mdoc_argv(mdoc, line, tok, &arg, pos, buf); in in_line()
805 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in in_line()
814 mdoc->last->flags &= ~NODE_DELIMO; in in_line()
828 mdoc->flags |= MDOC_NODELIMC; in in_line()
833 TOKEN_NONE : lookup(mdoc, tok, line, la, p); in in_line()
844 rew_elem(mdoc, tok); in in_line()
846 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line()
847 rew_last(mdoc, mdoc->last); in in_line()
853 (*mdoc_macro(ntok)->fp)(mdoc, ntok, in in_line()
856 append_delims(mdoc, line, pos, buf); in in_line()
877 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line()
888 rew_elem(mdoc, tok); in in_line()
894 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line()
899 dword(mdoc, line, la, p, d, in in_line()
911 mdoc->last->flags &= ~NODE_DELIMC; in in_line()
920 rew_elem(mdoc, tok); in in_line()
926 rew_elem(mdoc, tok); in in_line()
938 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line()
939 rew_last(mdoc, mdoc->last); in in_line()
947 append_delims(mdoc, line, pos, buf); in in_line()
949 rew_elem(mdoc, tok); in in_line()
965 nl = MDOC_NEWLINE & mdoc->flags; in blk_full()
978 for (n = mdoc->last; n != NULL; n = n->parent) { in blk_full()
992 rew_pending(mdoc, blk); in blk_full()
1005 rew_pending(mdoc, n); in blk_full()
1006 n = mdoc->last; in blk_full()
1030 rew_pending(mdoc, blk); in blk_full()
1036 rew_pending(mdoc, n); in blk_full()
1044 roff_elem_alloc(mdoc, line, ppos, ROFF_br); in blk_full()
1045 rew_elem(mdoc, ROFF_br); in blk_full()
1061 mdoc->flags &= ~ROFF_NOFILL; in blk_full()
1064 mdoc->flags |= ROFF_NONOFILL; in blk_full()
1069 mdoc_argv(mdoc, line, tok, &arg, pos, buf); in blk_full()
1070 blk = mdoc_block_alloc(mdoc, line, ppos, tok, arg); in blk_full()
1079 mdoc->last->parent->tok != MDOC_Bl || in blk_full()
1080 mdoc->last->parent->norm->Bl.type != LIST_diag; in blk_full()
1088 head = roff_head_alloc(mdoc, line, ppos, tok); in blk_full()
1089 rew_last(mdoc, head); in blk_full()
1090 body = roff_body_alloc(mdoc, line, ppos, tok); in blk_full()
1094 mdoc->flags |= MDOC_KEEP; in blk_full()
1104 if (mdoc->flags & MDOC_PHRASEQN) { in blk_full()
1105 mdoc->flags &= ~MDOC_PHRASEQN; in blk_full()
1106 mdoc->flags |= MDOC_PHRASEQF; in blk_full()
1111 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in blk_full()
1114 ! (mdoc->flags & MDOC_PHRASEQF)) in blk_full()
1123 rew_last(mdoc, body); in blk_full()
1124 body = roff_body_alloc(mdoc, line, ppos, tok); in blk_full()
1125 roff_word_alloc(mdoc, line, ppos, "\\&"); in blk_full()
1154 dword(mdoc, line, la, p, DELIM_OPEN, 0); in blk_full()
1163 head = roff_head_alloc(mdoc, line, ppos, tok); in blk_full()
1172 rew_last(mdoc, body == NULL ? head : body); in blk_full()
1173 body = roff_body_alloc(mdoc, line, ppos, tok); in blk_full()
1177 mdoc->flags |= MDOC_PHRASE; in blk_full()
1178 parse_rest(mdoc, TOKEN_NONE, line, &la, buf); in blk_full()
1179 mdoc->flags &= ~MDOC_PHRASE; in blk_full()
1188 done = macro_or_word(mdoc, tok, line, la, pos, buf, p, parsed); in blk_full()
1198 head = roff_head_alloc(mdoc, line, ppos, tok); in blk_full()
1200 append_delims(mdoc, line, pos, buf); in blk_full()
1203 if (find_pending(mdoc, tok, line, ppos, head)) in blk_full()
1208 rew_last(mdoc, head); in blk_full()
1209 body = roff_body_alloc(mdoc, line, ppos, tok); in blk_full()
1211 mdoc->flags &= ~ROFF_NONOFILL; in blk_full()
1224 mdoc->flags |= ROFF_NOFILL; in blk_full()
1229 mdoc->flags &= ~ROFF_NOFILL; in blk_full()
1238 if (mdoc->flags & MDOC_FREECOL) { in blk_full()
1239 rew_last(mdoc, body); in blk_full()
1240 rew_last(mdoc, blk); in blk_full()
1241 mdoc->flags &= ~MDOC_FREECOL; in blk_full()
1255 nl = MDOC_NEWLINE & mdoc->flags; in blk_part_imp()
1266 blk = mdoc_block_alloc(mdoc, line, ppos, tok, NULL); in blk_part_imp()
1267 rew_last(mdoc, roff_head_alloc(mdoc, line, ppos, tok)); in blk_part_imp()
1277 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in blk_part_imp()
1282 dword(mdoc, line, la, p, DELIM_OPEN, 0); in blk_part_imp()
1289 body = roff_body_alloc(mdoc, line, ppos, tok); in blk_part_imp()
1291 done = macro_or_word(mdoc, tok, line, la, pos, buf, p, 1); in blk_part_imp()
1298 body = roff_body_alloc(mdoc, line, ppos, tok); in blk_part_imp()
1300 if (find_pending(mdoc, tok, line, ppos, body)) in blk_part_imp()
1303 rew_last(mdoc, body); in blk_part_imp()
1305 append_delims(mdoc, line, pos, buf); in blk_part_imp()
1306 rew_pending(mdoc, blk); in blk_part_imp()
1313 roff_node_relink(mdoc, n); in blk_part_imp()
1324 nl = MDOC_NEWLINE & mdoc->flags; in blk_part_exp()
1332 roff_block_alloc(mdoc, line, ppos, tok); in blk_part_exp()
1336 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in blk_part_exp()
1343 dword(mdoc, line, la, p, DELIM_OPEN, 0); in blk_part_exp()
1350 head = roff_head_alloc(mdoc, line, ppos, tok); in blk_part_exp()
1352 dword(mdoc, line, la, p, DELIM_MAX, 0); in blk_part_exp()
1353 rew_last(mdoc, head); in blk_part_exp()
1354 roff_body_alloc(mdoc, line, ppos, tok); in blk_part_exp()
1362 done = macro_or_word(mdoc, tok, line, la, pos, buf, p, 1); in blk_part_exp()
1372 rew_last(mdoc, roff_head_alloc(mdoc, line, ppos, tok)); in blk_part_exp()
1373 roff_body_alloc(mdoc, line, ppos, tok); in blk_part_exp()
1376 append_delims(mdoc, line, pos, buf); in blk_part_exp()
1389 nl = mdoc->flags & MDOC_NEWLINE; in in_line_argn()
1415 mdoc_argv(mdoc, line, tok, &arg, pos, buf); in in_line_argn()
1421 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in in_line_argn()
1426 dword(mdoc, line, la, p, DELIM_OPEN, 0); in in_line_argn()
1434 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line_argn()
1447 rew_elem(mdoc, tok); in in_line_argn()
1452 TOKEN_NONE : lookup(mdoc, tok, line, la, p); in in_line_argn()
1456 rew_elem(mdoc, tok); in in_line_argn()
1459 (*mdoc_macro(ntok)->fp)(mdoc, ntok, in in_line_argn()
1469 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line_argn()
1474 rew_elem(mdoc, tok); in in_line_argn()
1478 dword(mdoc, line, la, p, DELIM_MAX, in in_line_argn()
1482 p = mdoc->last->string; in in_line_argn()
1492 append_delims(mdoc, line, pos, buf); in in_line_argn()
1494 rew_elem(mdoc, tok); in in_line_argn()
1496 append_delims(mdoc, line, pos, buf); in in_line_argn()
1506 ! (mdoc->flags & MDOC_SYNOPSIS)) { in in_line_eoln()
1507 n = mdoc->last; in in_line_eoln()
1508 if (mdoc->next == ROFF_NEXT_SIBLING) in in_line_eoln()
1511 rew_last(mdoc, n->parent); in in_line_eoln()
1521 mdoc_argv(mdoc, line, tok, &arg, pos, buf); in in_line_eoln()
1522 mdoc_elem_alloc(mdoc, line, ppos, tok, arg); in in_line_eoln()
1523 if (parse_rest(mdoc, tok, line, pos, buf)) in in_line_eoln()
1525 rew_elem(mdoc, tok); in in_line_eoln()
1534 parse_rest(struct roff_man *mdoc, enum roff_tok tok, in parse_rest() argument
1543 ac = mdoc_args(mdoc, line, pos, buf, tok, &p); in parse_rest()
1546 done = macro_or_word(mdoc, tok, line, la, pos, buf, p, 1); in parse_rest()
1558 if (~mdoc->flags & (MDOC_SYNOPSIS | MDOC_NEWLINE)) in ctx_synopsis()
1559 in_line(mdoc, tok, line, ppos, pos, buf); in ctx_synopsis()
1561 blk_full(mdoc, tok, line, ppos, pos, buf); in ctx_synopsis()
1564 blk_part_imp(mdoc, tok, line, ppos, pos, buf); in ctx_synopsis()
1581 for (n = mdoc->last; n != NULL; n = n->parent) { in phrase_ta()
1597 rew_last(mdoc, body); in phrase_ta()
1598 roff_body_alloc(mdoc, line, ppos, MDOC_It); in phrase_ta()
1599 parse_rest(mdoc, TOKEN_NONE, line, pos, buf); in phrase_ta()