=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/man.c,v retrieving revision 1.15 retrieving revision 1.16 diff -c -r1.15 -r1.16 *** src/usr.bin/mandoc/man.c 2009/10/27 21:40:07 1.15 --- src/usr.bin/mandoc/man.c 2009/12/22 23:58:00 1.16 *************** *** 1,4 **** ! /* $Id: man.c,v 1.15 2009/10/27 21:40:07 schwarze Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * --- 1,4 ---- ! /* $Id: man.c,v 1.16 2009/12/22 23:58:00 schwarze Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * *************** *** 24,33 **** #include #include "libman.h" const char *const __man_merrnames[WERRMAX] = { "invalid character", /* WNPRINT */ - "system: malloc error", /* WNMEM */ "invalid manual section", /* WMSEC */ "invalid date format", /* WDATE */ "scope of prior line violated", /* WLNSCOPE */ --- 24,33 ---- #include #include "libman.h" + #include "libmandoc.h" const char *const __man_merrnames[WERRMAX] = { "invalid character", /* WNPRINT */ "invalid manual section", /* WMSEC */ "invalid date format", /* WDATE */ "scope of prior line violated", /* WLNSCOPE */ *************** *** 67,73 **** static int man_ptext(struct man *, int, char *); static int man_pmacro(struct man *, int, char *); static void man_free1(struct man *); ! static int man_alloc1(struct man *); static int pstring(struct man *, int, int, const char *, size_t); static int macrowarn(struct man *, int, const char *); --- 67,73 ---- static int man_ptext(struct man *, int, char *); static int man_pmacro(struct man *, int, char *); static void man_free1(struct man *); ! static void man_alloc1(struct man *); static int pstring(struct man *, int, int, const char *, size_t); static int macrowarn(struct man *, int, const char *); *************** *** 89,100 **** } ! int man_reset(struct man *man) { man_free1(man); ! return(man_alloc1(man)); } --- 89,100 ---- } ! void man_reset(struct man *man) { man_free1(man); ! man_alloc1(man); } *************** *** 112,130 **** { struct man *p; ! if (NULL == (p = calloc(1, sizeof(struct man)))) ! return(NULL); ! if ( ! man_alloc1(p)) { ! free(p); ! return(NULL); ! } man_hash_init(); - p->data = data; p->pflags = pflags; ! (void)memcpy(&p->cb, cb, sizeof(struct man_cb)); return(p); } --- 112,127 ---- { struct man *p; ! p = mandoc_calloc(1, sizeof(struct man)); ! if (cb) ! memcpy(&p->cb, cb, sizeof(struct man_cb)); man_hash_init(); p->data = data; p->pflags = pflags; ! ! man_alloc1(p); return(p); } *************** *** 167,185 **** } ! static int man_alloc1(struct man *m) { ! bzero(&m->meta, sizeof(struct man_meta)); m->flags = 0; ! m->last = calloc(1, sizeof(struct man_node)); ! if (NULL == m->last) ! return(0); m->first = m->last; m->last->type = MAN_ROOT; m->next = MAN_NEXT_CHILD; - return(1); } --- 164,179 ---- } ! static void man_alloc1(struct man *m) { ! memset(&m->meta, 0, sizeof(struct man_meta)); m->flags = 0; ! m->last = mandoc_calloc(1, sizeof(struct man_node)); m->first = m->last; m->last->type = MAN_ROOT; m->next = MAN_NEXT_CHILD; } *************** *** 246,255 **** { struct man_node *p; ! p = calloc(1, sizeof(struct man_node)); ! if (NULL == p) ! return(NULL); ! p->line = line; p->pos = pos; p->type = type; --- 240,246 ---- { struct man_node *p; ! p = mandoc_calloc(1, sizeof(struct man_node)); p->line = line; p->pos = pos; p->type = type; *************** *** 264,271 **** struct man_node *p; p = man_node_alloc(line, pos, MAN_ELEM, tok); - if (NULL == p) - return(0); if ( ! man_node_append(m, p)) return(0); m->next = MAN_NEXT_CHILD; --- 255,260 ---- *************** *** 279,286 **** struct man_node *p; p = man_node_alloc(line, pos, MAN_HEAD, tok); - if (NULL == p) - return(0); if ( ! man_node_append(m, p)) return(0); m->next = MAN_NEXT_CHILD; --- 268,273 ---- *************** *** 294,301 **** struct man_node *p; p = man_node_alloc(line, pos, MAN_BODY, tok); - if (NULL == p) - return(0); if ( ! man_node_append(m, p)) return(0); m->next = MAN_NEXT_CHILD; --- 281,286 ---- *************** *** 309,316 **** struct man_node *p; p = man_node_alloc(line, pos, MAN_BLOCK, tok); - if (NULL == p) - return(0); if ( ! man_node_append(m, p)) return(0); m->next = MAN_NEXT_CHILD; --- 294,299 ---- *************** *** 326,340 **** size_t sv; n = man_node_alloc(line, pos, MAN_TEXT, -1); ! if (NULL == n) ! return(0); ! ! n->string = malloc(len + 1); ! if (NULL == n->string) { ! free(n); ! return(0); ! } ! sv = strlcpy(n->string, p, len + 1); /* Prohibit truncation. */ --- 309,315 ---- size_t sv; n = man_node_alloc(line, pos, MAN_TEXT, -1); ! n->string = mandoc_malloc(len + 1); sv = strlcpy(n->string, p, len + 1); /* Prohibit truncation. */