Lines Matching refs:curp

224 pset(const char *buf, int pos, struct mparse *curp)
247 switch (curp->inttype) {
249 if (NULL == curp->pmdoc)
250 curp->pmdoc = mdoc_alloc(curp->roff, curp);
251 assert(curp->pmdoc);
252 curp->mdoc = curp->pmdoc;
255 if (NULL == curp->pman)
256 curp->pman = man_alloc(curp->roff, curp);
257 assert(curp->pman);
258 curp->man = curp->pman;
265 if (NULL == curp->pmdoc)
266 curp->pmdoc = mdoc_alloc(curp->roff, curp);
267 assert(curp->pmdoc);
268 curp->mdoc = curp->pmdoc;
272 if (NULL == curp->pman)
273 curp->pman = man_alloc(curp->roff, curp);
274 assert(curp->pman);
275 curp->man = curp->pman;
284 mparse_buf_r(struct mparse *curp, struct buf blk, int start)
296 lnn = curp->line;
304 curp->line = lnn;
305 curp->reparse_count = 0;
338 mandoc_msg(MANDOCERR_BADCHAR, curp,
339 curp->line, pos, NULL);
424 if (curp->secondary) {
425 curp->secondary->buf =
427 (curp->secondary->buf,
428 curp->secondary->sz + pos + 2);
429 memcpy(curp->secondary->buf +
430 curp->secondary->sz,
432 curp->secondary->sz += pos;
433 curp->secondary->buf
434 [curp->secondary->sz] = '\n';
435 curp->secondary->sz++;
436 curp->secondary->buf
437 [curp->secondary->sz] = '\0';
441 (curp->roff, curp->line,
446 if (REPARSE_LIMIT >= ++curp->reparse_count)
447 mparse_buf_r(curp, ln, 0);
449 mandoc_msg(MANDOCERR_ROFFLOOP, curp,
450 curp->line, pos, NULL);
462 assert(MANDOCLEVEL_FATAL <= curp->file_status);
470 if (curp->secondary)
471 curp->secondary->sz -= pos + 1;
472 mparse_readfd_r(curp, -1, ln.buf + of, 1);
473 if (MANDOCLEVEL_FATAL <= curp->file_status)
486 if (MANDOCLEVEL_FATAL <= curp->file_status)
496 if ( ! (curp->man || curp->mdoc))
497 pset(ln.buf + of, pos - of, curp);
513 while (NULL != (span = roff_span(curp->roff))) {
514 rc = curp->man ?
515 man_addspan(curp->man, span) :
516 mdoc_addspan(curp->mdoc, span);
521 rc = curp->mdoc ?
522 mdoc_addeqn(curp->mdoc,
523 roff_eqn(curp->roff)) :
524 man_addeqn(curp->man,
525 roff_eqn(curp->roff));
526 else if (curp->man || curp->mdoc)
527 rc = curp->man ?
528 man_parseln(curp->man,
529 curp->line, ln.buf, of) :
530 mdoc_parseln(curp->mdoc,
531 curp->line, ln.buf, of);
534 assert(MANDOCLEVEL_FATAL <= curp->file_status);
620 mparse_end(struct mparse *curp)
623 if (MANDOCLEVEL_FATAL <= curp->file_status)
626 if (curp->mdoc && ! mdoc_endparse(curp->mdoc)) {
627 assert(MANDOCLEVEL_FATAL <= curp->file_status);
631 if (curp->man && ! man_endparse(curp->man)) {
632 assert(MANDOCLEVEL_FATAL <= curp->file_status);
636 if ( ! (curp->man || curp->mdoc)) {
637 mandoc_msg(MANDOCERR_NOTMANUAL, curp, 1, 0, NULL);
638 curp->file_status = MANDOCLEVEL_FATAL;
642 roff_endparse(curp->roff);
646 mparse_parse_buffer(struct mparse *curp, struct buf blk, const char *file,
652 svfile = curp->file;
653 curp->file = file;
654 curp->line = 1;
656 mparse_buf_r(curp, blk, 1);
658 if (0 == re && MANDOCLEVEL_FATAL > curp->file_status)
659 mparse_end(curp);
661 curp->file = svfile;
665 mparse_readmem(struct mparse *curp, const void *buf, size_t len,
673 mparse_parse_buffer(curp, blk, file, 0);
674 return(curp->file_status);
678 mparse_readfd_r(struct mparse *curp, int fd, const char *file, int re)
686 curp->file_status = MANDOCLEVEL_SYSERR;
697 curp->file_status = MANDOCLEVEL_SYSERR;
701 mparse_parse_buffer(curp, blk, file, re);
715 mparse_readfd(struct mparse *curp, int fd, const char *file)
718 mparse_readfd_r(curp, fd, file, 0);
719 return(curp->file_status);
725 struct mparse *curp;
729 curp = mandoc_calloc(1, sizeof(struct mparse));
731 curp->wlevel = wlevel;
732 curp->mmsg = mmsg;
733 curp->arg = arg;
734 curp->inttype = inttype;
736 curp->roff = roff_alloc(curp);
737 return(curp);
741 mparse_reset(struct mparse *curp)
744 roff_reset(curp->roff);
746 if (curp->mdoc)
747 mdoc_reset(curp->mdoc);
748 if (curp->man)
749 man_reset(curp->man);
750 if (curp->secondary)
751 curp->secondary->sz = 0;
753 curp->file_status = MANDOCLEVEL_OK;
754 curp->mdoc = NULL;
755 curp->man = NULL;
759 mparse_free(struct mparse *curp)
762 if (curp->pmdoc)
763 mdoc_free(curp->pmdoc);
764 if (curp->pman)
765 man_free(curp->pman);
766 if (curp->roff)
767 roff_free(curp->roff);
768 if (curp->secondary)
769 free(curp->secondary->buf);
771 free(curp->secondary);
772 free(curp);
776 mparse_result(struct mparse *curp, struct mdoc **mdoc, struct man **man)
780 *mdoc = curp->mdoc;
782 *man = curp->man;