version 1.30, 2018/12/13 11:55:46 |
version 1.34, 2022/04/14 16:43:43 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* |
* |
|
|
#include <unistd.h> |
#include <unistd.h> |
|
|
#include "mandoc.h" |
#include "mandoc.h" |
|
#if DEBUG_MEMORY |
|
#define DEBUG_NODEF |
|
#include "mandoc_dbg.h" |
|
#endif |
#include "roff.h" |
#include "roff.h" |
#include "man.h" |
#include "man.h" |
#include "mdoc.h" |
#include "mdoc.h" |
Line 47 main(int argc, char *argv[]) |
|
Line 51 main(int argc, char *argv[]) |
|
int ch, fd, i, list; |
int ch, fd, i, list; |
extern int optind; |
extern int optind; |
|
|
|
#if DEBUG_MEMORY |
|
mandoc_dbg_init(argc, argv); |
|
#endif |
|
|
if (argc < 1) |
if (argc < 1) |
progname = "demandoc"; |
progname = "demandoc"; |
else if ((progname = strrchr(argv[0], '/')) == NULL) |
else if ((progname = strrchr(argv[0], '/')) == NULL) |
Line 79 main(int argc, char *argv[]) |
|
Line 87 main(int argc, char *argv[]) |
|
argv += optind; |
argv += optind; |
|
|
mchars_alloc(); |
mchars_alloc(); |
mp = mparse_alloc(MPARSE_SO, MANDOCERR_MAX, NULL, |
mp = mparse_alloc(MPARSE_SO | MPARSE_UTF8 | MPARSE_LATIN1 | |
MANDOC_OS_OTHER, NULL); |
MPARSE_VALIDATE, MANDOC_OS_OTHER, NULL); |
assert(mp); |
assert(mp); |
|
|
if (argc < 1) |
if (argc < 1) |
Line 97 main(int argc, char *argv[]) |
|
Line 105 main(int argc, char *argv[]) |
|
|
|
mparse_free(mp); |
mparse_free(mp); |
mchars_free(); |
mchars_free(); |
|
#if DEBUG_MEMORY |
|
mandoc_dbg_finish(); |
|
#endif |
return (int)MANDOCLEVEL_OK; |
return (int)MANDOCLEVEL_OK; |
} |
} |
|
|
|
|
static void |
static void |
pmandoc(struct mparse *mp, int fd, const char *fn, int list) |
pmandoc(struct mparse *mp, int fd, const char *fn, int list) |
{ |
{ |
struct roff_man *man; |
struct roff_meta *meta; |
int line, col; |
int line, col; |
|
|
mparse_readfd(mp, fd, fn); |
mparse_readfd(mp, fd, fn); |
close(fd); |
close(fd); |
mparse_result(mp, &man, NULL); |
meta = mparse_result(mp); |
line = 1; |
line = 1; |
col = 0; |
col = 0; |
|
|
if (man == NULL) |
if (meta->macroset == MACROSET_MDOC) |
return; |
pmdoc(meta->first->child, &line, &col, list); |
if (man->macroset == MACROSET_MDOC) { |
else |
mdoc_validate(man); |
pman(meta->first->child, &line, &col, list); |
pmdoc(man->first->child, &line, &col, list); |
|
} else { |
|
man_validate(man); |
|
pman(man->first->child, &line, &col, list); |
|
} |
|
|
|
if ( ! list) |
if ( ! list) |
putchar('\n'); |
putchar('\n'); |