From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from localhost (fantadrom.bsd.lv [local]) by fantadrom.bsd.lv (OpenSMTPD) with ESMTPA id 08daa86f for ; Thu, 11 Apr 2019 23:39:54 -0500 (EST) Date: Thu, 11 Apr 2019 23:39:54 -0500 (EST) X-Mailinglist: mandoc-source Reply-To: source@mandoc.bsd.lv MIME-Version: 1.0 From: schwarze@mandoc.bsd.lv To: source@mandoc.bsd.lv Subject: docbook2mdoc: New function pnode_alloc() to reduce code duplication. X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Message-ID: Log Message: ----------- New function pnode_alloc() to reduce code duplication. No functional change. Modified Files: -------------- docbook2mdoc: node.c node.h parse.c Revision Data ------------- Index: node.h =================================================================== RCS file: /home/cvs/mdocml/docbook2mdoc/node.h,v retrieving revision 1.16 retrieving revision 1.17 diff -Lnode.h -Lnode.h -u -p -r1.16 -r1.17 --- node.h +++ node.h @@ -229,6 +229,7 @@ struct ptree { enum attrkey attrkey_parse(const char *); enum attrval attrval_parse(const char *); +struct pnode *pnode_alloc(struct pnode *); void pnode_unlink(struct pnode *); void pnode_unlinksub(struct pnode *); enum attrval pnode_getattr(struct pnode *, enum attrkey); Index: parse.c =================================================================== RCS file: /home/cvs/mdocml/docbook2mdoc/parse.c,v retrieving revision 1.33 retrieving revision 1.34 diff -Lparse.c -Lparse.c -u -p -r1.33 -r1.34 --- parse.c +++ parse.c @@ -337,14 +337,10 @@ xml_char(struct parse *p, const char *wo } if (n->node != NODE_TEXT) { - if ((n = calloc(1, sizeof(*n))) == NULL) + if ((n = pnode_alloc(p->cur)) == NULL) fatal(p); n->node = NODE_TEXT; n->spc = (p->flags & PFLAG_SPC) != 0; - n->parent = p->cur; - TAILQ_INIT(&n->childq); - TAILQ_INIT(&n->attrq); - TAILQ_INSERT_TAIL(&p->cur->childq, n, child); p->cur = n; } @@ -440,15 +436,11 @@ xml_entity(struct parse *p, const char * } /* Create, append, and close out an entity node. */ - if ((n = calloc(1, sizeof(*n))) == NULL || + if ((n = pnode_alloc(p->cur)) == NULL || (n->b = strdup(entity->roff)) == NULL) fatal(p); n->node = NODE_ESCAPE; n->spc = (p->flags & PFLAG_SPC) != 0; - n->parent = p->cur; - TAILQ_INIT(&n->childq); - TAILQ_INIT(&n->attrq); - TAILQ_INSERT_TAIL(&p->cur->childq, n, child); p->flags &= ~PFLAG_SPC; } @@ -504,7 +496,7 @@ xml_elem_start(struct parse *p, const ch if (p->tree->flags & TREE_CLOSED && p->cur->parent == NULL) warn_msg(p, "element after end of document: <%s>", name); - if ((n = calloc(1, sizeof(*n))) == NULL) + if ((n = pnode_alloc(p->cur)) == NULL) fatal(p); /* @@ -556,13 +548,6 @@ xml_elem_start(struct parse *p, const ch n->spc = (p->flags & PFLAG_SPC) != 0; break; } - n->parent = p->cur; - TAILQ_INIT(&n->childq); - TAILQ_INIT(&n->attrq); - - if (p->cur != NULL) - TAILQ_INSERT_TAIL(&p->cur->childq, n, child); - p->cur = n; if (n->node == NODE_DOCTYPE) { if (p->doctype == NULL) Index: node.c =================================================================== RCS file: /home/cvs/mdocml/docbook2mdoc/node.c,v retrieving revision 1.8 retrieving revision 1.9 diff -Lnode.c -Lnode.c -u -p -r1.8 -r1.9 --- node.c +++ node.c @@ -74,6 +74,20 @@ attrval_parse(const char *name) return val; } +struct pnode * +pnode_alloc(struct pnode *np) +{ + struct pnode *n; + + if ((n = calloc(1, sizeof(*n))) != NULL) { + TAILQ_INIT(&n->childq); + TAILQ_INIT(&n->attrq); + if ((n->parent = np) != NULL) + TAILQ_INSERT_TAIL(&np->childq, n, child); + } + return n; +} + /* * Recursively free a node (NULL is ok). */ -- To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv