version 1.215, 2020/03/13 15:32:28 |
version 1.219, 2020/04/24 12:02:33 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2010-2019 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2010-2020 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2010, 2012 Joerg Sonnenberger <joerg@netbsd.org> |
* Copyright (c) 2010, 2012 Joerg Sonnenberger <joerg@netbsd.org> |
* |
* |
|
|
#include "mandoc_aux.h" |
#include "mandoc_aux.h" |
#include "mandoc.h" |
#include "mandoc.h" |
#include "roff.h" |
#include "roff.h" |
#include "tag.h" |
|
#include "mdoc.h" |
#include "mdoc.h" |
#include "man.h" |
#include "man.h" |
#include "mandoc_parse.h" |
#include "mandoc_parse.h" |
#include "libmandoc.h" |
#include "libmandoc.h" |
#include "roff_int.h" |
#include "roff_int.h" |
|
#include "tag.h" |
|
|
#define REPARSE_LIMIT 1000 |
#define REPARSE_LIMIT 1000 |
|
|
Line 554 mparse_readfd(struct mparse *curp, int fd, const char |
|
Line 554 mparse_readfd(struct mparse *curp, int fd, const char |
|
|
|
struct buf blk; |
struct buf blk; |
struct buf *save_primary; |
struct buf *save_primary; |
const char *save_filename; |
const char *save_filename, *cp; |
size_t offset; |
size_t offset; |
int save_filenc, save_lineno; |
int save_filenc, save_lineno; |
int with_mmap; |
int with_mmap; |
Line 562 mparse_readfd(struct mparse *curp, int fd, const char |
|
Line 562 mparse_readfd(struct mparse *curp, int fd, const char |
|
if (recursion_depth > 64) { |
if (recursion_depth > 64) { |
mandoc_msg(MANDOCERR_ROFFLOOP, curp->line, 0, NULL); |
mandoc_msg(MANDOCERR_ROFFLOOP, curp->line, 0, NULL); |
return; |
return; |
} |
} else if (recursion_depth == 0 && |
|
(cp = strrchr(filename, '.')) != NULL && |
|
cp[1] >= '1' && cp[1] <= '9') |
|
curp->man->filesec = cp[1]; |
|
else |
|
curp->man->filesec = '\0'; |
|
|
if (read_whole_file(curp, fd, &blk, &with_mmap) == -1) |
if (read_whole_file(curp, fd, &blk, &with_mmap) == -1) |
return; |
return; |
|
|
Line 678 mparse_alloc(int options, enum mandoc_os os_e, const c |
|
Line 684 mparse_alloc(int options, enum mandoc_os os_e, const c |
|
void |
void |
mparse_reset(struct mparse *curp) |
mparse_reset(struct mparse *curp) |
{ |
{ |
|
tag_free(); |
roff_reset(curp->roff); |
roff_reset(curp->roff); |
roff_man_reset(curp->man); |
roff_man_reset(curp->man); |
free_buf_list(curp->secondary); |
free_buf_list(curp->secondary); |
curp->secondary = NULL; |
curp->secondary = NULL; |
curp->gzip = 0; |
curp->gzip = 0; |
|
tag_alloc(); |
} |
} |
|
|
void |
void |
Line 706 mparse_result(struct mparse *curp) |
|
Line 714 mparse_result(struct mparse *curp) |
|
mdoc_validate(curp->man); |
mdoc_validate(curp->man); |
else |
else |
man_validate(curp->man); |
man_validate(curp->man); |
|
tag_postprocess(curp->man, curp->man->meta.first); |
} |
} |
return &curp->man->meta; |
return &curp->man->meta; |
} |
} |