=================================================================== RCS file: /cvs/mandoc/mdoc.c,v retrieving revision 1.73 retrieving revision 1.76 diff -u -p -r1.73 -r1.76 --- mandoc/mdoc.c 2009/03/31 13:50:19 1.73 +++ mandoc/mdoc.c 2009/06/10 20:18:43 1.76 @@ -1,20 +1,18 @@ -/* $Id: mdoc.c,v 1.73 2009/03/31 13:50:19 kristaps Exp $ */ +/* $Id: mdoc.c,v 1.76 2009/06/10 20:18:43 kristaps Exp $ */ /* - * Copyright (c) 2008, 2009 Kristaps Dzonsons + * Copyright (c) 2008, 2009 Kristaps Dzonsons * * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all - * copies. + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL - * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE - * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR - * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include #include @@ -180,7 +178,7 @@ mdoc_free(struct mdoc *mdoc) mdoc_free1(mdoc); if (mdoc->htab) - mdoc_tokhash_free(mdoc->htab); + mdoc_hash_free(mdoc->htab); free(mdoc); } @@ -192,16 +190,18 @@ mdoc_alloc(void *data, int pflags, const struct mdoc_c if (NULL == (p = calloc(1, sizeof(struct mdoc)))) return(NULL); + if (cb) + (void)memcpy(&p->cb, cb, sizeof(struct mdoc_cb)); p->data = data; - p->htab = mdoc_tokhash_alloc(); p->pflags = pflags; - if (cb) - (void)memcpy(&p->cb, cb, sizeof(struct mdoc_cb)); - - if (mdoc_alloc1(p)) + if (NULL == (p->htab = mdoc_hash_alloc())) { + free(p); + return(NULL); + } else if (mdoc_alloc1(p)) return(p); + free(p); return(NULL); } @@ -624,7 +624,7 @@ parsemacro(struct mdoc *m, int ln, char *buf) return(1); } - if (MDOC_MAX == (c = mdoc_tokhash_find(m->htab, mac))) { + if (MDOC_MAX == (c = mdoc_hash_find(m->htab, mac))) { if ( ! macrowarn(m, ln, mac)) goto err; return(1);