=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/roff.c,v retrieving revision 1.10 retrieving revision 1.11 diff -c -r1.10 -r1.11 *** src/usr.bin/mandoc/roff.c 2010/07/31 21:43:07 1.10 --- src/usr.bin/mandoc/roff.c 2010/08/20 00:53:35 1.11 *************** *** 1,4 **** ! /* $Id: roff.c,v 1.10 2010/07/31 21:43:07 schwarze Exp $ */ /* * Copyright (c) 2010 Kristaps Dzonsons * Copyright (c) 2010 Ingo Schwarze --- 1,4 ---- ! /* $Id: roff.c,v 1.11 2010/08/20 00:53:35 schwarze Exp $ */ /* * Copyright (c) 2010 Kristaps Dzonsons * Copyright (c) 2010 Ingo Schwarze *************** *** 160,166 **** static enum rofft roff_hash_find(const char *); static void roff_hash_init(void); static void roffnode_cleanscope(struct roff *); ! static int roffnode_push(struct roff *, enum rofft, int, int); static void roffnode_pop(struct roff *); static enum rofft roff_parse(const char *, int *); --- 160,166 ---- static enum rofft roff_hash_find(const char *); static void roff_hash_init(void); static void roffnode_cleanscope(struct roff *); ! static void roffnode_push(struct roff *, enum rofft, int, int); static void roffnode_pop(struct roff *); static enum rofft roff_parse(const char *, int *); *************** *** 250,265 **** * Push a roff node onto the instruction stack. This must later be * removed with roffnode_pop(). */ ! static int roffnode_push(struct roff *r, enum rofft tok, int line, int col) { struct roffnode *p; ! if (NULL == (p = calloc(1, sizeof(struct roffnode)))) { ! (*r->msg)(MANDOCERR_MEM, r->data, line, col, NULL); ! return(0); ! } ! p->tok = tok; p->parent = r->last; p->line = line; --- 250,261 ---- * Push a roff node onto the instruction stack. This must later be * removed with roffnode_pop(). */ ! static void roffnode_push(struct roff *r, enum rofft tok, int line, int col) { struct roffnode *p; ! p = mandoc_calloc(1, sizeof(struct roffnode)); p->tok = tok; p->parent = r->last; p->line = line; *************** *** 267,273 **** p->rule = p->parent ? p->parent->rule : ROFFRULE_DENY; r->last = p; - return(1); } --- 263,268 ---- *************** *** 299,313 **** struct roff * ! roff_alloc(struct regset *regs, const mandocmsg msg, void *data) { struct roff *r; ! if (NULL == (r = calloc(1, sizeof(struct roff)))) { ! (*msg)(MANDOCERR_MEM, data, 0, 0, NULL); ! return(0); ! } ! r->regs = regs; r->msg = msg; r->data = data; --- 294,304 ---- struct roff * ! roff_alloc(struct regset *regs, void *data, const mandocmsg msg) { struct roff *r; ! r = mandoc_calloc(1, sizeof(struct roff)); r->regs = regs; r->msg = msg; r->data = data; *************** *** 634,641 **** pos++; } ! if ( ! roffnode_push(r, tok, ln, ppos)) ! return(ROFF_ERR); if ('\0' == (*bufp)[pos]) return(ROFF_IGN); --- 625,631 ---- pos++; } ! roffnode_push(r, tok, ln, ppos); if ('\0' == (*bufp)[pos]) return(ROFF_IGN); *************** *** 657,669 **** if (1 == sz && '.' == (*bufp)[sv]) return(ROFF_IGN); ! r->last->end = malloc(sz + 1); - if (NULL == r->last->end) { - (*r->msg)(MANDOCERR_MEM, r->data, ln, pos, NULL); - return(ROFF_ERR); - } - memcpy(r->last->end, *bufp + sv, sz); r->last->end[(int)sz] = '\0'; --- 647,654 ---- if (1 == sz && '.' == (*bufp)[sv]) return(ROFF_IGN); ! r->last->end = mandoc_malloc(sz + 1); memcpy(r->last->end, *bufp + sv, sz); r->last->end[(int)sz] = '\0'; *************** *** 889,896 **** return(ROFF_ERR); } ! if ( ! roffnode_push(r, tok, ln, ppos)) ! return(ROFF_ERR); r->last->rule = rule; --- 874,880 ---- return(ROFF_ERR); } ! roffnode_push(r, tok, ln, ppos); r->last->rule = rule;