=================================================================== RCS file: /cvs/mandoc/read.c,v retrieving revision 1.148 retrieving revision 1.151 diff -u -p -r1.148 -r1.151 --- mandoc/read.c 2016/01/08 02:53:13 1.148 +++ mandoc/read.c 2016/07/19 21:31:55 1.151 @@ -1,4 +1,4 @@ -/* $Id: read.c,v 1.148 2016/01/08 02:53:13 schwarze Exp $ */ +/* $Id: read.c,v 1.151 2016/07/19 21:31:55 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010-2016 Ingo Schwarze @@ -19,10 +19,8 @@ #include "config.h" #include -#if HAVE_MMAP #include #include -#endif #include #include @@ -291,13 +289,6 @@ choose_parser(struct mparse *curp) } } - if (curp->man == NULL) { - curp->man = roff_man_alloc(curp->roff, curp, curp->defos, - curp->options & MPARSE_QUICK ? 1 : 0); - curp->man->macroset = MACROSET_MAN; - curp->man->first->tok = TOKEN_NONE; - } - if (format == MPARSE_MDOC) { mdoc_hash_init(); curp->man->macroset = MACROSET_MDOC; @@ -562,15 +553,7 @@ rerun: break; } - /* - * If input parsers have not been allocated, do so now. - * We keep these instanced between parsers, but set them - * locally per parse routine since we can use different - * parsers with each one. - */ - - if (curp->man == NULL || - curp->man->macroset == MACROSET_NONE) + if (curp->man->macroset == MACROSET_NONE) choose_parser(curp); /* @@ -613,7 +596,6 @@ read_whole_file(struct mparse *curp, const char *file, size_t off; ssize_t ssz; -#if HAVE_MMAP struct stat st; if (fstat(fd, &st) == -1) @@ -637,7 +619,6 @@ read_whole_file(struct mparse *curp, const char *file, if (fb->buf != MAP_FAILED) return 1; } -#endif if (curp->gzip) { if ((gz = gzdopen(fd, "rb")) == NULL) @@ -683,10 +664,6 @@ read_whole_file(struct mparse *curp, const char *file, static void mparse_end(struct mparse *curp) { - - if (curp->man == NULL && curp->sodest == NULL) - curp->man = roff_man_alloc(curp->roff, curp, curp->defos, - curp->options & MPARSE_QUICK ? 1 : 0); if (curp->man->macroset == MACROSET_NONE) curp->man->macroset = MACROSET_MAN; if (curp->man->macroset == MACROSET_MDOC) @@ -766,11 +743,9 @@ mparse_readfd(struct mparse *curp, int fd, const char (MPARSE_UTF8 | MPARSE_LATIN1); mparse_parse_buffer(curp, blk, file); curp->filenc = save_filenc; -#if HAVE_MMAP if (with_mmap) munmap(blk.buf, blk.sz); else -#endif free(blk.buf); } return curp->file_status; @@ -798,7 +773,7 @@ mparse_open(struct mparse *curp, const char *file) if ( ! curp->gzip) { mandoc_asprintf(&cp, "%s.gz", file); - fd = open(file, O_RDONLY); + fd = open(cp, O_RDONLY); free(cp); if (fd != -1) { curp->gzip = 1; @@ -842,11 +817,8 @@ mparse_alloc(int options, enum mandoclevel wlevel, man void mparse_reset(struct mparse *curp) { - roff_reset(curp->roff); - - if (curp->man != NULL) - roff_man_reset(curp->man); + roff_man_reset(curp->man); if (curp->secondary) curp->secondary->sz = 0;