=================================================================== RCS file: /cvs/mandoc/man.c,v retrieving revision 1.98 retrieving revision 1.101 diff -u -p -r1.98 -r1.101 --- mandoc/man.c 2011/02/06 22:02:58 1.98 +++ mandoc/man.c 2011/02/09 09:18:15 1.101 @@ -1,4 +1,4 @@ -/* $Id: man.c,v 1.98 2011/02/06 22:02:58 kristaps Exp $ */ +/* $Id: man.c,v 1.101 2011/02/09 09:18:15 kristaps Exp $ */ /* * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons * @@ -48,8 +48,6 @@ static struct man_node *man_node_alloc(struct man *, i enum man_type, enum mant); static int man_node_append(struct man *, struct man_node *); -static int man_span_alloc(struct man *, - const struct tbl_span *); static void man_node_free(struct man_node *); static void man_node_unlink(struct man *, struct man_node *); @@ -300,21 +298,6 @@ man_block_alloc(struct man *m, int line, int pos, enum return(1); } -static int -man_span_alloc(struct man *m, const struct tbl_span *span) -{ - struct man_node *n; - - n = man_node_alloc(m, span->line, 0, MAN_TBL, MAN_MAX); - n->span = span; - - if ( ! man_node_append(m, n)) - return(0); - - m->next = MAN_NEXT_SIBLING; - return(1); -} - int man_word_alloc(struct man *m, int line, int pos, const char *word) { @@ -363,15 +346,38 @@ man_node_delete(struct man *m, struct man_node *p) man_node_free(p); } +int +man_addeqn(struct man *m, const struct eqn *ep) +{ + struct man_node *n; + assert( ! (MAN_HALT & m->flags)); + + n = man_node_alloc(m, ep->line, ep->pos, MAN_EQN, MAN_MAX); + n->eqn = ep; + + if ( ! man_node_append(m, n)) + return(0); + + m->next = MAN_NEXT_SIBLING; + return(man_descope(m, ep->line, ep->pos)); +} + int man_addspan(struct man *m, const struct tbl_span *sp) { + struct man_node *n; assert( ! (MAN_HALT & m->flags)); - if ( ! man_span_alloc(m, sp)) + + n = man_node_alloc(m, sp->line, 0, MAN_TBL, MAN_MAX); + n->span = sp; + + if ( ! man_node_append(m, n)) return(0); - return(man_descope(m, 0, 0)); + + m->next = MAN_NEXT_SIBLING; + return(man_descope(m, sp->line, 0)); } static int