version 1.5, 2017/02/17 14:31:52 |
version 1.11, 2019/03/03 13:02:11 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2017 Michael Stapelberg <stapelberg@debian.org> |
* Copyright (c) 2017 Michael Stapelberg <stapelberg@debian.org> |
* Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2017, 2019 Ingo Schwarze <schwarze@openbsd.org> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
* purpose with or without fee is hereby granted, provided that the above |
* purpose with or without fee is hereby granted, provided that the above |
|
|
#include "roff.h" |
#include "roff.h" |
#include "mdoc.h" |
#include "mdoc.h" |
#include "man.h" |
#include "man.h" |
|
#include "mandoc_parse.h" |
#include "main.h" |
#include "main.h" |
#include "manconf.h" |
#include "manconf.h" |
|
|
Line 170 main(int argc, char *argv[]) |
|
Line 171 main(int argc, char *argv[]) |
|
errx(1, "file descriptor %s %s", argv[1], errstr); |
errx(1, "file descriptor %s %s", argv[1], errstr); |
|
|
mchars_alloc(); |
mchars_alloc(); |
parser = mparse_alloc(MPARSE_SO | MPARSE_UTF8 | MPARSE_LATIN1, |
parser = mparse_alloc(MPARSE_SO | MPARSE_UTF8 | MPARSE_LATIN1 | |
MANDOCLEVEL_BADARG, NULL, defos); |
MPARSE_VALIDATE, MANDOC_OS_OTHER, defos); |
|
|
memset(&options, 0, sizeof(options)); |
memset(&options, 0, sizeof(options)); |
switch (outtype) { |
switch (outtype) { |
Line 212 main(int argc, char *argv[]) |
|
Line 213 main(int argc, char *argv[]) |
|
|
|
process(parser, outtype, formatter); |
process(parser, outtype, formatter); |
mparse_reset(parser); |
mparse_reset(parser); |
|
if (outtype == OUTT_HTML) |
|
html_reset(formatter); |
|
|
fflush(stdout); |
fflush(stdout); |
fflush(stderr); |
fflush(stderr); |
Line 243 main(int argc, char *argv[]) |
|
Line 246 main(int argc, char *argv[]) |
|
static void |
static void |
process(struct mparse *parser, enum outt outtype, void *formatter) |
process(struct mparse *parser, enum outt outtype, void *formatter) |
{ |
{ |
struct roff_man *man; |
struct roff_meta *meta; |
|
|
mparse_readfd(parser, STDIN_FILENO, "<unixfd>"); |
mparse_readfd(parser, STDIN_FILENO, "<unixfd>"); |
mparse_result(parser, &man, NULL); |
meta = mparse_result(parser); |
|
if (meta->macroset == MACROSET_MDOC) { |
if (man == NULL) |
|
return; |
|
|
|
if (man->macroset == MACROSET_MDOC) { |
|
mdoc_validate(man); |
|
switch (outtype) { |
switch (outtype) { |
case OUTT_ASCII: |
case OUTT_ASCII: |
case OUTT_UTF8: |
case OUTT_UTF8: |
terminal_mdoc(formatter, man); |
terminal_mdoc(formatter, meta); |
break; |
break; |
case OUTT_HTML: |
case OUTT_HTML: |
html_mdoc(formatter, man); |
html_mdoc(formatter, meta); |
break; |
break; |
} |
} |
} |
} |
if (man->macroset == MACROSET_MAN) { |
if (meta->macroset == MACROSET_MAN) { |
man_validate(man); |
|
switch (outtype) { |
switch (outtype) { |
case OUTT_ASCII: |
case OUTT_ASCII: |
case OUTT_UTF8: |
case OUTT_UTF8: |
terminal_man(formatter, man); |
terminal_man(formatter, meta); |
break; |
break; |
case OUTT_HTML: |
case OUTT_HTML: |
html_man(formatter, man); |
html_man(formatter, meta); |
break; |
break; |
} |
} |
} |
} |