summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmandoc.h8
-rw-r--r--man.c6
-rw-r--r--mdoc.c6
-rw-r--r--read.c45
4 files changed, 24 insertions, 41 deletions
diff --git a/libmandoc.h b/libmandoc.h
index 76309b7b..65613d8c 100644
--- a/libmandoc.h
+++ b/libmandoc.h
@@ -60,16 +60,16 @@ struct mdoc *mdoc_alloc(struct roff *, struct mparse *,
void mdoc_reset(struct mdoc *);
int mdoc_parseln(struct mdoc *, int, char *, int);
int mdoc_endparse(struct mdoc *);
-int mdoc_addspan(struct mdoc *, const struct tbl_span *);
-int mdoc_addeqn(struct mdoc *, const struct eqn *);
+void mdoc_addspan(struct mdoc *, const struct tbl_span *);
+void mdoc_addeqn(struct mdoc *, const struct eqn *);
void man_free(struct man *);
struct man *man_alloc(struct roff *, struct mparse *, int);
void man_reset(struct man *);
int man_parseln(struct man *, int, char *, int);
int man_endparse(struct man *);
-int man_addspan(struct man *, const struct tbl_span *);
-int man_addeqn(struct man *, const struct eqn *);
+void man_addspan(struct man *, const struct tbl_span *);
+void man_addeqn(struct man *, const struct eqn *);
int preconv_cue(const struct buf *, size_t);
int preconv_encode(struct buf *, size_t *,
diff --git a/man.c b/man.c
index a6fdbb18..bc634341 100644
--- a/man.c
+++ b/man.c
@@ -317,7 +317,7 @@ man_node_delete(struct man *man, struct man_node *p)
man_node_free(p);
}
-int
+void
man_addeqn(struct man *man, const struct eqn *ep)
{
struct man_node *n;
@@ -329,10 +329,9 @@ man_addeqn(struct man *man, const struct eqn *ep)
man_node_append(man, n);
man->next = MAN_NEXT_SIBLING;
man_descope(man, ep->ln, ep->pos);
- return(1);
}
-int
+void
man_addspan(struct man *man, const struct tbl_span *sp)
{
struct man_node *n;
@@ -342,7 +341,6 @@ man_addspan(struct man *man, const struct tbl_span *sp)
man_node_append(man, n);
man->next = MAN_NEXT_SIBLING;
man_descope(man, sp->line, 0);
- return(1);
}
static void
diff --git a/mdoc.c b/mdoc.c
index 88a8fe16..65368f2d 100644
--- a/mdoc.c
+++ b/mdoc.c
@@ -198,7 +198,7 @@ mdoc_endparse(struct mdoc *mdoc)
return(1);
}
-int
+void
mdoc_addeqn(struct mdoc *mdoc, const struct eqn *ep)
{
struct mdoc_node *n;
@@ -209,10 +209,9 @@ mdoc_addeqn(struct mdoc *mdoc, const struct eqn *ep)
n->flags |= MDOC_LINE;
node_append(mdoc, n);
mdoc->next = MDOC_NEXT_SIBLING;
- return(1);
}
-int
+void
mdoc_addspan(struct mdoc *mdoc, const struct tbl_span *sp)
{
struct mdoc_node *n;
@@ -221,7 +220,6 @@ mdoc_addspan(struct mdoc *mdoc, const struct tbl_span *sp)
n->span = sp;
node_append(mdoc, n);
mdoc->next = MDOC_NEXT_SIBLING;
- return(1);
}
/*
diff --git a/read.c b/read.c
index 5096ff38..40bf1bc7 100644
--- a/read.c
+++ b/read.c
@@ -317,7 +317,7 @@ mparse_buf_r(struct mparse *curp, struct buf blk, size_t i, int start)
struct buf ln;
size_t pos; /* byte number in the ln buffer */
enum rofferr rr;
- int of, rc;
+ int of;
int lnn; /* line number in the real file */
unsigned char c;
@@ -570,34 +570,21 @@ rerun:
* Do the same for ROFF_EQN.
*/
- rc = -1;
-
- if (ROFF_TBL == rr)
- while (NULL != (span = roff_span(curp->roff))) {
- rc = curp->man ?
- 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));
- 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);
-
- if (0 == rc) {
- assert(MANDOCLEVEL_FATAL <= curp->file_status);
- break;
- } else if (2 == rc)
- break;
+ if (rr == ROFF_TBL) {
+ while ((span = roff_span(curp->roff)) != NULL)
+ if (curp->man == NULL)
+ mdoc_addspan(curp->mdoc, span);
+ else
+ man_addspan(curp->man, span);
+ } else if (rr == ROFF_EQN) {
+ if (curp->man == NULL)
+ mdoc_addeqn(curp->mdoc, roff_eqn(curp->roff));
+ else
+ man_addeqn(curp->man, roff_eqn(curp->roff));
+ } else if ((curp->man == NULL ?
+ mdoc_parseln(curp->mdoc, curp->line, ln.buf, of) :
+ man_parseln(curp->man, curp->line, ln.buf, of)) == 2)
+ break;
/* Temporary buffers typically are not full. */