-/* $Id: demandoc.c,v 1.23 2015/10/20 02:01:31 schwarze Exp $ */
+/* $Id: demandoc.c,v 1.29 2017/06/24 14:38:32 schwarze Exp $ */
/*
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
*
#include <assert.h>
#include <ctype.h>
-#include <getopt.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include "mandoc.h"
#include "roff.h"
#include "man.h"
#include "mdoc.h"
-#include "mandoc.h"
static void pline(int, int *, int *, int);
static void pman(const struct roff_node *, int *, int *, int);
argv += optind;
mchars_alloc();
- mp = mparse_alloc(MPARSE_SO, MANDOCLEVEL_BADARG, NULL, NULL);
+ mp = mparse_alloc(MPARSE_SO, MANDOCERR_MAX, NULL,
+ MANDOC_OS_OTHER, NULL);
assert(mp);
if (argc < 1)
for (i = 0; i < argc; i++) {
mparse_reset(mp);
- if (mparse_open(mp, &fd, argv[i]) != MANDOCLEVEL_OK) {
+ if ((fd = mparse_open(mp, argv[i])) == -1) {
perror(argv[i]);
continue;
}
int line, col;
mparse_readfd(mp, fd, fn);
+ close(fd);
mparse_result(mp, &man, NULL);
line = 1;
col = 0;
if (man->macroset == MACROSET_MDOC) {
mdoc_validate(man);
pmdoc(man->first->child, &line, &col, list);
- } else
+ } else {
+ man_validate(man);
pman(man->first->child, &line, &col, list);
+ }
if ( ! list)
putchar('\n');
{
for ( ; p; p = p->next) {
- if (MDOC_LINE & p->flags)
+ if (NODE_LINE & p->flags)
pline(p->line, line, col, list);
if (ROFFT_TEXT == p->type)
pstring(p->string, p->pos, col, list);
{
for ( ; p; p = p->next) {
- if (MAN_LINE & p->flags)
+ if (NODE_LINE & p->flags)
pline(p->line, line, col, list);
if (ROFFT_TEXT == p->type)
pstring(p->string, p->pos, col, list);