Lines Matching defs:mdoc

37 #include "mdoc.h"
44 #define POST_ARGS struct roff_man *mdoc
281 mdoc_node_validate(struct roff_man *mdoc)
286 n = mdoc->last;
287 mdoc->last = mdoc->last->child;
288 while (mdoc->last != NULL) {
289 mdoc_node_validate(mdoc);
290 if (mdoc->last == n)
291 mdoc->last = mdoc->last->child;
293 mdoc->last = mdoc->last->next;
296 mdoc->last = n;
297 mdoc->next = ROFF_NEXT_SIBLING;
301 check_text(mdoc, n->line, n->pos, n->string);
307 post_root(mdoc);
310 check_args(mdoc, mdoc->last);
327 (*p)(mdoc);
328 if (mdoc->last == n)
329 mdoc_state(mdoc, n);
335 check_args(struct roff_man *mdoc, struct roff_node *n)
344 check_argv(mdoc, n, &n->args->argv[i]);
348 check_argv(struct roff_man *mdoc, struct roff_node *n, struct mdoc_argv *v)
353 check_text(mdoc, v->line, v->pos, v->value[i]);
357 check_text(struct roff_man *mdoc, int ln, int pos, char *p)
361 if (MDOC_LITERAL & mdoc->flags)
365 mandoc_msg(MANDOCERR_FI_TAB, mdoc->parse,
378 n = mdoc->last->parent;
431 mdoc->parse, argv->line,
439 mdoc->parse, argv->line,
446 mdoc->parse, argv->line,
455 mdoc->parse, argv->line,
461 mdoc->parse, argv->line,
478 mdoc->parse, n->line, n->pos,
489 mdoc->parse, n->line, n->pos, "Bl -%s",
502 mandoc_msg(MANDOCERR_BL_NOTYPE, mdoc->parse,
517 mandoc_msg(MANDOCERR_BL_NOWIDTH, mdoc->parse,
526 mandoc_vmsg(MANDOCERR_BL_SKIPW, mdoc->parse,
553 n = mdoc->last;
575 mandoc_msg(MANDOCERR_BD_FILE, mdoc->parse,
581 mdoc->parse, argv->line,
587 mdoc->parse, argv->line,
596 mdoc->parse, argv->line,
610 mdoc->parse, n->line, n->pos,
615 mandoc_msg(MANDOCERR_BD_NOTYPE, mdoc->parse,
628 n = mdoc->last;
635 mdoc->parse, argv->line, argv->pos,
653 n = mdoc->last;
658 mandoc_msg(MANDOCERR_ARG_STD, mdoc->parse,
667 n = mdoc->last;
669 mandoc_msg(MANDOCERR_MACRO_OBS, mdoc->parse,
683 np = mdoc->last;
695 mandoc_msg(MANDOCERR_BF_NOFONT, mdoc->parse,
702 mandoc_vmsg(MANDOCERR_ARG_EXCESS, mdoc->parse,
733 mandoc_vmsg(MANDOCERR_BF_BADFONT, mdoc->parse,
745 n = mdoc->last->child;
763 n = mdoc->last;
766 mdoc->parse, n->line, n->pos,
778 n = mdoc->last->child;
782 mandoc_msg(MANDOCERR_FN_PAREN, mdoc->parse,
790 post_fname(mdoc);
791 post_fa(mdoc);
799 n = mdoc->last;
805 mandoc_msg(MANDOCERR_FO_NOHEAD, mdoc->parse,
810 mandoc_vmsg(MANDOCERR_ARG_EXCESS, mdoc->parse,
814 roff_node_delete(mdoc, n->last);
817 post_fname(mdoc);
826 for (n = mdoc->last->child; n != NULL; n = n->next) {
833 mandoc_msg(MANDOCERR_FA_COMMA, mdoc->parse,
846 n = mdoc->last;
851 mdoc_node_relink(mdoc, n->last);
853 if (mdoc->meta.name != NULL)
856 deroff(&mdoc->meta.name, n);
858 if (mdoc->meta.name == NULL)
859 mandoc_msg(MANDOCERR_NM_NONAME, mdoc->parse,
868 n = mdoc->last;
874 mandoc_msg(MANDOCERR_ND_EMPTY, mdoc->parse,
877 post_hyph(mdoc);
885 n = mdoc->last;
891 mandoc_msg(MANDOCERR_BLK_EMPTY, mdoc->parse,
894 post_hyph(mdoc);
900 mdoc->parse, n->line, n->pos, "Bd");
901 mdoc->next = ROFF_NEXT_SIBLING;
903 mdoc_node_relink(mdoc,
905 roff_node_delete(mdoc, n);
908 post_bd(mdoc);
909 post_prevpar(mdoc);
914 mdoc->parse, n->line, n->pos,
936 if (mdoc->last->child != NULL)
939 nn = mdoc->last;
943 mdoc->next = ROFF_NEXT_CHILD;
944 roff_word_alloc(mdoc, nn->line, nn->pos, "file");
945 roff_word_alloc(mdoc, nn->line, nn->pos, "...");
949 mdoc->next = ROFF_NEXT_CHILD;
950 roff_word_alloc(mdoc, nn->line, nn->pos, "~");
955 mdoc->last = nn;
965 n = mdoc->last;
967 mdoc->next = ROFF_NEXT_CHILD;
968 roff_word_alloc(mdoc, n->line, n->pos, "AT&T UNIX");
969 mdoc->last = n;
982 mandoc_vmsg(MANDOCERR_AT_BAD, mdoc->parse,
997 post_an_norm(mdoc);
999 np = mdoc->last;
1003 mandoc_msg(MANDOCERR_MACRO_EMPTY, mdoc->parse,
1006 mandoc_vmsg(MANDOCERR_ARG_EXCESS, mdoc->parse,
1014 post_obsolete(mdoc);
1015 if (mdoc->last->type == ROFFT_BLOCK)
1016 mdoc->last->norm->Es = mdoc->last_es;
1023 post_obsolete(mdoc);
1024 mdoc->last_es = mdoc->last;
1034 post_prevpar(mdoc);
1036 nit = mdoc->last;
1051 mdoc->parse, nit->line, nit->pos,
1061 mdoc->parse, nit->line, nit->pos,
1068 mdoc->parse, nit->line, nit->pos,
1083 mdoc->parse, nit->line, nit->pos,
1096 post_prevpar(mdoc);
1106 n = mdoc->last;
1110 post_bl_block_tag(mdoc);
1130 mdoc->parse, nc->line, nc->pos,
1132 mdoc_node_relink(mdoc, nc);
1136 mdoc->parse, nc->line, nc->pos,
1139 roff_node_delete(mdoc, nc);
1186 n = mdoc->last;
1242 post_bl_norm(mdoc);
1244 nh = mdoc->last;
1248 mandoc_vmsg(MANDOCERR_ARG_EXCESS, mdoc->parse,
1251 roff_node_delete(mdoc, nch);
1305 nbody = mdoc->last;
1308 post_bl_block(mdoc);
1311 post_bl_head(mdoc);
1323 mandoc_msg(MANDOCERR_BLK_EMPTY, mdoc->parse,
1336 mandoc_msg(MANDOCERR_BL_MOVE, mdoc->parse,
1384 n = mdoc->last;
1388 mdoc->parse, n->line, n->pos, "Bk");
1389 roff_node_delete(mdoc, n);
1398 nch = mdoc->last->child;
1401 mdoc->flags ^= MDOC_SMOFF;
1408 mdoc->flags &= ~MDOC_SMOFF;
1412 mdoc->flags |= MDOC_SMOFF;
1417 mdoc->parse, nch->line, nch->pos,
1418 "%s %s", mdoc_macronames[mdoc->last->tok], nch->string);
1419 mdoc_node_relink(mdoc, nch);
1430 if (mdoc->meta.date == NULL)
1431 mdoc->meta.date = mdoc->quick ?
1433 mandoc_normdate(mdoc->parse, NULL, 0, 0);
1435 if (mdoc->meta.title == NULL) {
1437 mdoc->parse, 0, 0, "EOF");
1438 mdoc->meta.title = mandoc_strdup("UNTITLED");
1441 if (mdoc->meta.vol == NULL)
1442 mdoc->meta.vol = mandoc_strdup("LOCAL");
1444 if (mdoc->meta.os == NULL) {
1446 mdoc->parse, 0, 0, NULL);
1447 mdoc->meta.os = mandoc_strdup("");
1452 n = mdoc->first->child;
1458 mandoc_msg(MANDOCERR_DOC_EMPTY, mdoc->parse, 0, 0, NULL);
1460 mandoc_msg(MANDOCERR_SEC_BEFORE, mdoc->parse,
1470 n = mdoc->last;
1476 mandoc_vmsg(MANDOCERR_ST_BAD, mdoc->parse,
1478 roff_node_delete(mdoc, n);
1491 np = mdoc->last;
1497 mandoc_msg(MANDOCERR_RS_EMPTY, mdoc->parse,
1517 mdoc->parse, nch->line, nch->pos,
1585 for (nch = mdoc->last->child; nch != NULL; nch = nch->next) {
1603 if (mdoc->last->flags & MDOC_LINE)
1604 mandoc_msg(MANDOCERR_NS_SKIP, mdoc->parse,
1605 mdoc->last->line, mdoc->last->pos, NULL);
1612 post_ignpar(mdoc);
1614 switch (mdoc->last->type) {
1616 post_sh_head(mdoc);
1619 switch (mdoc->lastsec) {
1621 post_sh_name(mdoc);
1624 post_sh_see_also(mdoc);
1627 post_sh_authors(mdoc);
1646 for (n = mdoc->last->child; n != NULL; n = n->next) {
1655 mdoc->parse, n->line, n->pos, NULL);
1662 mandoc_msg(MANDOCERR_NAMESEC_BAD, mdoc->parse,
1669 mandoc_msg(MANDOCERR_NAMESEC_NONM, mdoc->parse,
1670 mdoc->last->line, mdoc->last->pos, NULL);
1672 mandoc_msg(MANDOCERR_NAMESEC_NOND, mdoc->parse,
1673 mdoc->last->line, mdoc->last->pos, NULL);
1684 n = mdoc->last->child;
1699 mdoc->parse, n->line, n->pos,
1705 mdoc->parse, n->line, n->pos,
1711 mdoc->parse, n->line, n->pos,
1733 mandoc_vmsg(MANDOCERR_XR_PUNCT, mdoc->parse,
1754 if ( ! child_an(mdoc->last))
1755 mandoc_msg(MANDOCERR_AN_MISSING, mdoc->parse,
1756 mdoc->last->line, mdoc->last->pos, NULL);
1772 sec = mdoc->last->sec;
1776 if (SEC_NAME != sec && SEC_NONE == mdoc->lastnamed)
1777 mandoc_vmsg(MANDOCERR_NAMESEC_FIRST, mdoc->parse,
1778 mdoc->last->line, mdoc->last->pos,
1784 roff_setreg(mdoc->roff, "nS", 1, '=');
1785 mdoc->flags |= MDOC_SYNOPSIS;
1787 roff_setreg(mdoc->roff, "nS", 0, '=');
1788 mdoc->flags &= ~MDOC_SYNOPSIS;
1793 mdoc->lastsec = sec;
1805 if (sec == mdoc->lastnamed)
1806 mandoc_vmsg(MANDOCERR_SEC_REP, mdoc->parse,
1807 mdoc->last->line, mdoc->last->pos,
1810 if (sec < mdoc->lastnamed)
1811 mandoc_vmsg(MANDOCERR_SEC_ORDER, mdoc->parse,
1812 mdoc->last->line, mdoc->last->pos,
1817 mdoc->lastnamed = sec;
1821 if (mdoc->meta.msec == NULL)
1827 if (*mdoc->meta.msec == '4')
1833 if (*mdoc->meta.msec == '2')
1835 if (*mdoc->meta.msec == '3')
1841 if (*mdoc->meta.msec == '9')
1845 mandoc_vmsg(MANDOCERR_SEC_MSEC, mdoc->parse,
1846 mdoc->last->line, mdoc->last->pos,
1859 switch (mdoc->last->type) {
1861 post_hyph(mdoc);
1869 if ((np = mdoc->last->child) != NULL)
1872 mdoc->parse, np->line, np->pos,
1874 mdoc_macronames[mdoc->last->tok]);
1875 roff_node_delete(mdoc, np);
1878 if ((np = mdoc->last->last) != NULL)
1880 mandoc_vmsg(MANDOCERR_PAR_SKIP, mdoc->parse,
1883 mdoc_macronames[mdoc->last->tok]);
1884 roff_node_delete(mdoc, np);
1893 n = mdoc->last;
1915 mandoc_vmsg(MANDOCERR_PAR_SKIP, mdoc->parse,
1919 roff_node_delete(mdoc, n->prev);
1927 np = mdoc->last;
1929 post_prevpar(mdoc);
1933 mandoc_vmsg(MANDOCERR_ARG_EXCESS, mdoc->parse,
1938 mdoc->parse, np->line, np->pos, "%s %s",
1941 if ((np = mdoc->last->prev) == NULL) {
1942 np = mdoc->last->parent;
1946 (mdoc->last->tok != MDOC_br ||
1950 mandoc_vmsg(MANDOCERR_PAR_SKIP, mdoc->parse,
1951 mdoc->last->line, mdoc->last->pos,
1952 "%s after %s", mdoc_macronames[mdoc->last->tok],
1954 roff_node_delete(mdoc, mdoc->last);
1963 n = mdoc->last;
1964 if (mdoc->meta.date != NULL) {
1965 mandoc_msg(MANDOCERR_PROLOG_REP, mdoc->parse,
1967 free(mdoc->meta.date);
1968 } else if (mdoc->flags & MDOC_PBODY)
1969 mandoc_msg(MANDOCERR_PROLOG_LATE, mdoc->parse,
1971 else if (mdoc->meta.title != NULL)
1972 mandoc_msg(MANDOCERR_PROLOG_ORDER, mdoc->parse,
1974 else if (mdoc->meta.os != NULL)
1975 mandoc_msg(MANDOCERR_PROLOG_ORDER, mdoc->parse,
1979 mdoc->meta.date = mdoc->quick ? mandoc_strdup("") :
1980 mandoc_normdate(mdoc->parse, NULL, n->line, n->pos);
1986 if (mdoc->quick)
1987 mdoc->meta.date = datestr;
1989 mdoc->meta.date = mandoc_normdate(mdoc->parse,
1994 roff_node_delete(mdoc, n);
2004 n = mdoc->last;
2005 if (mdoc->flags & MDOC_PBODY) {
2006 mandoc_msg(MANDOCERR_DT_LATE, mdoc->parse,
2011 if (mdoc->meta.title != NULL)
2012 mandoc_msg(MANDOCERR_PROLOG_REP, mdoc->parse,
2014 else if (mdoc->meta.os != NULL)
2015 mandoc_msg(MANDOCERR_PROLOG_ORDER, mdoc->parse,
2018 free(mdoc->meta.title);
2019 free(mdoc->meta.msec);
2020 free(mdoc->meta.vol);
2021 free(mdoc->meta.arch);
2023 mdoc->meta.title = NULL;
2024 mdoc->meta.msec = NULL;
2025 mdoc->meta.vol = NULL;
2026 mdoc->meta.arch = NULL;
2033 mdoc->parse, n->line, n->pos, "Dt");
2034 mdoc->meta.title = mandoc_strdup("UNTITLED");
2036 mdoc->meta.title = mandoc_strdup(nn->string);
2043 mdoc->parse, nn->line,
2057 mdoc->parse, n->line, n->pos,
2058 "Dt %s", mdoc->meta.title);
2059 mdoc->meta.vol = mandoc_strdup("LOCAL");
2063 mdoc->meta.msec = mandoc_strdup(nn->string);
2069 mandoc_vmsg(MANDOCERR_MSEC_BAD, mdoc->parse,
2071 mdoc->meta.vol = mandoc_strdup(nn->string);
2073 mdoc->meta.vol = mandoc_strdup(cp);
2082 mdoc->meta.arch = mandoc_strdup(nn->string);
2087 mandoc_vmsg(MANDOCERR_ARG_EXCESS, mdoc->parse,
2091 roff_node_delete(mdoc, n);
2105 if ((n = mdoc->last->child) != NULL && (n = n->next) != NULL)
2118 n = mdoc->last;
2119 if (mdoc->meta.os != NULL)
2120 mandoc_msg(MANDOCERR_PROLOG_REP, mdoc->parse,
2122 else if (mdoc->flags & MDOC_PBODY)
2123 mandoc_msg(MANDOCERR_PROLOG_LATE, mdoc->parse,
2135 free(mdoc->meta.os);
2136 mdoc->meta.os = NULL;
2137 deroff(&mdoc->meta.os, n);
2138 if (mdoc->meta.os)
2141 if (mdoc->defos) {
2142 mdoc->meta.os = mandoc_strdup(mdoc->defos);
2147 mdoc->meta.os = mandoc_strdup(OSNAME);
2151 mandoc_msg(MANDOCERR_OS_UNAME, mdoc->parse,
2158 mdoc->meta.os = mandoc_strdup(defbuf);
2162 roff_node_delete(mdoc, n);
2174 post_std(mdoc);
2176 n = mdoc->last;
2180 if (mdoc->meta.name == NULL) {
2181 mandoc_msg(MANDOCERR_EX_NONAME, mdoc->parse,
2186 mdoc->next = ROFF_NEXT_CHILD;
2187 roff_word_alloc(mdoc, n->line, n->pos, mdoc->meta.name);
2188 mdoc->last = n;