=================================================================== RCS file: /cvs/mandoc/read.c,v retrieving revision 1.46 retrieving revision 1.47 diff -u -p -r1.46 -r1.47 --- mandoc/read.c 2014/03/23 11:25:26 1.46 +++ mandoc/read.c 2014/04/20 16:46:05 1.47 @@ -1,4 +1,4 @@ -/* $Id: read.c,v 1.46 2014/03/23 11:25:26 schwarze Exp $ */ +/* $Id: read.c,v 1.47 2014/04/20 16:46:05 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010-2014 Ingo Schwarze @@ -46,7 +46,7 @@ #define REPARSE_LIMIT 1000 struct buf { - char *buf; /* binary input buffer */ + char *buf; /* binary input buffer */ size_t sz; /* size of binary buffer */ }; @@ -63,7 +63,7 @@ struct mparse { char *sodest; /* filename pointed to by .so */ int reparse_count; /* finite interp. stack */ mandocmsg mmsg; /* warning/error message handler */ - const char *file; + const char *file; struct buf *secondary; char *defos; /* default operating system */ }; @@ -153,7 +153,7 @@ static const char * const mandocerrs[MANDOCERR_MAX] = /* related to equations */ "unexpected literal in equation", - + "generic error", /* related to equations */ @@ -224,6 +224,7 @@ static const char * const mandoclevels[MANDOCLEVEL_MAX "SYSERR" }; + static void resize_buf(struct buf *buf, size_t initial) { @@ -257,7 +258,7 @@ pset(const char *buf, int pos, struct mparse *curp) } if (MPARSE_MDOC & curp->options) { - if (NULL == curp->pmdoc) + if (NULL == curp->pmdoc) curp->pmdoc = mdoc_alloc( curp->roff, curp, curp->defos, MPARSE_QUICK & curp->options ? 1 : 0); @@ -265,7 +266,7 @@ pset(const char *buf, int pos, struct mparse *curp) curp->mdoc = curp->pmdoc; return; } else if (MPARSE_MAN & curp->options) { - if (NULL == curp->pman) + if (NULL == curp->pman) curp->pman = man_alloc(curp->roff, curp, MPARSE_QUICK & curp->options ? 1 : 0); assert(curp->pman); @@ -274,16 +275,16 @@ pset(const char *buf, int pos, struct mparse *curp) } if (pos >= 3 && 0 == memcmp(buf, ".Dd", 3)) { - if (NULL == curp->pmdoc) + if (NULL == curp->pmdoc) curp->pmdoc = mdoc_alloc( curp->roff, curp, curp->defos, MPARSE_QUICK & curp->options ? 1 : 0); assert(curp->pmdoc); curp->mdoc = curp->pmdoc; return; - } + } - if (NULL == curp->pman) + if (NULL == curp->pman) curp->pman = man_alloc(curp->roff, curp, MPARSE_QUICK & curp->options ? 1 : 0); assert(curp->pman); @@ -308,8 +309,8 @@ mparse_buf_r(struct mparse *curp, struct buf blk, int memset(&ln, 0, sizeof(struct buf)); - lnn = curp->line; - pos = 0; + lnn = curp->line; + pos = 0; for (i = 0; i < (int)blk.sz; ) { if (0 == pos && '\0' == blk.buf[i]) @@ -346,7 +347,7 @@ mparse_buf_r(struct mparse *curp, struct buf blk, int if (pos + 2 >= (int)ln.sz) resize_buf(&ln, 256); - /* + /* * Warn about bogus characters. If you're using * non-ASCII encoding, you're screwing your * readers. Since I'd rather this not happen, @@ -357,10 +358,10 @@ mparse_buf_r(struct mparse *curp, struct buf blk, int c = (unsigned char) blk.buf[i]; - if ( ! (isascii(c) && - (isgraph(c) || isblank(c)))) { + if ( ! (isascii(c) && + (isgraph(c) || isblank(c)))) { mandoc_msg(MANDOCERR_BADCHAR, curp, - curp->line, pos, NULL); + curp->line, pos, NULL); i++; ln.buf[pos++] = '?'; continue; @@ -414,10 +415,10 @@ mparse_buf_r(struct mparse *curp, struct buf blk, int c = (unsigned char) blk.buf[i+1]; - if ( ! (isascii(c) && - (isgraph(c) || isblank(c)))) { + if ( ! (isascii(c) && + (isgraph(c) || isblank(c)))) { mandoc_msg(MANDOCERR_BADCHAR, curp, - curp->line, pos, NULL); + curp->line, pos, NULL); i += 2; ln.buf[pos++] = '?'; continue; @@ -429,7 +430,7 @@ mparse_buf_r(struct mparse *curp, struct buf blk, int ln.buf[pos++] = blk.buf[i++]; } - if (pos >= (int)ln.sz) + if (pos >= (int)ln.sz) resize_buf(&ln, 256); ln.buf[pos] = '\0'; @@ -452,13 +453,12 @@ mparse_buf_r(struct mparse *curp, struct buf blk, int */ if (curp->secondary) { - curp->secondary->buf = - mandoc_realloc - (curp->secondary->buf, - curp->secondary->sz + pos + 2); - memcpy(curp->secondary->buf + - curp->secondary->sz, - ln.buf, pos); + curp->secondary->buf = mandoc_realloc( + curp->secondary->buf, + curp->secondary->sz + pos + 2); + memcpy(curp->secondary->buf + + curp->secondary->sz, + ln.buf, pos); curp->secondary->sz += pos; curp->secondary->buf [curp->secondary->sz] = '\n'; @@ -467,31 +467,30 @@ mparse_buf_r(struct mparse *curp, struct buf blk, int [curp->secondary->sz] = '\0'; } rerun: - rr = roff_parseln - (curp->roff, curp->line, - &ln.buf, &ln.sz, of, &of); + rr = roff_parseln(curp->roff, curp->line, + &ln.buf, &ln.sz, of, &of); switch (rr) { - case (ROFF_REPARSE): + case ROFF_REPARSE: if (REPARSE_LIMIT >= ++curp->reparse_count) mparse_buf_r(curp, ln, 0); else mandoc_msg(MANDOCERR_ROFFLOOP, curp, - curp->line, pos, NULL); + curp->line, pos, NULL); pos = 0; continue; - case (ROFF_APPEND): + case ROFF_APPEND: pos = (int)strlen(ln.buf); continue; - case (ROFF_RERUN): + case ROFF_RERUN: goto rerun; - case (ROFF_IGN): + case ROFF_IGN: pos = 0; continue; - case (ROFF_ERR): + case ROFF_ERR: assert(MANDOCLEVEL_FATAL <= curp->file_status); break; - case (ROFF_SO): + case ROFF_SO: if (0 == (MPARSE_SO & curp->options) && (i >= (int)blk.sz || '\0' == blk.buf[i])) { curp->sodest = mandoc_strdup(ln.buf + of); @@ -503,7 +502,7 @@ rerun: * buffer because we're going to descend into * the file recursively. */ - if (curp->secondary) + if (curp->secondary) curp->secondary->sz -= pos + 1; mparse_readfd(curp, -1, ln.buf + of); if (MANDOCLEVEL_FATAL <= curp->file_status) @@ -532,7 +531,7 @@ rerun: if ( ! (curp->man || curp->mdoc)) pset(ln.buf + of, pos - of, curp); - /* + /* * Lastly, push down into the parsers themselves. One * of these will have already been set in the pset() * routine. @@ -548,23 +547,23 @@ rerun: if (ROFF_TBL == rr) while (NULL != (span = roff_span(curp->roff))) { rc = curp->man ? - man_addspan(curp->man, span) : - mdoc_addspan(curp->mdoc, span); + man_addspan(curp->man, span) : + mdoc_addspan(curp->mdoc, span); if (0 == rc) break; } else if (ROFF_EQN == rr) - rc = curp->mdoc ? - mdoc_addeqn(curp->mdoc, - roff_eqn(curp->roff)) : - man_addeqn(curp->man, - roff_eqn(curp->roff)); + rc = curp->mdoc ? + mdoc_addeqn(curp->mdoc, + roff_eqn(curp->roff)) : + man_addeqn(curp->man, + roff_eqn(curp->roff)); else if (curp->man || curp->mdoc) rc = curp->man ? - man_parseln(curp->man, - curp->line, ln.buf, of) : - mdoc_parseln(curp->mdoc, - curp->line, ln.buf, of); + man_parseln(curp->man, + curp->line, ln.buf, of) : + mdoc_parseln(curp->mdoc, + curp->line, ln.buf, of); if (0 == rc) { assert(MANDOCLEVEL_FATAL <= curp->file_status); @@ -860,7 +859,7 @@ mandoc_vmsg(enum mandocerr t, struct mparse *m, } void -mandoc_msg(enum mandocerr er, struct mparse *m, +mandoc_msg(enum mandocerr er, struct mparse *m, int ln, int col, const char *msg) { enum mandoclevel level;