version 1.42, 2014/01/06 00:53:33 |
version 1.44, 2014/03/19 21:51:20 |
|
|
enum mandoclevel file_status; /* status of current parse */ |
enum mandoclevel file_status; /* status of current parse */ |
enum mandoclevel wlevel; /* ignore messages below this */ |
enum mandoclevel wlevel; /* ignore messages below this */ |
int line; /* line number in the file */ |
int line; /* line number in the file */ |
enum mparset inttype; /* which parser to use */ |
int options; /* parser options */ |
struct man *pman; /* persistent man parser */ |
struct man *pman; /* persistent man parser */ |
struct mdoc *pmdoc; /* persistent mdoc parser */ |
struct mdoc *pmdoc; /* persistent mdoc parser */ |
struct man *man; /* man parser */ |
struct man *man; /* man parser */ |
|
|
const char *file; |
const char *file; |
struct buf *secondary; |
struct buf *secondary; |
char *defos; /* default operating system */ |
char *defos; /* default operating system */ |
int quick; /* abort the parse early */ |
|
}; |
}; |
|
|
static void resize_buf(struct buf *, size_t); |
static void resize_buf(struct buf *, size_t); |
Line 255 pset(const char *buf, int pos, struct mparse *curp) |
|
Line 254 pset(const char *buf, int pos, struct mparse *curp) |
|
return; |
return; |
} |
} |
|
|
switch (curp->inttype) { |
if (MPARSE_MDOC & curp->options) { |
case (MPARSE_MDOC): |
|
if (NULL == curp->pmdoc) |
if (NULL == curp->pmdoc) |
curp->pmdoc = mdoc_alloc(curp->roff, curp, |
curp->pmdoc = mdoc_alloc( |
curp->defos, curp->quick); |
curp->roff, curp, curp->defos, |
|
MPARSE_QUICK & curp->options ? 1 : 0); |
assert(curp->pmdoc); |
assert(curp->pmdoc); |
curp->mdoc = curp->pmdoc; |
curp->mdoc = curp->pmdoc; |
return; |
return; |
case (MPARSE_MAN): |
} else if (MPARSE_MAN & curp->options) { |
if (NULL == curp->pman) |
if (NULL == curp->pman) |
curp->pman = man_alloc(curp->roff, curp, |
curp->pman = man_alloc(curp->roff, curp, |
curp->quick); |
MPARSE_QUICK & curp->options ? 1 : 0); |
assert(curp->pman); |
assert(curp->pman); |
curp->man = curp->pman; |
curp->man = curp->pman; |
return; |
return; |
default: |
|
break; |
|
} |
} |
|
|
if (pos >= 3 && 0 == memcmp(buf, ".Dd", 3)) { |
if (pos >= 3 && 0 == memcmp(buf, ".Dd", 3)) { |
if (NULL == curp->pmdoc) |
if (NULL == curp->pmdoc) |
curp->pmdoc = mdoc_alloc(curp->roff, curp, |
curp->pmdoc = mdoc_alloc( |
curp->defos, curp->quick); |
curp->roff, curp, curp->defos, |
|
MPARSE_QUICK & curp->options ? 1 : 0); |
assert(curp->pmdoc); |
assert(curp->pmdoc); |
curp->mdoc = curp->pmdoc; |
curp->mdoc = curp->pmdoc; |
return; |
return; |
} |
} |
|
|
if (NULL == curp->pman) |
if (NULL == curp->pman) |
curp->pman = man_alloc(curp->roff, curp, curp->quick); |
curp->pman = man_alloc(curp->roff, curp, |
|
MPARSE_QUICK & curp->options ? 1 : 0); |
assert(curp->pman); |
assert(curp->pman); |
curp->man = curp->pman; |
curp->man = curp->pman; |
} |
} |
|
|
} |
} |
|
|
struct mparse * |
struct mparse * |
mparse_alloc(enum mparset inttype, enum mandoclevel wlevel, |
mparse_alloc(int options, enum mandoclevel wlevel, |
mandocmsg mmsg, char *defos, int quick) |
mandocmsg mmsg, char *defos) |
{ |
{ |
struct mparse *curp; |
struct mparse *curp; |
|
|
Line 774 mparse_alloc(enum mparset inttype, enum mandoclevel wl |
|
Line 773 mparse_alloc(enum mparset inttype, enum mandoclevel wl |
|
|
|
curp = mandoc_calloc(1, sizeof(struct mparse)); |
curp = mandoc_calloc(1, sizeof(struct mparse)); |
|
|
|
curp->options = options; |
curp->wlevel = wlevel; |
curp->wlevel = wlevel; |
curp->mmsg = mmsg; |
curp->mmsg = mmsg; |
curp->inttype = inttype; |
|
curp->defos = defos; |
curp->defos = defos; |
curp->quick = quick; |
|
|
|
curp->roff = roff_alloc(inttype, curp); |
curp->roff = roff_alloc(curp, options); |
return(curp); |
return(curp); |
} |
} |
|
|